/*
 * GG Reading Room — archival theme
 * Scope: public reading-room surfaces (part detail, collection hubs).
 * Brand: archival · authoritative · plain-spoken. Light default + dark toggle.
 * Display: Redaction (self-hosted). Body: Spectral (self-hosted). Numerals: ui-monospace.
 * Reader DOM contract (.ggrr-reader*) is owned by modules/ggrr-reader-pdf.js — class
 * names here MUST match what that module emits. Do not rename them.
 * Fonts are self-hosted (no third-party CDN) so reader IPs never leak.
 */


/* ---------- tokens ---------- */
.ggrr-rr {
  /* warm manila paper, tinted toward the brand hue (h~85/60) */
  --paper:        oklch(97% 0.008 85);
  --paper-raised: oklch(99% 0.004 85);
  --paper-sunk:   oklch(94% 0.010 85);
  --ink:          oklch(25% 0.02 60);
  --ink-soft:     oklch(43% 0.02 65);
  --ink-faint:    oklch(45% 0.015 70);
  --hairline:     oklch(25% 0.02 60 / 0.16);
  --hairline-strong: oklch(25% 0.02 60 / 0.32);
  --accent:       oklch(48% 0.13 25);   /* oxblood / file-stamp red, ~10% use */
  --accent-soft:  oklch(48% 0.13 25 / 0.12);
  --stage-mount:  oklch(92% 0.012 80);  /* lightbox table the scan sits on */
  --body-leading: 1.62;

  --font-display: "Redaction", "Spectral", Georgia, "Times New Roman", serif;
  --font-body:    "Spectral", Georgia, "Times New Roman", serif;
  --font-mono:    ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  --text-xs:   0.8125rem;
  --text-sm:   0.9375rem;
  --text-base: 1.0625rem;
  --text-lg:   clamp(1.2rem, 0.9rem + 1.1vw, 1.45rem);
  --text-xl:   clamp(1.6rem, 1.1rem + 2.2vw, 2.3rem);
  --text-display: clamp(2.1rem, 1.3rem + 3.6vw, 3.4rem);

  --space-3xs: 4px;  --space-2xs: 8px;  --space-xs: 12px; --space-sm: 16px;
  --space-md: 24px;  --space-lg: 32px;  --space-xl: 48px; --space-2xl: 64px;
  --space-3xl: 96px;

  --measure: 68ch;
  --shadow-page: 0 1px 2px oklch(25% 0.02 60 / 0.10), 0 8px 24px oklch(25% 0.02 60 / 0.10);
}

/* dark: warm charcoal, not blue-black. system pref unless user forced light. */
@media (prefers-color-scheme: dark) {
  .ggrr-rr:not([data-ggrr-theme="light"]) {
    --paper:        oklch(20% 0.01 70);
    --paper-raised: oklch(24% 0.012 70);
    --paper-sunk:   oklch(17% 0.01 70);
    --ink:          oklch(92% 0.01 85);
    --ink-soft:     oklch(76% 0.012 80);
    --ink-faint:    oklch(62% 0.012 75);
    --hairline:     oklch(92% 0.01 85 / 0.16);
    --hairline-strong: oklch(92% 0.01 85 / 0.30);
    --accent:       oklch(64% 0.14 28);
    --accent-soft:  oklch(64% 0.14 28 / 0.16);
    --stage-mount:  oklch(26% 0.012 70);
    --body-leading: 1.68;        /* light-on-dark reads lighter; add leading */
    --shadow-page:  0 1px 2px oklch(0% 0 0 / 0.4), 0 10px 30px oklch(0% 0 0 / 0.45);
  }
}
.ggrr-rr[data-ggrr-theme="dark"] {
  --paper:        oklch(20% 0.01 70);
  --paper-raised: oklch(24% 0.012 70);
  --paper-sunk:   oklch(17% 0.01 70);
  --ink:          oklch(92% 0.01 85);
  --ink-soft:     oklch(76% 0.012 80);
  --ink-faint:    oklch(62% 0.012 75);
  --hairline:     oklch(92% 0.01 85 / 0.16);
  --hairline-strong: oklch(92% 0.01 85 / 0.30);
  --accent:       oklch(64% 0.14 28);
  --accent-soft:  oklch(64% 0.14 28 / 0.16);
  --stage-mount:  oklch(26% 0.012 70);
  --body-leading: 1.68;
  --shadow-page:  0 1px 2px oklch(0% 0 0 / 0.4), 0 10px 30px oklch(0% 0 0 / 0.45);
}

/* ---------- shell ---------- */
.ggrr-rr {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--body-leading);
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
}
.ggrr-rr ::selection { background: var(--accent-soft); }
.ggrr-rr__shell {
  max-width: 1180px;
  margin-inline: auto;
  padding: var(--space-lg) var(--space-sm) var(--space-3xl);
}
.ggrr-rr a { color: var(--ink); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.ggrr-rr a:hover { text-decoration-color: var(--accent); }
.ggrr-rr :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

/* breadcrumb / topline */
.ggrr-rr__topline {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--space-md); flex-wrap: wrap;
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--hairline);
  margin-bottom: var(--space-lg);
}
.ggrr-rr__back {
  font-family: var(--font-mono); font-size: var(--text-sm);
  letter-spacing: 0.02em; text-decoration: none; color: var(--ink-soft);
}
.ggrr-rr__back:hover { color: var(--ink); }
.ggrr-document__breadcrumbs {
  font-family: var(--font-mono); font-size: var(--text-sm);
  color: var(--ink-soft); letter-spacing: 0.02em;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35em;
}
.ggrr-document__breadcrumbs a { color: var(--ink-soft); text-decoration: none; }
.ggrr-document__breadcrumbs a:hover { color: var(--ink); text-decoration: underline; }
.ggrr-document__breadcrumbs .sep { color: var(--hairline-strong); }
.ggrr-document__breadcrumbs [aria-current="page"] { color: var(--ink); }
.ggrr-rr__themetoggle {
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.04em; text-transform: uppercase;
  background: none; border: 1px solid var(--hairline-strong); color: var(--ink-soft);
  padding: 6px 12px; border-radius: 999px; cursor: pointer; min-height: 44px;
}
.ggrr-rr__themetoggle:hover { color: var(--ink); border-color: var(--ink-soft); }

/* eyebrow: the "file stamp" — collection name, oxblood tick */
.ggrr-rr__eyebrow {
  display: inline-flex; align-items: center; gap: var(--space-2xs);
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent);
  margin: 0 0 var(--space-sm);
}
.ggrr-rr__eyebrow::before {
  content: ""; inline-size: 22px; block-size: 2px; background: var(--accent);
}

/* ====================================================================
   PART DETAIL — reader is the centerpiece
   ==================================================================== */
.ggrr-doc__header { margin-bottom: var(--space-lg); }
.ggrr-doc__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--text-display); line-height: 1.04; letter-spacing: -0.01em;
  margin: 0; max-width: 22ch; color: var(--ink);
}
.ggrr-doc__released {
  font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ink-soft);
  margin: var(--space-sm) 0 0;
}
.ggrr-doc__lede {
  font-size: var(--text-lg); line-height: 1.5; color: var(--ink-soft);
  max-width: var(--measure); margin: var(--space-md) 0 0;
}

/* reader dominant, provenance rail secondary */
.ggrr-doc__body {
  display: grid; gap: var(--space-xl);
  grid-template-columns: minmax(0, 1fr) clamp(248px, 24%, 320px);
  align-items: start;
}
@media (max-width: 960px) {
  .ggrr-doc__body { grid-template-columns: 1fr; gap: var(--space-lg); }
  .ggrr-doc__rail { order: 2; }
}

.ggrr-doc__readerwrap { min-width: 0; }
.ggrr-doc__readerhead {
  display: flex; align-items: baseline; gap: var(--space-sm);
  margin-bottom: var(--space-sm);
}
.ggrr-doc__readerhead h2 {
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-faint); font-weight: 500; margin: 0;
}

/* provenance rail — trust by exposure, library catalog card theme */
.ggrr-doc__rail {
  position: relative;
  background: var(--paper-raised);
  border: 1px solid var(--hairline-strong);
  border-radius: 4px;
  padding: var(--space-sm);
  box-shadow: var(--shadow-page);
  overflow: hidden;
}
.ggrr-doc__rail::after {
  content: "DECLASSIFIED";
  position: absolute;
  top: 16px;
  right: -24px;
  font-family: var(--font-mono);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--accent);
  opacity: 0.12;
  border: 2px solid var(--accent);
  padding: 3px 18px;
  transform: rotate(-10deg);
  pointer-events: none;
  user-select: none;
}
.ggrr-doc__rail h2 {
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--accent); font-weight: 700;
  margin: 0 0 var(--space-sm); padding-bottom: var(--space-2xs);
  border-bottom: 1px solid var(--accent);
}
.ggrr-doc__dl { margin: 0; display: grid; gap: var(--space-sm); }
.ggrr-doc__dl > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: var(--space-sm);
  align-items: baseline;
}
.ggrr-doc__dl dt {
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--ink-soft);
}
.ggrr-doc__dl dd {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--ink);
  word-break: break-word;
}
.ggrr-doc__dl dd a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--hairline-strong); }
.ggrr-doc__dl dd a:hover { color: var(--accent); text-decoration-color: var(--accent); }
.ggrr-doc__hash {
  font-family: var(--font-mono); font-size: 0.76rem; line-height: 1.4;
  word-break: break-all; color: var(--ink-soft);
  background: var(--paper-sunk); padding: 4px 6px; border-radius: 3px;
  border: 1px solid var(--hairline); display: block;
}
.ggrr-doc__actions { display: flex; flex-direction: column; gap: var(--space-2xs); margin-top: var(--space-md); }
.ggrr-doc__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 16px; text-decoration: none;
  font-family: var(--font-mono); font-size: var(--text-sm); letter-spacing: 0.02em;
}
.ggrr-doc__btn--primary { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.ggrr-doc__btn--primary:hover { background: var(--accent); border-color: var(--accent); }
.ggrr-doc__btn--ghost { background: none; color: var(--ink); border: 1px solid var(--hairline-strong); }
.ggrr-doc__btn--ghost:hover { border-color: var(--ink-soft); }
.ggrr-doc__notes {
  margin-top: var(--space-lg); padding-top: var(--space-md);
  border-top: 1px solid var(--hairline);
}
.ggrr-doc__notes h2 {
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-faint); font-weight: 500; margin: 0 0 var(--space-2xs);
}
.ggrr-doc__notes p { font-size: var(--text-sm); margin: 0; }

.rr-reader {
  --rr-paper: var(--paper);
  --rr-paper-raised: var(--paper-raised);
  --rr-paper-sunk: var(--paper-sunk);
  --rr-ink: var(--ink);
  --rr-ink-soft: var(--ink-soft);
  --rr-ink-faint: var(--ink-faint);
  --rr-rule: var(--hairline-strong);
  --rr-accent: var(--accent);
  --rr-focus: var(--accent);
  --rr-mono: var(--font-mono);
}

.ggrr-reader, .rr-reader {
  display: grid; gap: var(--space-sm);
  background: var(--paper-raised);
  border: 1px solid var(--hairline); border-radius: 6px;
  padding: var(--space-sm);
}
.ggrr-reader__toolbar, .rr-reader__toolbar { display: flex; align-items: center; gap: var(--space-xs); flex-wrap: wrap; }
.ggrr-reader__btn, .rr-reader__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 14px;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  background: var(--paper-raised);
  color: var(--ink);
  border: 2px solid var(--ink);
  border-radius: 4px;
  box-shadow: 0 3px 0 var(--ink);
  position: relative;
  transition: transform 100ms ease, box-shadow 100ms ease, background-color 100ms ease;
}
.ggrr-reader__btn:hover:not(:disabled), .rr-reader__btn:hover:not(:disabled) {
  background: var(--paper-sunk);
  color: var(--ink);
  border-color: var(--ink);
}
.ggrr-reader__btn:active:not(:disabled), .rr-reader__btn:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 0 0 var(--ink);
}
.ggrr-reader__btn:disabled, .rr-reader__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  box-shadow: 0 1px 0 var(--ink);
  transform: translateY(2px);
}
.ggrr-reader__btn--zoom, .rr-reader__btn--zoom {
  min-width: 40px;
  padding: 8px 12px;
  font-size: 1.1rem;
  line-height: 1;
}
.ggrr-reader__pageinfo, .rr-reader__pageinfo {
  display: inline-flex; align-items: center; gap: 8px; margin-left: auto;
  font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ink-soft);
}
.ggrr-reader__page-input, .rr-reader__page-input {
  inline-size: 3.4rem; min-height: 36px; text-align: center;
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  background: var(--paper); color: var(--ink);
  border: 2px solid var(--ink); border-radius: 4px; padding: 4px;
}
.ggrr-reader__page-total, .rr-reader__page-total { color: var(--ink-faint); font-variant-numeric: tabular-nums; }
.ggrr-reader__stage, .rr-reader__stage {
  max-block-size: 82vh; overflow: auto;
  display: flex; justify-content: center;
  background: var(--stage-mount);
  border: 1px solid var(--hairline); border-radius: 4px;
  padding: var(--space-sm);
  /* single-page mode portrait box style (default on desktop) */
  max-width: 720px;
  margin-inline: auto;
  width: 100%;
  box-sizing: border-box;
}

/* spread mode landscape reset */
.rr-reader--spread .rr-reader__stage {
  max-width: none;
  margin-inline: 0;
}

/* lightbox / fullscreen stage reset */
.rr-reader--lightbox .rr-reader__stage,
.rr-reader:fullscreen .rr-reader__stage {
  max-width: none !important;
  margin-inline: 0 !important;
}

.ggrr-reader__stage:focus-visible, .rr-reader__stage:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.ggrr-reader__canvas, .rr-reader__canvas { max-width: 100%; height: auto; box-shadow: var(--shadow-page); background: #fff; }
.ggrr-reader__status, .rr-reader__status {
  margin: 0; font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ink-faint);
}
.ggrr-doc__helper { font-size: var(--text-xs); color: var(--ink-faint); margin: var(--space-2xs) 0 0; }
.ggrr-doc__iframe {
  inline-size: 100%; min-block-size: 78vh;
  border: 1px solid var(--hairline); border-radius: 4px; background: #fff;
}
@media (max-width: 960px) {
  .ggrr-reader__stage, .rr-reader__stage { max-block-size: 64vh; max-width: none; margin-inline: 0; }
  .ggrr-reader__pageinfo, .rr-reader__pageinfo { margin-left: 0; }
  .ggrr-doc__iframe { min-block-size: 60vh; }
  .ggrr-reader__btn, .rr-reader__btn {
    min-height: 44px;
    min-width: 44px;
    padding: 10px 16px;
  }
  .ggrr-reader__page-input, .rr-reader__page-input {
    min-height: 44px;
  }
}

/* ====================================================================
   COLLECTIONS INDEX — finding aid (8 hubs, asymmetric, not a card grid)
   ==================================================================== */
.ggrr-index__hero-wrap {
  display: flex;
  flex-direction: column-reverse;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.ggrr-index__head {
  margin-bottom: 0;
  max-width: var(--measure);
}

.ggrr-index__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--text-display); line-height: 1.04; letter-spacing: -0.01em; margin: 0; color: var(--ink);
}
.ggrr-index__intro { font-size: var(--text-lg); color: var(--ink-soft); line-height: 1.5; margin: var(--space-md) 0 0; }

.ggrr-index__banner {
  flex-shrink: 0;
  background: var(--paper-raised);
  border: 1px solid var(--hairline-strong);
  border-radius: 6px;
  padding: 6px;
  box-shadow: var(--shadow-page);
  align-self: center;
}

.ggrr-index__banner img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

@media (min-width: 769px) {
  .ggrr-index__hero-wrap {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-xl);
  }
  .ggrr-index__head {
    flex: 1;
  }
  .ggrr-index__banner {
    width: 320px;
  }
}

@media (max-width: 768px) {
  .ggrr-index__banner {
    width: 100%;
    max-width: 480px;
    height: 180px;
    overflow: hidden;
  }
  .ggrr-index__banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

@media (max-width: 480px) {
  .ggrr-index__banner {
    max-width: 100%;
    height: 120px;
  }
}

.ggrr-index__list { display: grid; gap: 0; border-top: 1px solid var(--hairline-strong); }
.ggrr-hubrow {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline; gap: var(--space-md);
  padding: var(--space-md) 0; border-bottom: 1px solid var(--hairline);
  text-decoration: none; color: var(--ink);
}
.ggrr-hubrow:hover .ggrr-hubrow__name { color: var(--accent); }
.ggrr-hubrow__name {
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--text-xl); line-height: 1.08; margin: 0; color: var(--ink); transition: color 120ms ease-out;
}
.ggrr-hubrow__name::after {
  content: " →";
  display: inline-block;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
  color: var(--accent);
}
.ggrr-hubrow:hover .ggrr-hubrow__name::after {
  opacity: 1;
  transform: translateX(0);
}
.ggrr-hubrow__desc { font-size: var(--text-sm); color: var(--ink-soft); margin: var(--space-2xs) 0 0; max-width: 58ch; }
.ggrr-hubrow__meta {
  text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  color: var(--ink-faint); font-size: var(--text-sm); white-space: nowrap;
}
.ggrr-hubrow__count { display: block; font-size: var(--text-lg); color: var(--ink); }
/* lead hub (largest set) carries extra weight */
.ggrr-hubrow--lead { padding-block: var(--space-lg); }
.ggrr-hubrow--lead .ggrr-hubrow__name { font-size: clamp(1.9rem, 1.3rem + 2vw, 2.7rem); }

/* ====================================================================
   SUBJECT HUB — ordered file index (box/folder finding-aid feel)
   ==================================================================== */
.ggrr-hub__head { margin-bottom: var(--space-lg); max-width: var(--measure); }
.ggrr-hub__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--text-xl); line-height: 1.06; margin: 0; color: var(--ink);
}
.ggrr-hub__count { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ink-faint); margin: var(--space-2xs) 0 0; }

.ggrr-filelist { display: grid; gap: 0; border-top: 1px solid var(--hairline-strong); }
.ggrr-fileitem {
  display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) auto;
  align-items: baseline; gap: var(--space-sm);
  padding: var(--space-sm) 0; border-bottom: 1px solid var(--hairline);
  text-decoration: none; color: var(--ink);
}
.ggrr-fileitem:hover .ggrr-fileitem__title { color: var(--accent); }
.ggrr-fileitem__num {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-size: var(--text-sm); color: var(--ink-faint);
}
.ggrr-fileitem__title {
  font-size: var(--text-base); line-height: 1.3; margin: 0; color: var(--ink); transition: color 120ms ease-out;
}
.ggrr-fileitem__title::after {
  content: " →";
  display: inline-block;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
  color: var(--accent);
}
.ggrr-fileitem:hover .ggrr-fileitem__title::after {
  opacity: 1;
  transform: translateX(0);
}
.ggrr-fileitem__final {
  display: inline-block; margin-left: var(--space-2xs);
  font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--accent); border: 1px solid var(--accent); border-radius: 3px; padding: 1px 6px;
  vertical-align: 0.1em;
}
.ggrr-fileitem__size {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-size: var(--text-sm); color: var(--ink-faint); white-space: nowrap; text-align: right;
}

/* ---------- empty state ---------- */
.ggrr-rr__empty {
  padding: var(--space-2xl) 0; text-align: left; max-width: var(--measure);
  color: var(--ink-soft); font-size: var(--text-lg);
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion: no-preference) {
  .ggrr-hubrow, .ggrr-fileitem { animation: ggrr-rise 420ms cubic-bezier(0.22, 1, 0.36, 1) both; }
  .ggrr-filelist > :nth-child(1) { animation-delay: 20ms; }
  .ggrr-filelist > :nth-child(2) { animation-delay: 40ms; }
  .ggrr-filelist > :nth-child(3) { animation-delay: 60ms; }
  .ggrr-filelist > :nth-child(4) { animation-delay: 80ms; }
  .ggrr-filelist > :nth-child(n+5) { animation-delay: 100ms; }
}
@keyframes ggrr-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* specificity overrides to win over child theme */
body.gg-reading-room .ggrr-rr h1,
body.gg-reading-room .ggrr-rr h2,
body.gg-reading-room .ggrr-rr h3,
body.gg-reading-room .ggrr-rr h4 {
  color: var(--ink);
}

body.gg-reading-room .ggrr-rr a {
  color: var(--ink);
}
body.gg-reading-room .ggrr-rr a:hover {
  color: var(--accent);
}

body.gg-reading-room .ggrr-rr a.ggrr-rr__back {
  color: var(--ink-soft);
}
body.gg-reading-room .ggrr-rr a.ggrr-rr__back:hover {
  color: var(--ink);
}

body.gg-reading-room .ggrr-rr a.ggrr-rr__eyebrow {
  color: var(--accent);
}
body.gg-reading-room .ggrr-rr a.ggrr-rr__eyebrow:hover {
  color: var(--accent);
  text-decoration: underline;
}

body.gg-reading-room .ggrr-rr a.ggrr-doc__btn--primary {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
body.gg-reading-room .ggrr-rr a.ggrr-doc__btn--primary:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--paper);
}

body.gg-reading-room .ggrr-rr a.ggrr-doc__btn--ghost {
  background: none;
  color: var(--ink);
  border-color: var(--hairline-strong);
}
body.gg-reading-room .ggrr-rr a.ggrr-doc__btn--ghost:hover {
  border-color: var(--ink-soft);
  color: var(--ink-soft);
}

/* ====================================================================
   GTRANSLATE WIDGET OVERLAP MITIGATION
   ==================================================================== */
/* Ensure GTranslate switcher widget elements do not overlap GGRR reader controls */
.ggrr-rr .gtranslate_wrapper,
.ggrr-rr .gt_switcher {
  z-index: 9999;
}

@media (min-width: 961px) {
  body.gg-reading-room .gtranslate_wrapper,
  body.gg-reading-room #gt_holder,
  body.gg-reading-room .gt_switcher {
    left: var(--space-md) !important;
    right: auto !important;
    bottom: var(--space-md) !important;
  }
}

@media (max-width: 960px) {
  body.gg-reading-room .gtranslate_wrapper,
  body.gg-reading-room #gt_holder,
  body.gg-reading-room .gt_switcher {
    bottom: calc(var(--space-md) + 60px) !important;
  }
}

/* ---------- IA status badges ---------- */
.ggrr-doc__ia-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.08rem 0.55rem;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  border-radius: 999px;
  vertical-align: middle;
  line-height: 1.7;
}
.ggrr-doc__ia-badge--confirmed {
  background: oklch(55% 0.15 145);
  color: #fff;
  border: 1px solid oklch(45% 0.15 145);
}
@media (prefers-color-scheme: dark) {
  .ggrr-rr:not([data-ggrr-theme="light"]) .ggrr-doc__ia-badge--confirmed {
    background: oklch(50% 0.14 145);
    border-color: oklch(40% 0.14 145);
  }
}
.ggrr-rr[data-ggrr-theme="dark"] .ggrr-doc__ia-badge--confirmed {
  background: oklch(50% 0.14 145);
  border-color: oklch(40% 0.14 145);
}
.ggrr-doc__ia-badge--pending {
  background: oklch(75% 0.12 85);
  color: #000;
  border: 1px solid oklch(65% 0.12 85);
}
.ggrr-doc__ia-badge--none {
  background: transparent;
  color: var(--ink-faint);
  border: 1px solid var(--hairline);
}
@media (prefers-color-scheme: dark) {
  .ggrr-rr:not([data-ggrr-theme="light"]) .ggrr-doc__ia-badge--pending {
    background: oklch(68% 0.12 85);
    border-color: oklch(58% 0.12 85);
  }
}
.ggrr-rr[data-ggrr-theme="dark"] .ggrr-doc__ia-badge--pending {
  background: oklch(68% 0.12 85);
  border-color: oklch(58% 0.12 85);
}
.ggrr-doc__ia-note {
  display: block;
  font-size: 0.7rem;
  color: var(--ink-faint);
  margin-top: 0.15rem;
}

/* ---------- provenance badges ----------
   Government record vs third-party work. Geometry matches .ggrr-doc__ia-badge
   so the two pills sit together without arguing. Rendered by
   GGRR_Template::provenance_badge() on the document page and every card.

   Color: government is an outline chip, because it is the unremarkable case
   and 439 of 439 documents carry it -- a filled pill on every row would be
   noise. Third-party is filled, because it is the exception that has to be
   noticed. The hue (275) is deliberately not the IA green (145), the pending
   amber (85) or the topic red (28): this is a classification, not a warning.

   Contrast: --ink-soft, not --ink-faint. On dark paper the faint token lands
   near 4.4:1, which misses AA for text this small. */
.ggrr-prov-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.08rem 0.55rem;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  border-radius: 999px;
  vertical-align: middle;
  line-height: 1.7;
  white-space: nowrap;
}
.ggrr-prov-badge--government {
  background: transparent;
  color: var(--ink-soft);
  border: 1px solid var(--hairline-strong);
}
.ggrr-prov-badge--third-party {
  background: oklch(45% 0.15 275);
  color: #fff;
  border: 1px solid oklch(36% 0.15 275);
}
@media (prefers-color-scheme: dark) {
  .ggrr-rr:not([data-ggrr-theme="light"]) .ggrr-prov-badge--third-party {
    background: oklch(48% 0.14 275);
    border-color: oklch(38% 0.14 275);
  }
}
.ggrr-rr[data-ggrr-theme="dark"] .ggrr-prov-badge--third-party {
  background: oklch(48% 0.14 275);
  border-color: oklch(38% 0.14 275);
}
.ggrr-doc__rights-note {
  display: inline-block;
  font-size: 0.78rem;
  color: var(--ink-soft);
  margin-top: 0.15rem;
}

/* topic badges — darker background in dark mode for WCAG AA contrast */
@media (prefers-color-scheme: dark) {
  .ggrr-rr:not([data-ggrr-theme="light"]) .ggrr-doc__topic-badge {
    background: oklch(48% 0.13 28);
  }
}
.ggrr-rr[data-ggrr-theme="dark"] .ggrr-doc__topic-badge {
  background: oklch(48% 0.13 28);
}
