/* Final cross-page quality control.
   This last-loaded layer fixes content containment and aligns the remaining
   responsive details without changing calculations or reader content. */

:where(
    body[data-page="explorer"],
    body[data-page="house"],
    body.paper-reader,
    body[data-page="methodology"],
    body[data-page="state-lab"]
  ) {
  overflow-x: clip;
}

:where(
    body[data-page="explorer"],
    body[data-page="house"],
    body.paper-reader,
    body[data-page="methodology"],
    body[data-page="state-lab"]
  )
  :is(h1, h2, h3, h4, p, a, button, label, output, dt, dd, figcaption) {
  min-width: 0;
}

/* Model: preserve the horizontal weight control and make dense results legible. */

body[data-page="explorer"] .floating-weight-control {
  display: none !important;
}

body[data-page="explorer"]
  :is(
    .workspace-identity h2,
    .workspace-summary,
    .workspace-summary strong,
    .guided-entry-heading,
    .guided-allocation-card,
    .diagnostic-card-heading > span,
    .diagnostic-card-value,
    .paper-figure-heading h3,
    .figure-copy h3
  ) {
  overflow-wrap: anywhere;
}

body[data-page="explorer"] .diagnostic-card-heading > span {
  font-size: 0.68rem;
  line-height: 1.22;
}

body[data-page="explorer"] .diagnostic-card-heading small {
  font-size: 0.68rem;
  line-height: 1.3;
}

body[data-page="explorer"] .diagnostic-card-value {
  font-size: 0.92rem;
}

body[data-page="explorer"] .diagnostic-card-action {
  font-size: 0.68rem;
  line-height: 1.3;
}

body[data-page="explorer"] #guidedCompare .guided-allocation-card small,
body[data-page="explorer"] .weight-switch-tools small {
  font-size: 0.68rem;
  line-height: 1.35;
}

body[data-page="explorer"] .headline-metric-grid {
  grid-auto-rows: minmax(92px, auto);
}

body[data-page="explorer"] .headline-metric-grid > .diagnostic-card,
body[data-page="explorer"] #guidedCompare .guided-allocation-card {
  min-height: 92px;
}

body[data-page="explorer"]
  .headline-metric-grid
  > .diagnostic-card.metric-reference:not([data-map-target]) {
  cursor: default;
}

body[data-page="explorer"]
  .headline-metric-grid
  > .diagnostic-card.metric-reference:not([data-map-target]):hover {
  border-color: var(--editorial-line-strong);
  background: #faf4e8;
  box-shadow: 2px 3px 0 rgba(23, 35, 31, 0.04);
  transform: none;
}

body[data-page="explorer"] :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--workspace-focus, #18514c);
  outline-offset: 3px;
}

@media (min-width: 701px) {
  body[data-page="explorer"] .app-shell {
    padding-right: 0 !important;
  }
}

@media (max-width: 720px) {
  body[data-page="explorer"] :is(.primary-nav a, .weight-switch-focus, .figure-return) {
    min-height: 44px;
  }

  body[data-page="explorer"] .figure-return {
    display: inline-flex;
    align-items: center;
  }

  body[data-page="explorer"] :is(
      .diagnostic-card-heading small,
      .diagnostic-card-action,
      #guidedCompare .guided-allocation-card small,
      .weight-switch-tools small
    ) {
    font-size: 0.72rem;
  }

  body[data-page="explorer"] .headline-metric-grid > .diagnostic-card,
  body[data-page="explorer"] #guidedCompare .guided-allocation-card {
    min-height: 96px;
  }
}

@media (max-width: 430px) {
  body[data-page="explorer"] .headline-metric-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body[data-page="explorer"] .headline-metric-grid > .diagnostic-card {
    min-height: 92px;
  }
}

/* Paper: display equations reflow inside their cards instead of becoming
   miniature side-scrolling viewports. */

body.paper-reader .paper-article {
  overflow: visible;
}

body.paper-reader .paper-reader-shell {
  min-width: 0;
  overflow-x: visible;
}

body.paper-reader
  :is(
    .paper-section,
    .paper-section-heading,
    .paper-section-heading > div,
    .paper-result,
    .result-formula,
    .paper-equation,
    .paper-equation-stack,
    .linear-specification,
    .weight-translation,
    .measure-definition,
    .target-lab,
    .target-lab-formula,
    .paper-interactive-figure,
    .empirical-figure-reader
  ) {
  min-width: 0;
  max-width: 100%;
}

body.paper-reader .paper-equation-stack-compact {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.paper-reader
  :is(
    .paper-equation,
    .linear-specification,
    .result-formula,
    .weight-translation,
    .target-lab-formula,
    .paper-result,
    .paper-profile-formula,
    .measure-definition
  )
  .katex-display {
  width: 100%;
  max-width: 100%;
  overflow: visible !important;
  padding: 2px 0;
}

body.paper-reader
  :is(
    .paper-equation,
    .linear-specification,
    .result-formula,
    .weight-translation,
    .target-lab-formula,
    .paper-profile-formula,
    .measure-definition
  )
  .katex-display
  > .katex {
  min-width: 0;
  max-width: 100%;
}

body.paper-reader .paper-profile-formula {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

body.paper-reader
  :is(.paper-interactive-figure, .empirical-figure-reader, .target-lab)
  > header
  > :first-child,
body.paper-reader .paper-pdf-figure-link > :first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.paper-reader .notes-drawer {
  height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
}

body.paper-reader[data-paper-theme="night"] {
  --paper-red: var(--reading-red-active);
  --paper-blue: var(--reading-blue-active);
}

@media (max-width: 930px) {
  body.paper-reader .paper-section-heading {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  body.paper-reader .paper-section-heading > a {
    grid-column: 2;
    justify-self: start;
    white-space: normal;
  }
}

@media (max-width: 820px) {
  body.paper-reader .paper-site-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 720px) {
  body.paper-reader
    :is(.paper-interactive-figure, .empirical-figure-reader, .target-lab)
    > header {
    align-items: flex-start;
    flex-direction: column;
  }

  body.paper-reader .paper-section-heading h2 {
    overflow-wrap: anywhere;
  }

  body.paper-reader
    .paper-section
    :is(p, li, dd)
    .katex:not(.katex-display > .katex) {
    display: inline-block;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    vertical-align: -0.24em;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
}

@media (max-width: 560px) {
  body.paper-reader :is(.paper-equation, .paper-result, .linear-specification, .weight-translation) {
    padding-right: 14px;
    padding-left: 14px;
  }

  body.paper-reader
    :is(.paper-equation, .linear-specification, .result-formula, .weight-translation, .target-lab-formula)
    .katex-display {
    font-size: 0.9em;
  }

  body.paper-reader .paper-result .result-formula .katex-display {
    font-size: 0.86em;
  }

  body.paper-reader .paper-result .result-formula {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  body.paper-reader .paper-profile-formula .katex-display {
    font-size: 0.88em;
  }
}

/* Methods: give explanatory notes and equations a real reading measure. */

body[data-page="methodology"] .metric-method-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body[data-page="methodology"] .method-copy-grid {
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, 0.88fr);
  gap: 28px;
}

body[data-page="methodology"] #robustness {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

body[data-page="methodology"] #robustness > * {
  width: 100%;
  grid-column: 1 / -1;
}

body[data-page="methodology"]
  :is(
    .method-section,
    .method-copy,
    .section-lede,
    .method-formula,
    .metric-method,
    .specification-pair article,
    .method-note,
    .custom-math-note,
    .definition-list dd
  ) {
  min-width: 0;
  max-width: 100%;
}

body[data-page="methodology"]
  :is(.method-formula, .metric-method)
  .katex-display {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  padding-bottom: 0;
}

body[data-page="methodology"]
  :is(.method-formula, .metric-method)
  .katex-display
  > .katex {
  min-width: 0;
  max-width: 100%;
}

body[data-page="methodology"]
  :is(.method-copy p, .section-lede, .metric-method p, .method-note p, .custom-math-note p, .definition-list dd) {
  overflow-wrap: anywhere;
}

@media (max-width: 820px) {
  body[data-page="methodology"] .method-copy-grid,
  body[data-page="methodology"] .specification-pair,
  body[data-page="methodology"] .metric-method-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  body[data-page="methodology"]
    :is(.method-copy p, .section-lede, .metric-method p, .method-note p, .custom-math-note p, .definition-list dd)
    [data-math-rendered="true"] {
    display: inline-block;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    vertical-align: -0.24em;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
}

@media (max-width: 640px) {
  body[data-page="methodology"] .metric-method-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-page="methodology"] .metric-method.wide {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  body[data-page="methodology"] :is(.method-formula, .metric-method) {
    padding-right: 11px;
    padding-left: 11px;
  }

  body[data-page="methodology"] :is(.method-formula, .metric-method) .katex-display > .katex {
    font-size: 0.84em;
  }
}

/* State Lab: bring the custom-profile workflow into the shared editorial system. */

body[data-page="state-lab"] {
  --state-canvas: #f3f2ec;
  --state-paper: #fffefa;
  --state-paper-warm: #f8f4ea;
  --state-ink: #17231f;
  --state-muted: #68716c;
  --state-line: #d7d4ca;
  --state-line-strong: #aebbb4;
  --state-gold: #d69b05;
  --state-gold-soft: #fbf1d5;
  --state-blue: #3474bc;
  --state-red: #c44747;
  --font-display: Baskerville, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --font-sans: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
  color: var(--state-ink);
  background: var(--state-canvas);
  font-family: var(--font-sans);
}

body[data-page="state-lab"] .state-lab-main {
  width: min(1480px, calc(100% - 36px));
  padding-right: 0 !important;
}

body[data-page="state-lab"] .lab-page-intro {
  grid-template-columns: minmax(0, 1fr);
  padding: 32px 4px 30px;
}

body[data-page="state-lab"] .lab-page-intro > div {
  max-width: 860px;
}

body[data-page="state-lab"] .lab-page-intro h1 {
  color: var(--state-ink);
  font-family: var(--font-display);
  font-size: clamp(2.55rem, 5vw, 4.4rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

body[data-page="state-lab"] .lab-page-intro p {
  max-width: 760px;
  color: var(--state-muted);
  font-size: 0.94rem;
  line-height: 1.65;
}

body[data-page="state-lab"] :is(.state-builder-surface, .state-results) {
  overflow: clip;
  border: 1px solid var(--state-line-strong);
  border-radius: 17px 12px 18px 13px;
  background: var(--state-paper);
  box-shadow: 4px 5px 0 rgba(214, 155, 5, 0.08), 0 18px 44px rgba(23, 35, 31, 0.07);
}

body[data-page="state-lab"] .state-builder-surface {
  border-top: 4px solid var(--state-gold);
}

body[data-page="state-lab"] .state-results {
  border-top: 4px solid var(--state-ink);
}

body[data-page="state-lab"]
  :is(.state-surface-heading, .state-results-heading, .state-builder-controls, .state-model-controls) {
  border-color: var(--state-line);
  background: var(--state-paper-warm);
}

body[data-page="state-lab"]
  :is(.state-surface-heading h2, .state-results-heading h2, .state-map-surface h3, .state-diagnostics h3, .state-delegation-comparison h3) {
  color: var(--state-ink);
  font-family: var(--font-display);
  font-weight: 620;
  letter-spacing: -0.02em;
}

body[data-page="state-lab"] .state-surface-heading h2,
body[data-page="state-lab"] .state-results-heading h2 {
  font-size: 1.55rem;
}

body[data-page="state-lab"] .eyebrow,
body[data-page="state-lab"]
  :is(.state-builder-controls label > span, .state-model-controls label > span, .state-weight-control label) {
  color: #6f5630;
  font-family: var(--font-sans);
  letter-spacing: 0.075em;
}

body[data-page="state-lab"]
  :is(input[type="text"], input[type="number"], select, .button-primary, .button-secondary, .custom-file-action) {
  border-color: var(--state-line-strong);
  border-radius: 8px 6px 9px 7px;
  font-family: var(--font-sans);
}

body[data-page="state-lab"]
  :is(input[type="text"], input[type="number"], select) {
  color: var(--state-ink);
  background: var(--state-paper);
}

body[data-page="state-lab"] .button-primary {
  border-color: var(--state-ink);
  color: var(--state-paper);
  background: var(--state-ink);
  box-shadow: 0 4px 0 var(--state-gold);
}

body[data-page="state-lab"] .button-secondary,
body[data-page="state-lab"] .custom-file-action {
  color: var(--state-ink);
  background: var(--state-paper);
}

body[data-page="state-lab"]
  :is(.button-primary, .button-secondary, .custom-file-action):hover {
  border-color: var(--state-gold);
}

body[data-page="state-lab"] .state-private-badge,
body[data-page="state-lab"] .state-seat-badge,
body[data-page="state-lab"] .state-input-hint {
  border-color: var(--state-line);
  border-radius: 8px 6px 9px 7px;
  color: var(--state-ink);
  background: var(--state-gold-soft);
}

body[data-page="state-lab"] :is(.state-district-column, .state-live-map) {
  background: var(--state-paper);
}

body[data-page="state-lab"]
  :is(.state-import-details, .state-builder-footer, .state-spec-details, .state-lab-formula) {
  border-color: var(--state-line);
  background: var(--state-paper-warm);
}

body[data-page="state-lab"] .state-map-legend,
body[data-page="state-lab"] .state-floating-weight-control,
body[data-page="state-lab"] .state-spec-details,
body[data-page="state-lab"] .state-objective-reading {
  display: none !important;
}

body[data-page="state-lab"] .state-map-heading-actions {
  justify-items: end;
}

body[data-page="state-lab"] .state-weight-control .range-scale > span:first-child {
  color: var(--state-red);
  font-weight: 800;
}

body[data-page="state-lab"] .state-weight-control .range-scale > span:last-child {
  color: var(--state-blue);
  font-weight: 800;
}

body[data-page="state-lab"] .state-weight-control output {
  color: var(--state-ink);
}

body[data-page="state-lab"] .state-weight-response {
  border-left-color: var(--state-gold);
  background: var(--state-gold-soft);
}

body[data-page="state-lab"] .state-weight-response p,
body[data-page="state-lab"] .state-weight-response small {
  font-size: 0.7rem;
  line-height: 1.5;
}

body[data-page="state-lab"]
  :is(
    .state-results-heading > div,
    .state-results-heading h2,
    #stateLabResultName,
    .state-spec-reading,
    .state-spec-reading p,
    .state-import-bar .custom-import-status,
    .state-builder-footer p,
    .state-map-reading,
    .state-diagnostic-grid dt,
    .state-diagnostic-grid dd
  ) {
  min-width: 0;
  overflow-wrap: anywhere;
}

body[data-page="state-lab"] .state-primary-metrics > div,
body[data-page="state-lab"] .state-diagnostic-grid > div {
  border-color: var(--state-line);
  background: var(--state-paper-warm);
}

body[data-page="state-lab"] .state-primary-metrics dd,
body[data-page="state-lab"] .state-diagnostic-grid dd {
  color: var(--state-ink);
  font-family: var(--font-sans);
}

body[data-page="state-lab"] .state-diagnostics > header a {
  color: #7f5b15;
  text-underline-offset: 3px;
}

body[data-page="state-lab"] .site-footer {
  border-top: 4px solid var(--state-gold);
  color: #c9cfcc;
  background: #101816;
}

body[data-page="state-lab"] .site-footer strong {
  color: var(--state-paper);
  font-family: var(--font-display);
}

body[data-page="state-lab"] .site-footer p {
  color: #c9cfcc;
}

@media (max-width: 820px) {
  body[data-page="state-lab"] .state-lab-main {
    width: min(100% - 24px, 1480px);
  }
}

@media (max-width: 620px) {
  body[data-page="state-lab"] .lab-page-intro {
    padding-top: 28px;
  }

  body[data-page="state-lab"] .lab-page-intro h1 {
    font-size: clamp(2.25rem, 11vw, 3.15rem);
  }

  body[data-page="state-lab"] .state-map-heading-actions {
    justify-items: start;
  }

  body[data-page="state-lab"] .state-primary-metrics,
  body[data-page="state-lab"] .state-diagnostic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 360px) {
  body[data-page="state-lab"] .state-primary-metrics,
  body[data-page="state-lab"] .state-diagnostic-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media print {
  :where(
      body[data-page="explorer"],
      body[data-page="house"],
      body.paper-reader,
      body[data-page="methodology"],
      body[data-page="state-lab"]
    ) {
    overflow: visible;
  }

  body.paper-reader .paper-article {
    overflow: visible;
  }
}
