/* Shared presentation layer for every analysis page.
   The docket-specific styles remain responsible for charts and data semantics;
   this file provides the common public-records reading-room system. */

:root {
  --navy-950: #122b26;
  --navy-900: #17352f;
  --navy-800: #24453e;
  --navy-700: #365850;
  --navy-600: #506c65;
  --navy-500: #697a74;
  --navy-400: #83908b;
  --navy-200: #cfc7b8;
  --navy-100: #e6dfd2;
  --gold: #a4493d;
  --gold-soft: #ba6659;
  --gold-bg: #ead8cd;
  --paper: #f3efe5;
  --paper-2: #e9e2d5;
  --cream: #fbf8f0;
  --white: #fffdf8;
  --ink: #17211f;
  --ink-2: #33423e;
  --ink-3: #5c6964;
  --ink-4: #74807b;
  --rule: #cec5b5;
  --rule-soft: #e3dccf;
  --panel: #fbf8f0;
  --muted: #5c6964;
  --soft: #74807b;
  --line: #cec5b5;
  --line2: #e3dccf;
  --line-strong: #938978;
  --accent: #a4493d;
  --accent-soft: rgba(164,73,61,.11);
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --label: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;
  --shadow-1: none;
  --shadow-2: none;
  --shadow-3: 0 24px 60px rgba(23,33,31,.18);
}

html { scroll-behavior: smooth; }
html, body {
  background:
    linear-gradient(90deg, rgba(23,33,31,.015) 1px, transparent 1px) 0 0 / 24px 24px,
    var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 18px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection { background: #d8c5a2; color: var(--ink); }
button, input, select, textarea { font-family: var(--sans); }
button, [role="button"] { border-radius: 0 !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid #b67b2b !important;
  outline-offset: 3px;
}

/* Collection masthead */
.analysis-skip {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100;
  padding: .55rem .8rem;
  color: white;
  background: var(--accent);
  font-family: var(--sans);
  font-size: .76rem;
  transform: translateY(-160%);
}
.analysis-skip:focus { transform: translateY(0); }

.analysis-masthead {
  position: sticky;
  top: 0;
  z-index: 48;
  color: var(--cream);
  background: rgba(23,53,47,.97);
  border-bottom: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
}
.analysis-masthead__inner {
  width: min(1280px, calc(100% - 48px));
  min-height: 66px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 2rem;
  align-items: center;
}
.analysis-masthead__brand {
  color: inherit;
  font-family: var(--serif);
  font-size: 1.18rem;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1;
  text-decoration: none;
}
.analysis-masthead__brand span {
  display: block;
  margin-bottom: .18rem;
  color: #d8cdbb;
  font-family: var(--mono);
  font-size: .55rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.analysis-masthead__edition {
  justify-self: center;
  color: #d8cdbb;
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.analysis-masthead__actions { display: flex; align-items: center; gap: .75rem; }
.analysis-masthead__actions a,
.analysis-masthead__actions button {
  padding: .48rem .72rem;
  color: var(--cream);
  background: transparent;
  border: 1px solid rgba(255,255,255,.35);
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}
.analysis-masthead__actions a:hover,
.analysis-masthead__actions button:hover { color: var(--navy-950); background: #e2be7d; border-color: #e2be7d; }

/* Shared cover construction */
.container { max-width: 1180px; padding-inline: 2rem; }
.cover:not(.cover__inner) {
  position: relative;
  overflow: hidden;
  padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(4rem, 7vw, 6rem);
  color: var(--ink);
  background: rgba(243,239,229,.94);
  border-top: 5px solid var(--accent);
  border-bottom: 1px solid var(--line-strong);
}
.cover:not(.cover__inner)::after {
  content: 'PUBLIC RECORD';
  position: absolute;
  top: 2.2rem;
  right: max(2rem, calc((100vw - 1180px) / 2));
  color: rgba(23,33,31,.08);
  font-family: var(--mono);
  font-size: clamp(2.2rem, 6vw, 5rem);
  font-weight: 600;
  letter-spacing: .05em;
  pointer-events: none;
}
.cover .container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(250px, .5fr);
  column-gap: clamp(3rem, 7vw, 7rem);
  align-items: start;
}
.cover-eyebrow { grid-column: 1 / -1; margin: 0 0 1.3rem; color: var(--accent); font-family: var(--mono); font-size: .65rem; letter-spacing: .13em; }
.cover-eyebrow::before { width: 42px; background: var(--accent); }
.cover-title {
  grid-column: 1;
  margin: 0;
  max-width: 16ch;
  font-size: clamp(3.6rem, 7.5vw, 7.1rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .86;
}
.cover-title em { color: var(--accent); font-weight: 400; }
.cover-sub {
  grid-column: 1;
  max-width: 52ch;
  margin: 1.7rem 0 0;
  color: var(--ink-2);
  font-size: clamp(1.1rem, 1.7vw, 1.3rem);
  font-style: normal;
  line-height: 1.46;
}
.cover-meta {
  grid-column: 2;
  grid-row: 2 / span 4;
  align-self: stretch;
  display: block;
  margin: 0;
  padding: .75rem 0 0 1.7rem;
  border-top: 5px solid var(--navy-900);
  border-left: 1px solid var(--line-strong);
}
.cover-meta-item { padding: .85rem 0; color: var(--muted); border-top: 1px solid var(--rule); font-family: var(--sans); font-size: .72rem; letter-spacing: 0; }
.cover-meta-item:first-child { border-top: 0; }
.cover-meta-item strong { display: inline-block; min-width: 4.4rem; margin: 0 .45rem 0 0; color: var(--ink); font-family: var(--mono); font-size: 1.1rem; font-weight: 500; }
.draft-badge { border-radius: 0; color: var(--accent); border-color: currentColor; font-family: var(--mono); }
.statbar { grid-column: 1; margin: 2rem 0 0; }
.statbar-title { font-family: var(--mono); font-size: .64rem; letter-spacing: .12em; }
.statbar-track { height: 30px; border: 1px solid var(--ink); border-radius: 0; box-shadow: none; }
.statbar-legend { gap: .6rem 1.25rem; font-family: var(--sans); font-size: .74rem; }
.legend-swatch, .position-legend-swatch { border-radius: 0; }
.qc-source-links { grid-column: 1; margin-top: 1.7rem; }
.qc-source-links a { color: var(--ink); border-bottom: 1px solid var(--line-strong); font-family: var(--sans); font-size: .72rem; text-decoration: none; }
.qc-source-links a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* Editorial section rhythm */
section { padding: clamp(4rem, 7vw, 6.5rem) 0; border-top: 1px solid var(--rule); }
.section-eyebrow, .section__label, .q__kicker {
  color: var(--accent);
  font-family: var(--mono);
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.section-eyebrow { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.section-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--accent); }
.section-h {
  max-width: 23ch;
  margin-bottom: 1.4rem;
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .98;
}
.section-lede { max-width: 72ch; color: var(--ink-2); font-size: 1.04rem; line-height: 1.56; }
.exec { max-width: 76ch; }
.exec p { color: var(--ink-2); font-size: 1.06rem; }
.exec p:first-child { color: var(--ink); font-size: 1.3rem; line-height: 1.48; }

/* Flat, evidence-first surfaces */
:is(.method-card, .theme-card, .panel, .stat, .gcard, .other-card, .la-card,
  .qc-primer-item, .qc-readout, .qc-download-card, .qc-amendment-card,
  .position-legend, .letter-filters, .letter-table, .breakdown, .chat-panel,
  .qc-matrix-wrap, .qc-provenance-summary, .method-limits) {
  border-radius: 0 !important;
  box-shadow: none !important;
}
:is(.method-card, .theme-card, .panel, .stat, .gcard, .other-card,
  .qc-primer-item, .qc-readout, .qc-download-card, .qc-amendment-card) {
  background: rgba(251,248,240,.78);
  border-color: var(--rule-dark) !important;
}
:is(.theme-card, .qc-primer-item, .qc-download-card, .qc-amendment-card, .gcard):hover {
  transform: none !important;
  border-color: var(--accent) !important;
}
.methodology, .qc-primer, .qc-downloads, .qc-matrix-section { background: rgba(233,226,213,.62); }
.method-grid, .themes-grid, .qc-primer-grid, .qc-readout-grid, .qc-download-grid, .qc-amendment-grid, .other-grid, .la-grid { gap: 1px; background: var(--rule-dark); border: 1px solid var(--rule-dark); }
.method-grid > *, .themes-grid > *, .qc-primer-grid > *, .qc-readout-grid > *, .qc-download-grid > *, .qc-amendment-grid > *, .other-grid > *, .la-grid > * { margin: 0; border: 0 !important; }
.method-limits { border-left: 4px solid var(--accent) !important; }
.theme-card-bar, .breakdown-bar, .qc-stack { border-radius: 0; }
.position-legend { padding: .65rem 0; background: transparent; border-width: 1px 0; }
.pos-pill, .letter-tier, .theme-tag, .group-pill, .template-badge, .qc-source-pill { border-radius: 0 !important; font-family: var(--mono); letter-spacing: .035em; }

/* Tables, filters, and matrices */
.letter-filters { background: transparent; border-width: 1px 0; }
.filter-btn, .filter__chip, .topbar__cta, .appendix-search, .search-input {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.filter-btn, .filter__chip { background: transparent; border-color: var(--line-strong); font-family: var(--sans); }
.filter-btn.active, .filter__chip.is-active { color: var(--cream); background: var(--navy-900); border-color: var(--navy-900); }
.letter-table { overflow: hidden; border: 1px solid var(--line-strong); }
.letter-row, .qc-letter-row { border-bottom-color: var(--rule); }
.letter-row:hover, .qc-letter-row:hover { background: #fffaf0; box-shadow: inset 4px 0 var(--accent); }
.letter-ref, .ref, .qc-amendment-number, .qc-primer-number, .q__num { color: var(--accent); font-family: var(--mono); }
.letter-name, .qc-name-button { font-family: var(--sans); font-weight: 600; }
.letter-summary { color: var(--ink-3); line-height: 1.42; }
.qc-matrix-wrap { border: 1px solid var(--line-strong); }
.qc-matrix thead th { color: var(--cream); background: var(--navy-900); }
.qc-matrix th, .qc-matrix td { border-color: var(--rule); }

/* Corpus chat is treated as a distinct research instrument. */
.chat-shell { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.chat-panel {
  max-width: 88ch;
  padding: 1rem 1.2rem .8rem;
  border-top: 3px solid var(--accent);
}
.chat-log {
  max-height: min(440px, 55vh);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  padding: .2rem .1rem;
}
.chat-starters { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; padding: .4rem 0; }
.chat-starters-label { width: 100%; margin-bottom: .2rem; color: var(--ink-3); font-family: var(--sans); font-size: .82rem; }
.chat-chip {
  padding: .35rem .8rem;
  color: var(--ink-2);
  background: var(--cream);
  border: 1px solid var(--rule);
  font-family: var(--sans);
  font-size: .85rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
}
.chat-chip:disabled { opacity: .6; cursor: wait; }
.chat-msg { max-width: 100%; font-size: .98rem; line-height: 1.55; }
.chat-msg-user {
  align-self: flex-end;
  max-width: 85%;
  padding: .45rem .8rem;
  border: 1px solid var(--line2);
  font-family: var(--sans);
  white-space: pre-wrap;
}
.chat-msg-model { font-family: var(--serif); }
.chat-msg-model p { margin: 0 0 .6rem; }
.chat-msg-model p:last-child { margin-bottom: 0; }
.chat-msg-model ul { margin: 0 0 .6rem; padding-left: 1.2rem; }
.chat-msg-model li { margin-bottom: .25rem; }
.chat-cite {
  margin: 0 .08rem;
  padding: .05rem .4rem;
  border: 1px solid var(--gold-bg);
  font-family: var(--mono);
  font-size: .78em;
  font-weight: 600;
  line-height: inherit;
  vertical-align: 1px;
  cursor: pointer;
}
.chat-cite:hover { border-color: var(--accent); }
.chat-cite-demo { display: inline-block; cursor: default; }
.chat-typing { display: inline-flex; gap: 4px; padding: .3rem 0; }
.chat-typing > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink-4);
  animation: chat-pulse 1.2s infinite ease-in-out;
}
.chat-typing > span:nth-child(2) { animation-delay: .15s; }
.chat-typing > span:nth-child(3) { animation-delay: .3s; }
@keyframes chat-pulse {
  0%, 60%, 100% { opacity: .25; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-2px); }
}
.chat-error {
  margin-top: .6rem;
  padding: .4rem .7rem;
  color: #8f2437;
  background: #f4dde2;
  font-family: var(--sans);
  font-size: .85rem;
}
.chat-input-row { display: flex; gap: .5rem; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--rule-soft); }
.chat-input-row input {
  flex: 1;
  min-width: 0;
  padding: .5rem .8rem;
  border: 1px solid var(--rule);
  font-family: var(--sans);
  font-size: .95rem;
}
.chat-input-row button {
  padding: .5rem 1.1rem;
  border: 1px solid var(--navy-900);
  font-family: var(--sans);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
}
.chat-input-row button:disabled { opacity: .45; cursor: default; }
.chat-disclosure {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .55rem;
  font-family: var(--sans);
  font-size: .74rem;
}
.chat-reset {
  flex: none;
  padding: 0;
  color: var(--accent);
  background: none;
  border: 0;
  font-family: var(--sans);
  font-size: .74rem;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.chat-section { color: var(--cream); background: var(--navy-950); border-top-color: #0a1c18; }
.chat-section .section-eyebrow { color: #e2be7d; }
.chat-section .section-eyebrow::before { background: #e2be7d; }
.chat-section .section-h { color: var(--cream); }
.chat-section .section-lede { color: #d8cdbb; }
.chat-panel { color: var(--ink); background: var(--cream); border: 1px solid #0a1c18; }
.chat-log { background: transparent; }
.chat-chip { border-radius: 0; color: var(--navy-900); background: transparent; border-color: var(--line-strong); }
.chat-chip:hover { color: var(--cream); background: var(--navy-900); border-color: var(--navy-900); }
.chat-msg-user { color: #fff; background: var(--accent); border-radius: 0; }
.chat-msg-model { color: var(--ink); background: transparent; }
.chat-cite { border-radius: 0; color: var(--navy-900); background: #e7decb; }
.chat-input-row input { border-radius: 0; background: #fffdf8; }
.chat-input-row button { border-radius: 0; color: var(--cream); background: var(--navy-900); border-color: var(--navy-900); }
.chat-disclosure { color: var(--muted); border-top-color: var(--rule); }

/* Drawers read like source folders rather than app modals. */
.drawer-overlay, .drawer-backdrop { background: rgba(11,26,22,.72); backdrop-filter: blur(2px); }
.drawer {
  color: var(--ink);
  background: var(--cream);
  border-left: 5px solid var(--accent);
  border-radius: 0 !important;
  box-shadow: var(--shadow-3) !important;
}
.drawer-close, .drawer__close { border-radius: 0 !important; }
.drawer h2, .drawer__name { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; }
.drawer blockquote, .pullq { background: #eee5d7; border-left-color: var(--accent); }
.drawer-link, .drawer__link, .qc-proposal-citation { border-radius: 0 !important; }

/* Strategic-priorities page: preserve its richer navigation and question flow. */
.topbar { color: var(--cream); background: rgba(23,53,47,.97); border-bottom-color: rgba(255,255,255,.18); }
.topbar__inner { max-width: 1280px; min-height: 66px; padding: 9px 24px; }
.topbar__brand { color: var(--cream); text-decoration: none; }
.topbar__brand .b1 { color: #d8cdbb; font-family: var(--mono); }
.topbar__nav a { color: #d8cdbb; border-radius: 0; }
.topbar__nav a:hover, .topbar__nav a.is-active { color: #e2be7d; background: transparent; border-bottom-color: #e2be7d; }
.topbar__cta { color: var(--cream); border-color: rgba(255,255,255,.35); }
.topbar__cta:hover { color: var(--navy-950); background: #e2be7d; border-color: #e2be7d; }
.cover__grid { opacity: .55; background-image: linear-gradient(to right, rgba(23,33,31,.05) 1px, transparent 1px); background-size: calc(100% / 8) 100%; }
.cover__inner { width: min(1180px, calc(100% - 64px)); max-width: 1180px; margin-inline: auto; grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); }
.cover__eyebrow { color: var(--accent); font-family: var(--mono); font-size: .64rem; }
.cover h1 { max-width: 12ch; font-size: clamp(4.2rem, 8vw, 7.4rem); letter-spacing: -.055em; line-height: .84; }
.cover__sub { max-width: 47ch; color: var(--ink-2); font-style: normal; }
.cover__hero-stat { border-left-color: var(--line-strong); }
.cover__hero-num { color: var(--accent); font-family: var(--mono); font-size: clamp(7rem, 16vw, 13rem); }
.cover__hero-label { font-family: var(--mono); }
.section { padding: clamp(4rem, 7vw, 6.5rem) 2rem; }
.section__inner { max-width: 1180px; }
.section__title { max-width: 24ch; font-size: clamp(2.3rem, 4.5vw, 4rem); letter-spacing: -.045em; line-height: .98; }
.section--navy { color: var(--cream); background: var(--navy-950); }
.q { border-top-color: var(--rule-dark); }
.q__head { grid-template-columns: 84px minmax(0,1fr); }
.q__num { border-color: var(--accent); }
.q__title { font-weight: 500; letter-spacing: -.035em; }
.convergence { border-left-color: var(--accent); background: #eee5d7; }
.footer, footer { color: #d8cdbb; background: var(--navy-950); border-top: 1px solid rgba(255,255,255,.18); }
.footer__inner, footer .container { max-width: 1180px; }
.footer h4, footer p:first-child { color: var(--cream); }

/* Letter-detail route */
.letter-page { background: var(--paper); }
.letter-page__inner { max-width: 920px; }
.letter-page__header { border-top: 5px solid var(--accent); border-bottom-color: var(--line-strong); }
.letter-page__name { font-weight: 500; letter-spacing: -.045em; }
.letter-page__q { border-top-color: var(--line-strong); }

@media (max-width: 960px) {
  .analysis-masthead__inner { grid-template-columns: auto 1fr; }
  .analysis-masthead__edition { display: none; }
  .analysis-masthead__actions { justify-self: end; }
  .cover .container { grid-template-columns: 1fr; }
  .cover-title, .cover-sub, .statbar, .qc-source-links { grid-column: 1; }
  .cover-meta { grid-column: 1; grid-row: auto; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 2.5rem; padding: .6rem 0 0; border-left: 0; }
  .cover-meta-item { padding-right: 1rem; }
  .cover-meta-item:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--rule); }
  .cover__inner { grid-template-columns: 1fr; }
  .cover__hero-stat { padding: 2rem 0 0; border-top: 1px solid var(--line-strong); border-left: 0; }
  .cover__hero-num { font-size: 8rem; }
}

@media (max-width: 680px) {
  html, body { font-size: 17px; }
  .analysis-masthead__inner { width: calc(100% - 28px); min-height: 60px; gap: 1rem; }
  .analysis-masthead__actions a { display: none; }
  .analysis-masthead__actions button { padding: .4rem .55rem; }
  .container { padding-inline: 1rem; }
  .cover:not(.cover__inner) { padding: 2.7rem 0 2.4rem; }
  .cover:not(.cover__inner)::after { display: none; }
  .cover-title { font-size: clamp(2.8rem, 14vw, 4.2rem); }
  .cover-sub { margin-top: 1rem; font-size: 1.05rem; }
  .statbar { margin-top: 1.15rem; }
  .statbar-legend { gap: .35rem 1rem; font-size: .67rem; }
  .cover-meta { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 1.15rem; }
  .cover-meta-item { padding: .55rem .5rem .55rem 0; }
  .cover-meta-item:nth-child(even) { padding-left: .75rem; border-left: 1px solid var(--rule); }
  .cover-meta-item--mobile-optional { display: none; }
  .section-h { font-size: 2.35rem; }
  .method-grid, .themes-grid, .qc-primer-grid, .qc-readout-grid, .qc-download-grid, .qc-amendment-grid, .other-grid, .la-grid { grid-template-columns: 1fr !important; }
  .section { padding-inline: 1rem; }
  .cover__inner { width: calc(100% - 32px); }
  .cover h1 { margin-bottom: 1rem; font-size: clamp(2.8rem, 13vw, 4rem); }
  .cover__sub { margin-bottom: 1.3rem; font-size: 1.05rem; }
  .cover__meta { grid-template-columns: max-content minmax(0,1fr); gap: .25rem 1rem; margin: 0; }
  .cover__hero-stat { display: none; }
  .topbar__inner { padding-inline: 14px; }
  .topbar__cta { display: none; }
  .chat-shell { width: calc(100% - 32px); }
  .chat-panel { padding: .8rem .8rem .6rem; }
  .chat-msg-user { max-width: 95%; }
  .chat-input-row button { padding: .5rem .9rem; }
  .chat-disclosure { display: block; }
  .chat-reset { display: block; margin-top: .45rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .analysis-masthead, .topbar, .chat-section { display: none !important; }
  body { background: white; }
  .cover:not(.cover__inner) { padding: 2rem 0; }
  section, .section { break-inside: avoid; }
}
