:root {
  --ink: #172622;
  --muted: #63736c;
  --green: #12675c;
  --green-dark: #0b4c43;
  --wash: #edf5f0;
  --line: #e3e8e2;
  --soft: #f7f9f6;
  --sidebar: 216px;
  --radius: 10px;
  font-size: 100%;
  color-scheme: light;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Noto Sans SC",
    "PingFang SC",
    "Microsoft YaHei",
    "WenQuanYi Zen Hei",
    sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input {
  font: inherit;
}
button,
a,
input,
summary {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
}
button {
  color: inherit;
}
svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2,
h3 {
  font-weight: 650;
  line-height: 1.4;
}
h1 {
  font-size: 2.25rem;
  letter-spacing: -1.25px;
}
h2 {
  font-size: 1.125rem;
  letter-spacing: -0.3px;
}
h3 {
  font-size: 1.1875rem;
}
a,
button {
  transition:
    background 0.16s,
    color 0.16s,
    border-color 0.16s;
}
a:hover {
  color: var(--green);
}
:focus-visible {
  outline: 3px solid #579e8f;
  outline-offset: 4px;
}
.symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}
.skip {
  position: fixed;
  top: -80px;
  left: 20px;
  z-index: 100;
  background: var(--green);
  color: white;
  padding: 12px 18px;
  border-radius: 6px;
}
.skip:focus {
  top: 12px;
}
.sidebar {
  width: var(--sidebar);
  position: fixed;
  inset: 0 auto 0 0;
  border-right: 1px solid var(--line);
  background: #f7f8f5;
  z-index: 20;
  padding: 31px 19px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.brand {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 7px;
  font-size: 1.3125rem;
  font-weight: 750;
  letter-spacing: -0.7px;
  line-height: 1.1;
}
.brand img {
  margin-top: 1px;
}
.brand-sub {
  font-size: 0.6875rem;
  display: block;
  font-weight: 400;
  letter-spacing: 2.8px;
  color: var(--muted);
  margin-top: 7px;
}
.sidebar-label {
  font-size: 0.6875rem;
  color: #7c8882;
  margin: 49px 14px 14px;
  letter-spacing: 1px;
}
.nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 12px 14px;
  border-radius: 7px;
  font-size: 0.875rem;
  color: #5e6e66;
  min-height: 46px;
}
.nav a:hover {
  background: #eef1eb;
}
.nav a[aria-current] {
  color: var(--green-dark);
  background: #e5eee6;
  font-weight: 650;
}
.nav-count {
  margin-left: auto;
  font-size: 0.6875rem;
  border: 1px solid #bed0c2;
  border-radius: 4px;
  min-width: 19px;
  text-align: center;
  line-height: 18px;
}
.sidebar-bottom {
  margin-top: auto;
  padding: 30px 14px 0;
}
.mini-line {
  width: 28px;
  height: 3px;
  background: var(--green);
  margin-bottom: 14px;
}
.sidebar-bottom p {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: #3f5548;
  font-weight: 550;
}
.sidebar-bottom a {
  font-size: 0.75rem;
  display: block;
  margin-top: 21px;
  color: var(--muted);
}
.sidebar-bottom a span {
  float: right;
}
.version {
  display: block;
  font-size: 0.625rem;
  letter-spacing: 0.6px;
  color: #89928c;
  margin-top: 12px;
}
.workspace {
  margin-left: var(--sidebar);
  min-height: 100vh;
}
.topbar {
  min-height: 76px;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 16px 40px;
}
.scope-link {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.8125rem;
  white-space: nowrap;
}
.scope-link svg {
  width: 17px;
  color: var(--green);
}
.scope-link strong {
  font-weight: 650;
}
.council-workspace .scope-link {
  flex-wrap: wrap;
  min-width: 0;
  white-space: normal;
}
.council-workspace .scope-link strong,
.council-workspace .breadcrumb > strong {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.scope-link a{color:var(--green);text-decoration:none}
.scope-link a:hover{text-decoration:underline}
.scope-divider {
  color: #b9c3bc;
  margin: 0 3px;
}
.scope-link > span:last-child {
  color: var(--muted);
}
.search {
  display: flex;
  gap: 9px;
  align-items: center;
  max-width: 345px;
  min-width: 150px;
  background: #f5f7f3;
  border: 1px solid #e8ece5;
  border-radius: 7px;
  height: 40px;
  padding: 0 10px 0 12px;
  margin-left: auto;
  flex: 1;
}
.search svg {
  color: #7d8a81;
  width: 17px;
}
.search input {
  font-size: 0.75rem;
  min-width: 0;
  width: 100%;
  border: 0;
  background: none;
  outline: none;
  color: var(--ink);
  padding: 8px 0;
}
.search:focus-within {
  border-color: #579e8f;
  box-shadow: 0 0 0 2px #579e8f22;
}
.search button {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  line-height: 20px;
  min-width: 25px;
  color: #7d8a81;
}
.language {
  font-size: 0.75rem;
  color: var(--muted);
  white-space: nowrap;
}
.mobile-brand,
.mobile-nav {
  display: none;
}
.prototype-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.6875rem;
  background: #fbf7e9;
  color: #75643b;
  padding: 9px 40px;
  min-height: 36px;
}
.prototype-bar strong {
  font-weight: 600;
}
.prototype-bar a {
  margin-left: auto;
}
.prototype-dot {
  width: 5px;
  height: 5px;
  flex-shrink: 0;
  background: #b39750;
  border-radius: 50%;
}

.chatgpt-reader {
  max-width: 780px;
  width: calc(100% - 80px);
  margin: 0 auto 28px;
  padding: 17px 20px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8faf7;
}
.chatgpt-reader form { display: grid; gap: 10px; }
.chatgpt-reader label { font-size: 0.875rem; font-weight: 650; }
.chatgpt-reader textarea {
  width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #c9d4ca;
  border-radius: 7px; background: #fff; color: var(--ink); font: inherit;
  font-size: 1rem; line-height: 1.5; resize: vertical;
}
.chatgpt-reader textarea:focus { outline: 2px solid var(--green); outline-offset: 2px; }
.chatgpt-reader-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.chatgpt-reader .button { justify-self: start; min-height: 42px; }
.chatgpt-reader p { margin: 0; font-size: 0.75rem; line-height: 1.6; color: var(--muted); }
.chatgpt-reader .chatgpt-reader-status { color: var(--green-dark); overflow-wrap: anywhere; }
.sidebar .chatgpt-reader { width: 100%; margin: 16px 0 0; padding: 12px; }
.sidebar .chatgpt-reader textarea { font-size: 0.875rem; }
.sidebar .chatgpt-reader-actions { display: grid; gap: 8px; }
.sidebar .chatgpt-reader .button { width: 100%; justify-content: center; }
.sidebar .chatgpt-reader .text-button { justify-self: start; padding-inline: 0; }
.chatgpt-reader-noscript { margin: 20px 40px 0; color: var(--muted); font-size: 0.8125rem; }
@media (max-width: 740px) {
  .chatgpt-reader { width: calc(100% - 40px); padding: 14px; }
  .chatgpt-reader-noscript { margin: 16px 20px 0; }
}
main {
  max-width: 1320px;
  padding: 33px 40px 52px;
  min-height: calc(100vh - 188px);
  margin: auto;
}
main:focus {
  outline: 0;
}
.page-heading {
  margin-bottom: 30px;
}
.eyebrow {
  font-size: 0.625rem;
  line-height: 1.5;
  letter-spacing: 1.7px;
  font-weight: 650;
  color: var(--muted);
  text-transform: uppercase;
}
.page-heading .eyebrow {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 9px;
}
.live-dot {
  height: 6px;
  width: 6px;
  border-radius: 50%;
  background: var(--green);
}
.lead {
  margin-top: 10px;
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1.9;
}
.overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 248px;
  gap: 36px;
  align-items: start;
}
.overview-layout > *,
.detail-layout > * {
  min-width: 0;
}
.election-summary {
  display: flex;
  align-items: center;
  gap: 15px;
  background: #f4f7f2;
  border: 1px solid #e3e9df;
  border-radius: 9px;
  padding: 18px 20px;
}
.election-symbol {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e4ede0;
  color: var(--green);
  height: 47px;
  width: 47px;
  border-radius: 10px;
  flex-shrink: 0;
}
.election-symbol svg {
  width: 23px;
  height: 23px;
}
.election-summary .eyebrow {
  font-size: 0.5625rem;
  letter-spacing: 1px;
}
.election-summary h2 {
  font-size: 1.125rem;
  margin: 3px 0;
}
.election-summary p {
  font-size: 0.75rem;
  color: var(--muted);
}
.circle-link {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd9cb;
  border-radius: 50%;
  margin-left: auto;
  flex-shrink: 0;
}
.circle-link svg {
  width: 16px;
}
.circle-link:hover {
  background: #deeadb;
}
.section {
  margin-top: 31px;
  scroll-margin-top: 25px;
}
.section-heading,
.list-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.section-heading h2 > span {
  font-size: 0.75rem;
  color: #7f8d84;
  font-weight: 400;
  margin-left: 7px;
}
.section-heading > a {
  font-size: 0.75rem;
  color: var(--green);
}
.section-heading .quiet {
  font-size: 0.6875rem;
}
.person-list {
  border-top: 1px solid var(--line);
}
.person-row {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 23px 0;
  border-bottom: 1px solid var(--line);
}
.person-row[hidden] {
  display: none;
}
.person-row.compact { align-items: center; padding: 14px 0; }
.person-row.roster-row { position: relative; padding-left: 64px; }
.roster-row .avatar { position: absolute; left: 0; top: 23px; }
.roster-row.compact .avatar { top: 50%; transform: translateY(-50%); }
.roster-row .person-name-line { font-size: inherit; line-height: inherit; }
.roster-row .role-label { font-weight: 400; }
.avatar {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 49px;
  height: 49px;
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 1.0625rem;
  font-weight: 400;
  letter-spacing: -1px;
  flex-shrink: 0;
  border: 1px solid #d5e6dc;
  overflow: hidden;
}
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar .avatar-placeholder { width: 26px; height: 26px; }
.avatar.teal {
  background: #e8f1e8;
  color: #396955;
}
.avatar.slate {
  background: #eef0f5;
  border-color: #dfe3ec;
  color: #526581;
}
.avatar.large {
  width: 78px;
  height: 78px;
  font-size: 1.6875rem;
}
.avatar.small {
  width: 39px;
  height: 39px;
  font-size: 0.875rem;
}
.person-body {
  min-width: 0;
  flex: 1;
}
.person-name-line {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.person-name {
  font-size: 1.125rem;
  font-weight: 650;
  letter-spacing: -0.45px;
}
.role-label {
  font-size: 0.625rem;
  color: #7e8c82;
  white-space: nowrap;
}
.person-org {
  font-size: 0.625rem;
  letter-spacing: 0.2px;
  color: var(--muted);
  margin-top: 3px;
}
.person-body > p {
  font-size: 0.8125rem;
  line-height: 1.9;
  color: #56665d;
  margin-top: 10px;
  max-width: 660px;
}
.person-row-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.person-body > p.person-row-excerpt { margin-top: 7px; line-height: 1.6; }
.person-row-evidence {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-top: 4px;
  font-size: .75rem;
  line-height: 1.5;
  color: #738578;
}
.person-row-evidence a { color: #276b4b; font-weight: 650; }
.row-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 11px;
}
.tag {
  font-size: 0.625rem;
  line-height: 1.5;
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  background: #f1f3ee;
  border: 1px solid #e6eae3;
  border-radius: 4px;
  color: #69786c;
}
.teal-tag {
  background: #edf5f0;
  border-color: #dcebe0;
  color: #3c7660;
}
.quiet {
  color: var(--muted);
  font-size: 0.75rem;
}
.row-meta .quiet {
  font-size: 0.625rem;
}
.person-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 1px;
}
.icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: none;
  color: #859289;
}
.icon-button:hover {
  color: var(--green);
  background: var(--wash);
}
.icon-button svg {
  width: 18px;
  height: 18px;
}
.save-button[aria-pressed="true"] {
  color: var(--green);
  background: var(--wash);
}
.save-button[aria-pressed="true"] svg {
  fill: #cce2d5;
}
.issue-feature {
  display: flex;
  justify-content: space-between;
  overflow: hidden;
  border: 1px solid #dde7e2;
  border-radius: 9px;
  background: linear-gradient(105deg, #f1f6f1, #f8faf6);
  padding: 22px 23px;
  position: relative;
  gap: 20px;
  min-height: 169px;
}
.issue-feature > div:first-child {
  position: relative;
  z-index: 1;
  max-width: 80%;
}
.category-label {
  font-size: 0.625rem;
  color: var(--green);
  letter-spacing: 0.4px;
}
.issue-feature h3,
.issue-feature h2 {
  margin-top: 7px;
  letter-spacing: 0.2px;
  font-size: 1.3125rem;
}
.issue-feature p {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 8px;
  line-height: 1.8;
}
.issue-foot {
  font-size: 0.625rem;
  color: #7b8b80;
  display: block;
  margin-top: 16px;
}
.issue-art {
  width: 98px;
  flex-shrink: 0;
  position: relative;
  align-self: stretch;
  color: var(--green);
}
.issue-art > span {
  position: absolute;
  width: 115px;
  height: 115px;
  border: 1px solid #bcd2c4;
  border-radius: 50%;
  top: 14px;
  left: 14px;
  opacity: 0.6;
}
.issue-art > span:nth-child(2) {
  left: 32px;
  top: 1px;
}
.issue-art > span:nth-child(3) {
  left: 50px;
  top: -12px;
}
.issue-art svg {
  position: absolute;
  left: 48px;
  top: 54px;
  width: 27px;
  height: 27px;
}
.large-feature {
  min-height: 210px;
}
.large-feature h2 {
  font-size: 1.625rem;
}
.record {
  padding: 21px 0;
  border-bottom: 1px solid var(--line);
}
.record:first-of-type {
  border-top: 1px solid var(--line);
}
.record-overline {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--green);
  font-size: 0.625rem;
  margin-bottom: 9px;
}
.type-dot {
  height: 5px;
  width: 5px;
  background: #669c81;
  border-radius: 50%;
}
.overline-date {
  margin-left: auto;
  color: var(--muted);
  font-size: 0.625rem;
}
.record-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 1.0625rem;
  font-weight: 650;
  line-height: 1.6;
}
.record-title svg {
  width: 18px;
  color: #9aa69e;
}
.subject-period,
.record > p.subject-period {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 4px;
  margin-top: 8px;
  color: var(--green);
  font-size: 0.8125rem;
  line-height: 1.65;
}
.subject-period-label {
  color: var(--muted);
}
.subject-period-dates {
  white-space: nowrap;
}
.record > p {
  font-size: 0.8125rem;
  line-height: 1.9;
  color: #58675f;
  margin-top: 10px;
}
.record-bottom {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  font-size: 0.6875rem;
  color: var(--muted);
}
.record-bottom > span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.record-bottom svg {
  width: 13px;
  height: 13px;
}
.record-bottom a {
  color: var(--green);
}
.side-column {
  display: flex;
  flex-direction: column;
  gap: 27px;
}
.reading-guide {
  background: #f7f8f4;
  border-radius: 9px;
  padding: 26px 22px;
}
.reading-guide h2 {
  font-size: 1.375rem;
  line-height: 1.75;
  margin-top: 13px;
  letter-spacing: 0.3px;
}
.reading-guide ol {
  list-style: none;
  padding: 0;
  margin: 24px 0;
}
.reading-guide li {
  display: flex;
  gap: 13px;
  margin-top: 22px;
}
.reading-guide li > span {
  font-size: 0.625rem;
  color: #8b9c8c;
  padding-top: 4px;
  letter-spacing: 0.8px;
}
.reading-guide li strong {
  font-weight: 600;
  font-size: 0.75rem;
}
.reading-guide li p {
  font-size: 0.6875rem;
  line-height: 1.85;
  color: var(--muted);
  margin-top: 5px;
}
.text-link {
  color: var(--green);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 0.75rem;
  min-height: 36px;
}
.text-link svg {
  width: 16px;
}
.reading-guide .text-link {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
}
.coverage-note {
  padding: 0 5px;
}
.small-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin: 15px 0;
}
.workbench-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.small-stats > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.small-stats strong {
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 1.2;
}
.small-stats span {
  font-size: 0.625rem;
  color: var(--muted);
}
.coverage-note p {
  font-size: 0.6875rem;
  color: var(--muted);
  line-height: 1.85;
}
.coverage-note > a {
  display: inline-block;
  font-size: 0.6875rem;
  color: var(--green);
  margin-top: 13px;
}
.footer {
  max-width: 1320px;
  margin: auto;
  padding: 23px 40px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  color: #859088;
  font-size: 0.625rem;
}
.footer > a {
  margin-left: auto;
}
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 0.6875rem;
  color: var(--muted);
  margin-bottom: 28px;
}
.breadcrumb > span {
  color: #b7c1b9;
}
.list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 0 22px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
}
.list-toolbar > div {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.filter-chip {
  font-size: 0.75rem;
  border: 1px solid #dce5dd;
  background: #f5f8f3;
  border-radius: 6px;
  padding: 6px 12px;
  color: #466150;
}
.compare-check {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 44px;
  font-size: 0.6875rem;
  cursor: pointer;
  color: var(--muted);
}
input[type="checkbox"] {
  accent-color: var(--green);
  width: 17px;
  height: 17px;
}
.compare-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  background: #f6f8f4;
  border: 1px solid var(--line);
  padding: 17px 20px;
  border-radius: 8px;
  margin-top: 23px;
}
.compare-bar > span {
  font-size: 0.75rem;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
}
.button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 16px;
  border: 1px solid var(--green);
  background: var(--green);
  border-radius: 6px;
  color: white;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 500;
  white-space: normal;
  text-align: center;
}
.button:hover {
  background: var(--green-dark);
  color: white;
  border-color: var(--green-dark);
}
.button.secondary {
  background: white;
  color: var(--green);
  border-color: #d9e3dc;
}
.button.secondary:hover {
  background: var(--wash);
  border-color: #bacfc1;
}
.button svg {
  width: 16px;
  height: 16px;
}
.footnote {
  font-size: 0.6875rem;
  color: var(--muted);
  line-height: 1.9;
  margin-top: 22px;
}
.empty-state {
  text-align: center;
  padding: 64px 20px;
  background: #fafbf8;
  border-radius: 9px;
  margin: 20px 0;
}
.empty-state > svg {
  width: 30px;
  height: 30px;
  color: #8aa093;
  margin-bottom: 20px;
}
.empty-state h2 {
  font-size: 1.25rem;
}
.empty-state p {
  font-size: 0.8125rem;
  color: var(--muted);
  margin-top: 12px;
}
.empty-state .button {
  margin-top: 25px;
}
.profile-heading {
  display: flex;
  align-items: center;
  gap: 21px;
  padding: 3px 0 20px;
}
.profile-name {
  flex: 1;
  min-width: 0;
}
.profile-name h1 {
  font-size: 2.125rem;
  margin-top: 4px;
}
.profile-name > p {
  color: var(--muted);
  font-size: 0.75rem;
  margin-top: 8px;
}
.profile-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}
.section-tabs {
  display: flex;
  gap: 28px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 7px;
}
.section-tabs > a {
  padding: 13px 0;
  color: var(--muted);
  font-size: 0.8125rem;
}
.section-tabs > a:first-child {
  border-bottom: 2px solid var(--green);
  color: var(--green);
  font-weight: 600;
}
.council-tabs > a:first-child:not([aria-current="page"]) {
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-weight: 400;
}
.council-tabs > a[aria-current="page"] {
  border-bottom: 2px solid var(--green);
  color: var(--green);
  font-weight: 600;
}
.section-tabs span {
  color: #8c9b91;
  font-size: 0.625rem;
  margin-left: 5px;
}
.detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 248px;
  gap: 46px;
  align-items: start;
}
.profile-intro {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #344e40;
  margin-bottom: 12px;
}
.profile-facts > div { padding: 8px 0; }
.profile-facts dd a { margin-left: 8px; white-space: nowrap; }
.profile-scope { margin: 10px 0 0; color: var(--muted); font-size: 0.75rem; line-height: 1.6; }
.facts {
  margin: 0;
}
.facts > div {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 20px;
  padding: 11px 0;
  border-bottom: 1px solid #edf0e9;
  font-size: 0.75rem;
}
.facts dt {
  color: var(--muted);
}
.facts dd {
  margin: 0;
  min-width: 0;
}
.facts dd a {
  margin-left: 10px;
  color: var(--green);
}
.profile-note {
  margin-top: 12px;
  background: #f7f8f4;
  border-left: 2px solid #c8d8c7;
  padding: 16px 18px;
}
.profile-note h2 {
  font-size: 1.1875rem;
  margin: 12px 0 16px;
}
.profile-note p {
  font-size: 0.75rem;
  color: var(--muted);
  line-height: 1.7;
  margin-top: 8px;
}
.profile-note .text-link {
  margin-top: 12px;
}
.back-list {
  font-size: 0.75rem;
  color: var(--muted);
  padding-left: 12px;
}
.position-block {
  border: 1px solid #dfe9df;
  background: #f9fbf7;
  border-radius: 8px;
  padding: 21px;
}
.position-heading h3 {
  margin: 5px 0 12px;
}
.position-block > p {
  font-size: 0.875rem;
  line-height: 2;
  color: #455e4b;
}
.position-block .text-link {
  margin-top: 13px;
}
.gap {
  display: flex;
  gap: 14px;
  padding: 24px 0;
  color: var(--muted);
}
.gap strong {
  font-size: 0.875rem;
  color: #56695b;
  font-weight: 550;
}
.gap p {
  font-size: 0.8125rem;
  line-height: 1.9;
  margin-top: 9px;
}
.gap-mark {
  color: #8e9e90;
}
.gap a {
  font-size: 0.75rem;
  color: var(--green);
  display: inline-block;
  margin-top: 14px;
}
.scope-note {
  display: flex;
  gap: 15px;
  padding: 17px 21px;
  background: #f5f7f1;
  border-radius: 7px;
  color: #61705e;
  margin-bottom: 30px;
  font-size: 0.75rem;
  line-height: 1.9;
}
.scope-note svg {
  margin-top: 2px;
}
.issue-person {
  border-top: 1px solid var(--line);
  padding: 21px 0 5px;
}
.issue-person-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}
.issue-person-heading .person-name {
  font-size: 1.0625rem;
}
.issue-person-heading p {
  font-size: 0.625rem;
  color: var(--muted);
  margin-top: 2px;
}
.issue-person-heading .icon-button {
  margin-left: auto;
}
.issue-person .record {
  border: 0;
  padding-bottom: 24px;
}
.compare-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 17px;
}
.compare-heading > a {
  color: var(--green);
  font-size: 0.75rem;
}
.comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.comparison-column {
  padding: 27px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.comparison-column + section {
  border-left: 1px solid var(--line);
}
.comparison-label {
  font-size: 0.625rem;
  color: var(--muted);
  margin: 35px 0 8px;
}
.comparison h2 {
  font-size: 1.3125rem;
  margin: 0 0 12px;
}
.compare-copy {
  font-size: 0.875rem;
  line-height: 1.95;
  flex: 1;
  color: #4e6656;
}
.comparison-facts {
  margin: 22px 0 27px;
  width: 100%;
}
.comparison-facts > div {
  border-top: 1px solid var(--line);
  padding: 15px 0;
}
.comparison-facts dt {
  color: var(--muted);
  font-size: 0.625rem;
  letter-spacing: 0.4px;
  margin-bottom: 6px;
}
.comparison-facts dd {
  font-size: 0.8125rem;
  line-height: 1.9;
  margin: 0;
}
.comparison-column .button {
  margin-top: auto;
}
.evidence-heading h1 {
  font-size: 1.9375rem;
}
.reading-section {
  margin: 0 0 29px;
}
.reading-section .section-heading {
  margin-bottom: 17px;
}
.summary-source-list article {
  padding: 16px 0;
  border-top: 1px solid #e2eae2;
}
.summary-source-list article h3 {
  margin: 0 0 5px;
  font-size: 0.94rem;
  line-height: 1.4;
}
.summary-source-list article p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.65;
}
.draft-label {
  font-size: 0.625rem;
  color: #987b49;
  background: #fbf4e7;
  padding: 4px 8px;
  border-radius: 4px;
}
.reading-summary {
  font-size: 1.125rem;
  line-height: 2;
  color: #344b3e;
}
blockquote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.1875rem;
  line-height: 1.9;
  background: #f6f8f3;
  border-left: 3px solid #659078;
  margin: 0;
  padding: 24px 27px;
  color: #3c5446;
  overflow-wrap: anywhere;
}
.source-signature {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.6875rem;
  color: var(--muted);
  margin-top: 13px;
}
.source-line {
  width: 16px;
  height: 1px;
  background: #a5b8a6;
}
.boundary {
  border-top: 1px solid var(--line);
  padding: 24px 0;
}
.boundary p {
  font-size: 0.875rem;
  line-height: 1.9;
  margin-top: 10px;
  color: #4e6353;
}
.technical {
  border-top: 1px solid var(--line);
  padding-top: 17px;
  margin-top: 8px;
}
.technical summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 0.75rem;
  min-height: 36px;
  line-height: 36px;
}
.technical .facts {
  margin-top: 12px;
}
.hash {
  overflow-wrap: anywhere;
  font-family: monospace;
  font-size: 0.6875rem;
}
.source-card {
  background: #f7f8f4;
  border: 1px solid #e6ebe0;
  border-radius: 9px;
  padding: 24px;
}
.source-monogram {
  background: #e9eee3;
  color: var(--green);
  border-radius: 8px;
  display: flex;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  margin: 21px 0 12px;
}
.source-card h2 {
  font-size: 1.1875rem;
}
.source-card > p {
  font-size: 0.75rem;
  line-height: 1.9;
  color: var(--muted);
  margin: 8px 0 20px;
}
.source-card .button {
  width: 100%;
}
.source-card > p.quiet {
  font-size: 0.6875rem;
  margin: 15px 0;
}
.source-card hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 21px 0;
}
.text-button {
  border: 0;
  background: none;
  font-size: 0.75rem;
  color: var(--green);
  padding: 10px;
}
.prose {
  max-width: 740px;
}
.prose section {
  padding: 26px 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 20px;
}
.prose h2 {
  font-size: 1.3125rem;
  margin-bottom: 15px;
}
.prose p {
  font-size: 0.9375rem;
  line-height: 2;
  color: #56695b;
  margin-top: 10px;
}
.method-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 20px;
  padding: 10px 0;
}
.method-row .tag {
  align-self: start;
  margin-top: 13px;
  justify-self: start;
}
.method-row p {
  font-size: 0.875rem;
}
.toast {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 28px;
  z-index: 60;
  padding: 12px 22px;
  background: #1c3f32;
  color: #fff;
  font-size: 0.8125rem;
  border-radius: 7px;
  box-shadow: 0 5px 25px #12332325;
  max-width: 90vw;
  text-align: center;
}
.toast[hidden] {
  display: none;
}
@media (min-width: 1600px) {
  :root {
    --sidebar: 240px;
  }
  .topbar {
    padding-inline: 52px;
  }
  main {
    padding-inline: 48px;
  }
  .overview-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 48px;
  }
}
@media (max-width: 1190px) {
  :root {
    --sidebar: 190px;
  }
  .sidebar {
    padding-inline: 12px;
  }
  .topbar {
    padding-inline: 27px;
    gap: 15px;
  }
  main {
    padding: 28px 27px 45px;
  }
  .prototype-bar {
    padding-inline: 27px;
  }
  .language {
    display: none;
  }
  .overview-layout,
  .detail-layout {
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 25px;
  }
  .reading-guide {
    padding: 21px 18px;
  }
  .person-name {
    font-size: 1.0625rem;
  }
  .role-label {
    display: none;
  }
  .profile-name h1 {
    font-size: 1.8125rem;
  }
  .profile-actions .button {
    padding-inline: 10px;
  }
  .footer {
    padding-inline: 27px;
  }
}
@media (max-width: 1000px) {
  .overview-layout,
  .detail-layout {
    grid-template-columns: 1fr;
  }
  .home .side-column {
    display: none;
  }
  .side-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .reading-guide h2 br {
    display: none;
  }
  .reading-guide ol {
    margin-bottom: 12px;
  }
  .reading-guide li {
    margin-top: 14px;
  }
  .coverage-note {
    padding: 20px 5px;
  }
  .profile-note {
    margin-top: 0;
  }
  .back-list {
    align-self: center;
  }
  .detail-layout > .source-card {
    max-width: none;
  }
  .source-card .button {
    width: auto;
  }
  .source-card {
    display: block;
  }
  .profile-actions .save-label {
    display: none;
  }
  .profile-actions .button {
    min-width: 42px;
  }
  .comparison-column {
    padding: 23px;
  }
}
@media (max-width: 740px) {
  :root {
    --sidebar: 0px;
  }
  .sidebar {
    display: none;
  }
  .workspace {
    margin-left: 0;
  }
  .mobile-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.1875rem;
    letter-spacing: -0.7px;
    font-weight: 750;
  }
  .topbar {
    padding: 15px 20px 12px;
    gap: 13px;
    flex-wrap: wrap;
    min-height: 0;
  }
  .scope-link {
    flex: 0 0 100%;
    margin-left: 0;
    font-size: 0.6875rem;
    gap: 5px;
    max-width: 100%;
    flex-wrap: wrap;
    white-space: normal;
    overflow: visible;
    line-height: 1.5;
  }
  .scope-link svg {
    width: 15px;
    flex: 0 0 15px;
  }
  .search {
    order: 3;
    width: 100%;
    max-width: none;
    flex-basis: 100%;
    height: 37px;
  }
  .search input {
    font-size: 0.8125rem;
  }
  .search button {
    min-height: 28px;
    min-width: 32px;
  }
  .prototype-bar {
    padding: 8px 20px;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.625rem;
    line-height: 1.8;
  }
  .prototype-bar a {
    font-size: 0.625rem;
  }
  .prototype-bar > span:not(.prototype-dot) {
    font-size: 0.5625rem;
  }
  .prototype-bar a {
    margin-left: auto;
  }
  main {
    padding: 27px 20px 38px;
    min-height: calc(100vh - 240px);
  }
  h1 {
    font-size: 1.75rem;
    letter-spacing: -0.8px;
  }
  .page-heading {
    margin-bottom: 25px;
  }
  .page-heading .eyebrow {
    font-size: 0.5625rem;
    margin-bottom: 10px;
  }
  .lead {
    font-size: 0.8125rem;
    line-height: 1.85;
    margin-top: 9px;
  }
  .overview-layout,
  .detail-layout {
    gap: 27px;
  }
  .side-column {
    display: block;
  }
  .side-column > * + * {
    margin-top: 27px;
  }
  .election-summary {
    padding: 16px 15px;
    gap: 12px;
  }
  .election-symbol {
    width: 40px;
    height: 40px;
    border-radius: 8px;
  }
  .election-summary h2 {
    font-size: 1rem;
  }
  .election-summary p {
    font-size: 0.625rem;
  }
  .circle-link {
    width: 29px;
    height: 29px;
  }
  .section {
    margin-top: 27px;
  }
  .section-heading {
    margin-bottom: 13px;
    gap: 10px;
  }
  .section-heading h2,
  .list-title h2 {
    font-size: 1.0625rem;
  }
  .section-heading > a {
    font-size: 0.6875rem;
  }
  .person-row {
    gap: 12px;
    padding: 21px 0;
  }
  .person-row.roster-row { padding-left: 54px; }
  .roster-row .avatar { top: 21px; }
  .avatar {
    width: 42px;
    height: 42px;
    font-size: 0.9375rem;
  }
  .person-name {
    font-size: 1.0625rem;
    line-height: 1.5;
    letter-spacing: -0.4px;
  }
  .person-org {
    font-size: 0.5625rem;
    overflow-wrap: anywhere;
  }
  .person-body > p {
    font-size: 0.8125rem;
    line-height: 1.85;
    margin-top: 9px;
  }
  .person-tools {
    gap: 0;
    flex-direction: column;
    margin-left: -8px;
  }
  .icon-button {
    min-width: 34px;
    min-height: 34px;
    padding: 8px;
  }
  .person-tools .compare-check {
    font-size: 0.625rem;
  }
  .compare-check input {
    width: 16px;
    height: 16px;
  }
  .row-meta {
    gap: 6px;
  }
  .tag {
    font-size: 0.5625rem;
    padding: 3px 6px;
  }
  .issue-feature {
    padding: 19px;
    gap: 0;
    min-height: 168px;
  }
  .issue-feature > div:first-child {
    max-width: 90%;
  }
  .issue-feature h3 {
    font-size: 1.25rem;
  }
  .issue-feature p {
    font-size: 0.75rem;
    max-width: 240px;
  }
  .issue-foot {
    font-size: 0.5625rem;
    max-width: 230px;
    line-height: 1.8;
  }
  .issue-art {
    width: 29px;
    opacity: 0.65;
  }
  .issue-art > span {
    left: 0;
  }
  .issue-art > span:nth-child(2) {
    left: 16px;
  }
  .issue-art > span:nth-child(3) {
    left: 32px;
  }
  .issue-art svg {
    left: 5px;
    top: 59px;
    width: 21px;
  }
  .record-title {
    font-size: 1.0625rem;
  }
  .record > p {
    font-size: 0.875rem;
  }
  .record-overline {
    font-size: 0.625rem;
  }
  .record-overline .overline-date {
    font-size: 0.5625rem;
  }
  .record-bottom {
    font-size: 0.625rem;
  }
  .reading-guide {
    padding: 24px;
  }
  .reading-guide h2 {
    font-size: 1.3125rem;
  }
  .reading-guide li strong {
    font-size: 0.8125rem;
  }
  .reading-guide li p {
    font-size: 0.75rem;
  }
  .coverage-note {
    padding: 0 5px;
  }
  .small-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
  .workbench-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer {
    padding: 20px 20px 95px;
    gap: 7px;
    flex-direction: column;
    font-size: 0.625rem;
  }
  .footer > a {
    margin: 4px 0 0;
  }
  .mobile-nav {
    display: flex;
    position: fixed;
    z-index: 30;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 8px 10px max(8px, env(safe-area-inset-bottom));
    border-top: 1px solid #e3e9e0;
    background: #fffffff5;
    backdrop-filter: blur(12px);
    justify-content: space-around;
    box-shadow: 0 -3px 18px #1a3c2605;
  }
  .mobile-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
    flex: 1;
    min-height: 45px;
    font-size: 0.5625rem;
    color: #86918a;
  }
  .mobile-nav svg {
    height: 19px;
    width: 19px;
  }
  .mobile-nav a[aria-current] {
    color: var(--green);
    font-weight: 650;
  }
  .mobile-nav a[aria-current] svg {
    stroke-width: 2.1;
  }
  .breadcrumb {
    font-size: 0.625rem;
    gap: 8px;
    margin-bottom: 23px;
  }
  .list-toolbar {
    align-items: flex-start;
    gap: 10px;
    padding-top: 3px;
    flex-direction: column;
  }
  .filter-chip {
    font-size: 0.6875rem;
    padding: 5px 10px;
  }
  .list-toolbar .quiet {
    font-size: 0.625rem;
  }
  .list-title .quiet {
    font-size: 0.625rem;
  }
  .compare-bar {
    padding: 13px;
    gap: 12px;
  }
  .compare-bar > span {
    font-size: 0.625rem;
    gap: 7px;
  }
  .compare-bar > span svg {
    width: 16px;
  }
  .compare-bar .button {
    flex-shrink: 0;
    padding: 9px 11px;
    font-size: 0.6875rem;
  }
  .profile-heading {
    gap: 14px;
    flex-wrap: wrap;
    padding: 0 0 20px;
  }
  .avatar.large {
    width: 58px;
    height: 58px;
    font-size: 1.3125rem;
  }
  .profile-name h1 {
    font-size: 1.625rem;
    overflow-wrap: anywhere;
  }
  .profile-name .eyebrow {
    font-size: 0.5rem;
    letter-spacing: 0.8px;
  }
  .profile-name > p {
    font-size: 0.625rem;
    margin-top: 5px;
  }
  .profile-actions {
    margin-left: 72px;
    gap: 9px;
  }
  .profile-actions .save-label {
    display: inline;
  }
  .profile-actions .button {
    font-size: 0.6875rem;
    min-height: 35px;
  }
  .section-tabs {
    gap: 26px;
    margin-bottom: 0;
  }
  .section-tabs > a {
    font-size: 0.75rem;
    padding: 12px 0;
  }
  .profile-intro {
    font-size: 1rem;
    line-height: 1.75;
  }
  .facts > div {
    font-size: 0.75rem;
    grid-template-columns: 82px 1fr;
    gap: 12px;
  }
  .position-block {
    padding: 18px;
  }
  .position-block > p {
    font-size: 0.875rem;
  }
  .profile-note {
    margin-top: 0;
  }
  .back-list {
    display: block;
    margin-top: 24px;
  }
  .section-heading .tag {
    font-size: 0.5rem;
  }
  .scope-note {
    padding: 15px;
    gap: 10px;
    font-size: 0.6875rem;
  }
  .scope-note svg {
    width: 17px;
  }
  .issue-person-heading .person-name {
    font-size: 1.0625rem;
  }
  .issue-person-heading p {
    font-size: 0.5625rem;
  }
  .issue-person {
    padding-top: 21px;
  }
  .gap p {
    font-size: 0.8125rem;
  }
  .comparison {
    grid-template-columns: 1fr;
  }
  .comparison-column {
    padding: 22px;
  }
  .comparison-column + section {
    border-left: 0;
    border-top: 1px solid var(--line);
    background: #fcfcfa;
  }
  .comparison-label {
    margin-top: 25px;
  }
  .comparison h2 {
    font-size: 1.3125rem;
  }
  .comparison-facts {
    margin-bottom: 20px;
  }
  .comparison-facts dd {
    font-size: 0.875rem;
  }
  .compare-copy {
    font-size: 0.9375rem;
  }
  .evidence-heading h1 {
    font-size: 1.625rem;
  }
  .reading-summary {
    font-size: 1.0625rem;
    line-height: 2;
  }
  .reading-section .section-heading .quiet {
    font-size: 0.5625rem;
  }
  blockquote {
    font-size: 1.125rem;
    line-height: 1.85;
    padding: 20px;
  }
  .source-signature {
    font-size: 0.625rem;
  }
  .boundary p {
    font-size: 0.875rem;
  }
  .source-card {
    padding: 23px;
  }
  .source-card .button {
    width: 100%;
  }
  .technical .facts > div {
    grid-template-columns: 80px 1fr;
  }
  .empty-state {
    padding: 45px 17px;
  }
  .empty-state h2 {
    font-size: 1.1875rem;
  }
  .prose h2 {
    font-size: 1.25rem;
  }
  .prose p {
    font-size: 0.9375rem;
  }
  .method-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .method-row .tag {
    margin-top: 5px;
  }
  .toast {
    bottom: 87px;
    min-width: 220px;
    font-size: 0.75rem;
  }
  .full-width {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}
.copy-field {
  position: fixed;
  left: -9999px;
  top: 0;
}
[hidden] {
  display: none !important;
}
/* Keep supporting text readable; density comes from layout, not tiny type. */
.person-body > p {
  font-size: 0.875rem;
}
.person-org,
.role-label,
.row-meta .quiet,
.record-overline,
.overline-date,
.record-bottom,
.tag,
.issue-foot {
  font-size: 0.6875rem;
}
.record > p {
  font-size: 0.875rem;
}
.reading-guide li p,
.coverage-note p {
  font-size: 0.75rem;
}
.prototype-bar {
  font-size: 0.75rem;
}
@media (max-width: 740px) {
  .profile-heading {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    column-gap: 14px;
    row-gap: 14px;
  }
  .profile-actions {
    grid-column: 2;
    margin-left: 0;
  }
  .profile-name h1 {
    overflow-wrap: normal;
    font-size: 1.625rem;
  }
  .profile-name .eyebrow {
    font-size: 0.625rem;
    letter-spacing: 0.5px;
  }
  .profile-name > p {
    font-size: 0.6875rem;
  }
  .person-org {
    font-size: 0.625rem;
  }
  .person-body > p {
    font-size: 0.875rem;
  }
  .tag,
  .row-meta .quiet,
  .record-overline,
  .overline-date {
    font-size: 0.625rem;
  }
  .prototype-bar {
    font-size: 0.625rem;
  }
  .prototype-bar > span:not(.prototype-dot) {
    font-size: 0.625rem;
  }
  .reading-guide li p {
    font-size: 0.8125rem;
  }
  .record > p {
    font-size: 0.9375rem;
  }
  .issue-person-heading p {
    font-size: 0.6875rem;
  }
  .person-tools .icon-button {
    min-width: 40px;
    min-height: 40px;
  }
}

.login-form { display: grid; gap: .8rem; max-width: 24rem; }
.login-form input { min-height: 44px; padding: .7rem; border: 1px solid var(--line, #d9dfdc); border-radius: 8px; font: inherit; }
.record details code { overflow-wrap: anywhere; }
.review-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.review-results .record > p { margin: .65rem 0; }
.review-results .technical { margin-top: 1rem; }
.review-findings { margin: 1rem 0; }
.review-findings > div { margin: .8rem 0; }
.review-findings dt { font-weight: 600; }
.review-findings dd { margin: .25rem 0 0; color: var(--muted, #63726d); }
.review-sources { margin-bottom: 2rem; }
.review-sources p, .review-findings dd { overflow-wrap: anywhere; }
.source-usage { margin: 1rem 0; }
.correction-inline a { color: #26675d; }
.correction-inline { padding: .7rem 1rem; margin: 1rem 0; border: 1px solid #e9dfc8; border-radius: 8px; background: #fffaf0; }
.correction-card { padding: 1.2rem 0; border-top: 1px solid #dce5df; }
.correction-card h2 { font-size: 1.25rem; margin: .4rem 0; }
.correction-card ul { padding-left: 1.4rem; }
.correction-card li { margin: .35rem 0; }
.compact-heading{margin-bottom:18px}
.compact-heading h1{font-size:clamp(1.65rem,3vw,2.55rem)}
.home-first{margin-top:0}
.contest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.contest-card{min-width:0;padding:17px;border:1px solid #dce8dd;border-radius:12px;background:#f7faf7}
.contest-card-main{display:block;color:#244b35}
.contest-card-main h3{display:flex;justify-content:space-between;gap:8px;margin:6px 0;font-size:1.1rem}
.contest-card-main strong{font-size:1.5rem;letter-spacing:-.04em}
.contest-card p{margin:8px 0 4px;color:#5a6e60;font-size:.75rem}
.place-section{margin:24px 0 32px;max-width:1050px}
.council-areas{max-width:850px;border-top:1px solid var(--line)}
.council-area{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr) 18px;align-items:center;gap:14px;min-height:68px;padding:13px 3px;border-bottom:1px solid var(--line)}
.council-area-name{color:var(--ink);font-weight:680}
.council-area-note{color:var(--muted);font-size:.8rem}
.council-area-link:hover .council-area-name,.council-area-link:hover .council-area-arrow{color:var(--green)}
.council-area-arrow{font-size:1.2rem;color:var(--green-dark)}
@media(max-width:540px){.council-area{grid-template-columns:minmax(0,1fr) 20px;gap:5px 8px}.council-area-note{grid-column:1;grid-row:2}.council-area-arrow{grid-column:2;grid-row:1/3}}
.place-data-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:720px;margin:15px 0 23px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.place-data-summary>div{display:flex;align-items:baseline;gap:7px;min-width:0}
.place-data-summary strong{color:var(--ink);font-size:1.18rem;line-height:1.2}
.place-data-summary span{color:var(--muted);font-size:.7rem;white-space:nowrap}
@media(max-width:540px){.place-data-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}.place-data-summary strong{font-size:1.05rem}}
.place-links,.place-contests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.place-links>a,.place-contests>a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:16px 18px;border:1px solid #dce8dd;border-radius:11px;background:#f7faf7}
.place-links>a:hover,.place-contests>a:hover{border-color:#90bba1;background:#f0f7f1}
.place-links>a>span:first-child,.place-contests>a>span:first-child{display:grid;gap:3px;min-width:0}
.place-links strong,.place-contests strong{font-size:1rem;color:#234c37}
.place-links small,.place-contests small{font-size:.73rem;line-height:1.45;color:#607365}
.district-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.district-filter[hidden],.place-contests>a[hidden],[data-district-filter-empty][hidden]{display:none}
.district-filter label{color:#536e5c;font-size:.78rem;font-weight:650}
.district-filter input{min-height:40px;min-width:180px;max-width:320px;flex:1;padding:8px 11px;border:1px solid #bbcec0;border-radius:8px;background:#fff;color:#173c2a;font:inherit;font-size:.84rem}
.district-filter input:focus-visible{outline:2px solid #1f7653;outline-offset:2px}
.place-note{max-width:760px;padding:14px 17px;border-left:3px solid #a5bbaa;background:#f5f8f4;color:#516656;font-size:.82rem}
.place-shortcuts{display:flex;flex-wrap:wrap;gap:8px}
.place-shortcuts>a{padding:9px 12px;border-radius:8px;background:#e8f2ea;color:#225d3e;font-size:.8rem;font-weight:650}
.quiet-link{font-size:.74rem;color:#246c4a;font-weight:650}
.contest-browser{margin:0 0 20px;border-bottom:1px solid #dce8dd}
.contest-browser summary{padding:0 0 14px;color:#265e3f;font-size:.78rem;font-weight:650;cursor:pointer}
.contest-browser summary:focus-visible{outline:2px solid #1f7653;outline-offset:2px}
.contest-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.contest-links a{padding:7px 10px;border-radius:7px;background:#ecf4ec;color:#265e3f;font-size:.75rem;font-weight:650}
.home-feed article{display:grid;grid-template-columns:85px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #e4ebe4}
.home-feed time{font-size:.72rem;color:#52705a}
.home-feed article div>a{margin-left:9px;color:#215c3e;font-weight:650}
.home-feed p{margin:4px 0;color:#677c6b;font-size:.74rem;line-height:1.55}
.home-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.home-paths a{display:flex;justify-content:space-between;gap:6px;padding:12px;background:#e8f2ea;border-radius:8px;color:#225d3e;font-size:.78rem;font-weight:650}
.report-form{display:grid;max-width:690px;gap:8px;margin:22px 0}
.report-form label{font-weight:700;color:#294b37}
.report-form input,.report-form textarea{width:100%;padding:11px;border:1px solid #bacdbc;border-radius:8px;background:#fff;color:#203629;font:inherit}
.report-form small{color:#687e6d;font-size:.74rem;line-height:1.5}
.report-form button{justify-self:start;margin-top:9px}
.report-received,.report-errors{max-width:690px;padding:14px 18px;border-radius:9px;background:#ebf5ed;color:#255539}
.report-errors{background:#fff4ed;color:#783e26;margin-top:15px}
.report-received p,.report-errors p{margin:4px 0}
@media(max-width:760px){.home-paths{grid-template-columns:1fr}.contest-grid,.place-links,.place-contests{grid-template-columns:1fr}}
.election-stack{display:grid;gap:22px}
.election-entry{padding:0 0 20px;border-bottom:1px solid var(--line)}
.election-entry-head{display:flex;justify-content:space-between;align-items:end;gap:16px}
.election-entry-head h3{margin:5px 0 12px;font-size:1.45rem;line-height:1.2}
.election-entry-head h3 a{color:var(--ink);text-decoration:none}
.election-entry-head h3 a:hover{color:var(--green)}
.election-date{font-size:.78rem;color:var(--muted);white-space:nowrap}
.election-offices{border-top:1px solid var(--line)}
.election-office{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:11px 0;border-bottom:1px solid var(--line)}
.election-office>div{display:flex;align-items:baseline;gap:10px;min-width:0}
.election-office>div:last-child{display:grid;justify-items:end;gap:2px;text-align:right}
.election-office strong{color:var(--ink);font-size:.96rem}
.election-office span,.election-office small{font-size:.73rem;color:var(--muted)}
.election-office a{font-size:.8rem;font-weight:650;color:var(--green)}
.election-entry-summary{font-size:.82rem;color:var(--muted);line-height:1.65;margin:12px 0 3px}
.province-link{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green);text-decoration:none}
.province-link span:first-child{display:grid;gap:4px}
.province-link small{color:var(--muted)}
@media(max-width:760px){.election-entry-head h3{font-size:1.2rem}.election-office>div{display:grid;gap:2px}.election-office{align-items:start}}
@media(max-width:540px){.home-feed article{grid-template-columns:1fr;gap:2px}.home-feed article div>a{margin-left:6px}.contest-card{padding:14px}}

/* Council reading: chronological steps first, source detail on demand. */
.council-timeline { list-style: none; padding: 0; margin: 2rem 0; max-width: 980px; }
.council-timeline > li { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line, #dde4e1); }
.council-timeline > li.council-timeline-empty { display: block; }
.council-timeline time { font-variant-numeric: tabular-nums; font-weight: 600; }
.timeline-steps { display: flex; flex-direction: column; gap: .5rem; }
.timeline-steps a { padding: .35rem 0; line-height: 1.6; }
.council-meeting { border-top: 1px solid #dce4e1; padding: 1rem 0; }
.council-meeting > summary, .motion-original > summary { cursor: pointer; padding: .6rem 0; font-weight: 600; }
.council-motion { max-width: 980px; overflow-wrap: anywhere; }
.council-motion blockquote, .pdf-quote { white-space: pre-wrap; font-size: 1rem; line-height: 1.7; }
.council-caveat, .relation-note { padding: .65rem .9rem; border-left: 3px solid #c9a46a; background: #f8f6f0; }
.vote-line { line-height: 1.9; }
.subject-return { margin: 1.5rem 0 0; }
.pdf-excerpt { margin: 1.5rem 0; max-width: 980px; }
.pdf-excerpt img { display: block; width: 100%; height: auto; border: 1px solid #dce4e1; }
.pdf-excerpt figcaption { color: #65746f; font-size: .85rem; margin-top: .6rem; }
.council-person-records { margin-top: 1.5rem; }
@media (max-width: 600px) { .council-timeline > li { grid-template-columns: 1fr; gap: .35rem; } }

.subject-context{max-width:850px;margin:24px 0 48px}.subject-context>section{padding:20px 0;border-bottom:1px solid var(--line,#e2e8e3)}.subject-context h2{font-size:1.16rem;margin:0 0 10px}.subject-context p{line-height:1.8;margin:0 0 12px}.context-sources{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:.8rem}.context-sources a{padding:5px 0;overflow-wrap:anywhere}.context-source-group{max-width:100%}.context-source-group summary{cursor:pointer;color:var(--ink,#24332f);overflow-wrap:anywhere;padding:5px 0}.context-source-group>div{display:flex;flex-direction:column;align-items:flex-start;margin:3px 0 8px 18px}.context-source-group>div a{max-width:100%}
.subject-categories{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}.subject-categories a,.subject-category-labels a,.subject-category-labels span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line,#e2e8e3);border-radius:999px;padding:5px 11px;color:var(--ink,#24332f);font-size:.85rem;text-decoration:none}.subject-categories a[aria-current="page"]{background:#e7f2ee;border-color:#8db7a8}.subject-categories a span{color:var(--muted,#65736e)}.subject-category-labels{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.subject-category-labels span{color:var(--muted,#65736e)}
.subject-category-labels .category-source{border:0;padding-left:0;color:var(--muted,#65736e)}
.subject-category-pair{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}

.reader-return{font-size:13px;margin:0 0 18px;color:var(--green)}
.school-area-nav{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px;margin:12px 0 18px;font-size:12px;line-height:1.5;color:var(--muted)}
.school-area-nav a{padding:6px 9px;border:1px solid var(--line);border-radius:5px;color:var(--green)}
.school-area-nav a[aria-current]{background:#e5eee8;font-weight:650}
.school-role-guide{margin:0 0 16px;font-size:13px;line-height:1.7;color:var(--muted)}
.school-role-guide summary{cursor:pointer;color:var(--green)}
.school-role-guide p{max-width:68ch;margin:8px 0}

.council-search{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:20px 0}.council-search label{display:grid;gap:6px}.council-search input,.council-search button{padding:10px;border:1px solid #ccd1db;border-radius:6px;background:white;color:inherit;max-width:100%}.council-search button{cursor:pointer}

/* Saved reading and support remain separate in the personal area. */
.personal-navigation { display: flex; gap: 8px; margin-bottom: 24px; }
.personal-navigation a { padding: 10px 18px; min-height: 44px; border: 1px solid #dce5dc; border-radius: 8px; color: var(--green); }
.personal-navigation a[aria-current="page"] { background: var(--green); color: #fff; font-weight: 650; }
.lifecycle-filters{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:20px 0;padding:16px;background:#f1f5f3;border-radius:8px}.lifecycle-filters label{display:grid;gap:6px;flex:1;min-width:150px;font-size:14px}.lifecycle-filters select{width:100%;min-height:44px;padding:8px;border:1px solid #c7d2ce;border-radius:4px;background:white;font:inherit}.lifecycle-filters button{min-height:44px}
