:root {
  --blue-950: #0b2442;
  --blue-900: #12345d;
  --blue-800: #1f4f8f;
  --blue-700: #2d63a8;
  --blue-600: #447bbb;
  --blue-200: #c9dcef;
  --blue-100: #e7f0f8;
  --blue-050: #f3f7fb;
  --gold-700: #785817;
  --gold-600: #8a681f;
  --gold-500: #a47d2c;
  --gold-300: #dfc98f;
  --cream: #f8f6f0;
  --paper: #ffffff;
  --ink: #12243a;
  --text: #33465a;
  --muted: #52677b;
  --line: #d9e3ed;
  --shadow: 0 22px 60px rgba(11, 36, 66, 0.11);
  --shadow-soft: 0 14px 34px rgba(11, 36, 66, 0.07);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 15px;
  --container: 1200px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--text);
  background: var(--cream);
  font-family: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.05rem;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: var(--blue-800);
  text-underline-offset: 0.2em;
}

h1,
h2,
h3 {
  margin: 0 0 1rem;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  line-height: 1.18;
}

h1 {
  font-size: clamp(2.75rem, 6.2vw, 5.9rem);
  letter-spacing: -0.045em;
}

h2 {
  font-size: clamp(2.05rem, 4.2vw, 3.65rem);
  letter-spacing: -0.03em;
}

h3 {
  font-size: 1.28rem;
}

p {
  margin: 0 0 1.2rem;
}

.container {
  width: min(calc(100% - 2rem), var(--container));
  margin-inline: auto;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 1000;
  padding: 0.75rem 1rem;
  color: #fff;
  background: var(--blue-950);
  border-radius: 8px;
  transform: translateY(-180%);
  transition: transform 0.2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid transparent;
  background: rgba(248, 246, 240, 0.91);
  backdrop-filter: blur(18px);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.site-header.is-scrolled {
  border-color: rgba(31, 79, 143, 0.12);
  box-shadow: 0 8px 28px rgba(11, 36, 66, 0.08);
}

.header-inner {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: var(--blue-950);
  text-decoration: none;
}

.brand img {
  flex: 0 0 auto;
  filter: drop-shadow(0 5px 10px rgba(11, 36, 66, 0.12));
}

.brand-seal {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  filter: drop-shadow(0 5px 10px rgba(11, 36, 66, 0.12));
}

.brand-text {
  display: grid;
  line-height: 1.05;
}

.brand-kicker {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.brand-name {
  margin-top: 0.32rem;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 0.98rem;
  font-weight: 700;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 1.15rem;
}

.site-nav a {
  position: relative;
  color: var(--blue-950);
  font-size: 0.91rem;
  font-weight: 650;
  text-decoration: none;
}

.site-nav a::after {
  position: absolute;
  right: 0;
  bottom: -0.38rem;
  left: 0;
  height: 2px;
  content: "";
  background: var(--gold-500);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.18s ease;
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after {
  transform: scaleX(1);
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.nav-toggle span:not(.sr-only) {
  display: block;
  width: 24px;
  height: 2px;
  margin: 5px auto;
  background: var(--blue-950);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.hero {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - 86px);
  display: grid;
  align-items: center;
  padding: clamp(5rem, 9vw, 8rem) 0;
  background:
    radial-gradient(circle at 78% 28%, rgba(68, 123, 187, 0.28), transparent 32%),
    linear-gradient(135deg, #f9fbfd 0%, var(--blue-100) 60%, #d6e6f4 100%);
}

.hero::after {
  position: absolute;
  right: -14rem;
  bottom: -18rem;
  width: 38rem;
  height: 38rem;
  content: "";
  border: 1px solid rgba(31, 79, 143, 0.17);
  border-radius: 50%;
  box-shadow:
    0 0 0 90px rgba(31, 79, 143, 0.035),
    0 0 0 180px rgba(31, 79, 143, 0.025);
}

.hero-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(18, 52, 93, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 52, 93, 0.035) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}

.hero-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
}

.hero-copy {
  max-width: 780px;
}

.eyebrow {
  margin-bottom: 1rem;
  color: var(--gold-600);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.hero-lead {
  max-width: 760px;
  margin-top: 1.6rem;
  color: var(--blue-950);
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  line-height: 1.52;
}

.hero-purpose {
  max-width: 700px;
  color: var(--muted);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 0.76rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 750;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-primary {
  color: #fff;
  background: var(--blue-800);
  box-shadow: 0 12px 30px rgba(31, 79, 143, 0.24);
}

.button-primary:hover {
  background: var(--blue-900);
}

.button-secondary {
  color: var(--blue-950);
  border-color: rgba(31, 79, 143, 0.2);
  background: rgba(255, 255, 255, 0.72);
}

.button-secondary:hover {
  background: #fff;
}

.button-full {
  width: 100%;
}

.hero-art,
.section-art,
.membership-art,
.history-art {
  margin: 0;
}

.hero-art {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.36);
  box-shadow: var(--shadow);
}

.hero-art img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.hero-art figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  padding: 0.75rem 0.9rem;
  color: rgba(255,255,255,0.9);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 12px;
  background: rgba(11, 36, 66, 0.76);
  backdrop-filter: blur(10px);
  font-size: 0.78rem;
  line-height: 1.4;
}

.section {
  padding: clamp(5rem, 9vw, 8rem) 0;
  scroll-margin-top: 84px;
}

.section-heading {
  max-width: 760px;
}

.section-heading.centered {
  margin: 0 auto clamp(2.8rem, 5vw, 4.7rem);
  text-align: center;
}

.section-heading > p:last-child {
  color: var(--muted);
  font-size: 1.08rem;
}

.identity-section {
  background: var(--cream);
}

.identity-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2.5rem, 8vw, 7rem);
}

.identity-content {
  max-width: 760px;
  font-size: 1.1rem;
}

.identity-content p:first-child::first-letter {
  float: left;
  margin: 0.05em 0.12em 0 0;
  color: var(--gold-600);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 0.82;
}

.christ-feature {
  position: relative;
  overflow: hidden;
}

.christ-feature-king {
  color: rgba(255,255,255,0.8);
  background:
    radial-gradient(circle at 20% 20%, rgba(68,123,187,0.42), transparent 28%),
    linear-gradient(135deg, var(--blue-950), var(--blue-800));
}

.christ-feature-teaching {
  background: var(--blue-050);
}

.christ-feature-layout {
  display: grid;
  grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(2.5rem, 8vw, 7rem);
}

.christ-feature-layout.reverse .section-art {
  order: 2;
}

.section-art {
  overflow: hidden;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.section-art img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.christ-feature-copy {
  max-width: 650px;
}

.christ-feature-king h2,
.christ-feature-king h3 {
  color: #fff;
}

.christ-feature-king .eyebrow {
  color: var(--gold-300);
}

.christ-feature-king .christ-feature-copy p {
  color: rgba(255,255,255,0.73);
}

.beliefs-section {
  background: #eef4f9;
}

.belief-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.belief-card {
  min-height: 100%;
  padding: 1.55rem;
  border: 1px solid rgba(31, 79, 143, 0.11);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.82);
  box-shadow: 0 10px 24px rgba(11,36,66,0.035);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.belief-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 162, 77, 0.55);
  box-shadow: var(--shadow-soft);
}

.belief-number {
  display: inline-block;
  margin-bottom: 1rem;
  color: var(--gold-600);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.belief-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 0.97rem;
}

.membership-section {
  background: var(--cream);
}

.membership-lead-layout {
  display: grid;
  grid-template-columns: 1fr 0.72fr;
  align-items: center;
  gap: 2rem;
  margin-bottom: 2rem;
}

.membership-intro {
  padding: clamp(1.8rem, 4vw, 2.8rem);
  border-left: 5px solid var(--gold-500);
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
  background: #fff;
  box-shadow: var(--shadow-soft);
  color: var(--blue-950);
  font-size: 1.14rem;
}

.membership-intro p {
  margin-bottom: 0;
}

.membership-art {
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.membership-art img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.process-card {
  padding: 1.55rem;
  border: 1px solid rgba(31, 79, 143, 0.11);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: 0 12px 28px rgba(11, 36, 66, 0.05);
}

.process-card > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  margin-bottom: 1rem;
  color: var(--blue-950);
  border-radius: 50%;
  background: var(--gold-300);
  font-weight: 800;
}

.process-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 0.96rem;
}

.recognition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.recognition-note,
.affiliation-note {
  padding: clamp(1.7rem, 4vw, 2.4rem);
  border-radius: var(--radius-lg);
}

.recognition-note {
  border: 1px solid rgba(201, 162, 77, 0.3);
  background: #f7f1e3;
}

.affiliation-note {
  color: rgba(255,255,255,0.8);
  background: var(--blue-900);
}

.affiliation-note h3 {
  color: #fff;
}

.recognition-note p:last-child,
.affiliation-note p:last-child {
  margin-bottom: 0;
}

.wedding-section {
  color: rgba(255,255,255,0.79);
  background:
    radial-gradient(circle at 75% 25%, rgba(201,162,77,0.2), transparent 26%),
    linear-gradient(145deg, var(--blue-900), var(--blue-950));
}

.wedding-layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: clamp(2.5rem, 8vw, 7rem);
}

.wedding-section h2 {
  color: #fff;
}

.wedding-section .eyebrow {
  color: var(--gold-300);
}

.history-section {
  background: var(--blue-050);
}

.history-layout {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  align-items: stretch;
  gap: clamp(2rem, 6vw, 5rem);
}

.history-art {
  overflow: hidden;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.history-art img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.history-panel {
  padding: clamp(2rem, 5vw, 4rem);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: var(--shadow);
}

.timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
}

.timeline.timeline-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.timeline-item {
  position: relative;
  padding: 1.45rem;
  border-top: 4px solid var(--gold-500);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.timeline-item > span {
  display: none;
}

.timeline-item h3 {
  margin-bottom: 0.7rem;
  font-size: 1.05rem;
}

.small-label {
  margin-bottom: 0.35rem;
  color: var(--gold-600);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.library-section {
  color: rgba(255,255,255,0.78);
  background:
    radial-gradient(circle at 10% 0%, rgba(68,123,187,0.3), transparent 27%),
    var(--blue-950);
}

.library-section h2,
.library-section h3 {
  color: #fff;
}

.library-heading {
  max-width: 820px;
  margin-bottom: 3rem;
}

.library-heading > p:last-child {
  color: rgba(255,255,255,0.62);
}

.library-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}

.library-card {
  grid-column: span 2;
  padding: 1.7rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.055);
}

.library-card:nth-child(4),
.library-card:nth-child(5) {
  grid-column: span 3;
}

.library-card p {
  color: rgba(255,255,255,0.62);
}

.library-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 1.3rem;
  display: grid;
  place-items: center;
  color: var(--blue-950);
  border-radius: 13px;
  background: var(--gold-300);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.status-chip {
  display: inline-flex;
  padding: 0.35rem 0.65rem;
  color: var(--gold-300);
  border: 1px solid rgba(223, 201, 143, 0.25);
  border-radius: 999px;
  background: rgba(223, 201, 143, 0.08);
  font-size: 0.78rem;
  font-weight: 650;
}

.contact-section {
  background: var(--cream);
}

.contact-layout {
  display: grid;
  grid-template-columns: 1fr minmax(320px, 0.7fr);
  gap: clamp(2.5rem, 8vw, 7rem);
}

.contact-card {
  padding: 2rem;
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow);
}

.contact-card dl {
  margin: 0 0 1.5rem;
}

.contact-card dl > div {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.contact-card dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-card dd {
  margin: 0.25rem 0 0;
  color: var(--blue-950);
  font-size: 1.08rem;
  font-weight: 650;
}

.contact-note {
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}


.contact-form-card h3 {
  margin: 0;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.35rem;
}

.contact-form-intro {
  margin: 0.55rem 0 1.35rem;
  color: var(--muted);
}

.public-contact-form {
  display: grid;
  gap: 1rem;
}

.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.contact-form-field {
  display: grid;
  gap: 0.4rem;
}

.contact-form-field-full {
  grid-column: 1 / -1;
}

.contact-form-field label {
  color: var(--blue-950);
  font-size: 0.88rem;
  font-weight: 750;
}

.contact-form-field input,
.contact-form-field textarea {
  width: 100%;
  padding: 0.78rem 0.85rem;
  border: 1px solid #c9d3dc;
  border-radius: 9px;
  background: #fff;
  color: var(--blue-950);
  font: inherit;
}

.contact-form-field textarea {
  resize: vertical;
  min-height: 9rem;
}

.contact-form-field input:focus,
.contact-form-field textarea:focus {
  outline: 3px solid rgba(39, 92, 139, 0.16);
  border-color: var(--blue-600);
}

.contact-form-status,
.contact-form-unavailable {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid #c7d6e4;
  border-radius: 9px;
  background: #f5f9fc;
  color: var(--blue-950);
}

.contact-form-unavailable p {
  margin: 0.35rem 0 0;
  color: var(--muted);
}

.contact-validation:empty {
  display: none;
}

.contact-security-check {
  min-height: 65px;
}

.contact-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.contact-location {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.35rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.88rem;
}

.contact-location strong {
  color: var(--blue-950);
}

.status-section {
  padding: 0 0 clamp(5rem, 9vw, 8rem);
  background: var(--cream);
}

.status-box {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 2rem;
  align-items: center;
  padding: clamp(2rem, 5vw, 4rem);
  color: #fff;
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, var(--blue-800), var(--blue-950));
  box-shadow: var(--shadow);
}

.status-box h2 {
  margin-bottom: 0;
  color: #fff;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.status-box > p {
  margin-bottom: 0;
  color: rgba(255,255,255,0.75);
}

.site-footer {
  padding: 4.5rem 0 1.5rem;
  color: rgba(255,255,255,0.7);
  background: #071a31;
  text-align: center;
}

.footer-logo-wrap {
  display: grid;
  justify-items: center;
}

.footer-seal {
  width: 190px;
  height: 190px;
  filter: drop-shadow(0 16px 28px rgba(0,0,0,0.28));
}

.footer-church-name {
  max-width: 660px;
  margin: 1.5rem auto 0;
  color: #fff;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.2rem, 2.5vw, 1.75rem);
  font-weight: 700;
}

.footer-location {
  margin: 0.45rem 0 0;
  color: rgba(255,255,255,0.54);
}

.footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}

.footer-links a {
  color: rgba(255,255,255,0.78);
}

.footer-status {
  margin-top: 2.4rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-status p {
  max-width: 900px;
  margin-inline: auto;
  color: rgba(255,255,255,0.5);
  font-size: 0.91rem;
}

.footer-bottom {
  margin-top: 1.8rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.footer-bottom p {
  margin: 0;
  color: rgba(255,255,255,0.4);
  font-size: 0.82rem;
}

.privacy-main {
  min-height: 70vh;
  padding: clamp(5rem, 9vw, 8rem) 0;
}

.privacy-content {
  max-width: 840px;
}

.privacy-content h1 {
  font-size: clamp(2.5rem, 5vw, 4.3rem);
}

.privacy-content h2 {
  margin-top: 2.5rem;
  font-size: 1.5rem;
}

.privacy-content .effective-date {
  color: var(--muted);
}

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 680px) {
  .contact-form-grid {
    grid-template-columns: 1fr;
  }

  .contact-form-field-full {
    grid-column: auto;
  }

  .contact-location {
    flex-direction: column;
    gap: 0.25rem;
  }
}

@media (max-width: 1050px) {
  .hero-layout,
  .identity-layout,
  .christ-feature-layout,
  .membership-lead-layout,
  .wedding-layout,
  .history-layout,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .christ-feature-layout.reverse .section-art {
    order: 0;
  }

  .hero-art {
    max-width: 650px;
  }

  .hero-art img {
    aspect-ratio: 16 / 10;
  }

  .belief-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .process-grid,
  .timeline,
  .timeline.timeline-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .history-art img {
    min-height: 420px;
    aspect-ratio: 16 / 9;
  }

  .library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .library-card,
  .library-card:nth-child(4),
  .library-card:nth-child(5) {
    grid-column: auto;
  }
}

@media (max-width: 1360px) {
  .nav-toggle {
    display: block;
    position: relative;
    z-index: 110;
  }

  .site-nav {
    position: fixed;
    inset: 0 0 auto auto;
    width: min(88vw, 400px);
    height: 100dvh;
    padding: 7rem 2rem 2rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.3rem;
    background: var(--cream);
    box-shadow: -20px 0 50px rgba(11, 36, 66, 0.16);
    transform: translateX(110%);
    transition: transform 0.25s ease;
  }

  .site-nav.is-open {
    transform: translateX(0);
  }

  .site-nav a {
    font-size: 1.12rem;
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(2) {
    transform: translateY(7px) rotate(45deg);
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(3) {
    opacity: 0;
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(4) {
    transform: translateY(-7px) rotate(-45deg);
  }

  body.nav-open {
    overflow: hidden;
  }

  .status-box {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body {
    font-size: 1rem;
  }

  .header-inner {
    min-height: 76px;
  }

  .brand-kicker {
    font-size: 0.62rem;
  }

  .brand-name {
    font-size: 0.8rem;
  }

  .brand img,
  .brand-seal {
    width: 46px;
    height: 46px;
  }

  .hero {
    min-height: auto;
    padding-top: 4.5rem;
  }

  .hero-actions {
    flex-direction: column;
  }

  .button {
    width: 100%;
  }

  .belief-grid,
  .process-grid,
  .recognition-grid,
  .timeline,
  .timeline.timeline-five,
  .library-grid {
    grid-template-columns: 1fr;
  }

  .hero-art figcaption {
    position: static;
    color: var(--muted);
    background: #fff;
    border-radius: 0;
  }

  .footer-seal {
    width: 160px;
    height: 160px;
  }
}


/* Version 3.1 — church-first identity */
.church-identity-note {
  margin: 1.6rem 0;
  padding: 1.35rem 1.5rem;
  color: var(--blue-950);
  border-left: 5px solid var(--gold-500);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  background: var(--blue-100);
  box-shadow: var(--shadow-soft);
}

.church-identity-note strong {
  display: block;
  margin-bottom: 0.35rem;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.18rem;
}

.hero-art img,
.section-art img,
.membership-art img,
.history-art img {
  background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
}

.footer-tagline {
  margin: 0.4rem 0 0;
  color: var(--gold-300);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}


/* Version 3.02 fixes */
.notfound-seal {
  display: block;
  width: 120px;
  height: 120px;
  margin-bottom: 1rem;
  filter: drop-shadow(0 10px 18px rgba(11, 36, 66, 0.16));
}

@media (max-width: 1050px) {
  .hero-art {
    max-width: 700px;
    margin-inline: auto;
  }

  .hero-art img {
    aspect-ratio: 4 / 5;
    object-fit: contain;
    background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
  }

  .history-art img {
    min-height: 0;
    aspect-ratio: 4 / 5;
    object-fit: contain;
    background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
  }
}

@media (max-width: 720px) {
  .hero-art img,
  .history-art img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    aspect-ratio: auto;
    background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
  }

  .history-art {
    background: linear-gradient(135deg, var(--blue-900), var(--blue-700));
  }
}


/* Version 3.03 logo refinement */
.brand-mark {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  filter: drop-shadow(0 5px 10px rgba(11, 36, 66, 0.14));
}

.footer-seal {
  width: 220px;
  height: 220px;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,0.28));
}

.notfound-seal {
  display: block;
  width: 140px;
  height: 140px;
  margin-bottom: 1rem;
  filter: drop-shadow(0 10px 18px rgba(11, 36, 66, 0.16));
}

.brand {
  gap: 0.9rem;
}

.brand-name {
  margin-top: 0.22rem;
}

@media (max-width: 720px) {
  .brand-mark {
    width: 46px;
    height: 46px;
  }

  .footer-seal {
    width: 180px;
    height: 180px;
  }
}


/* Version 3.04 — one plain replaceable logo asset */
.brand-logo {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  object-fit: contain;
  border-radius: 10px;
}

.footer-logo {
  width: min(240px, 58vw);
  height: auto;
  max-height: 240px;
  object-fit: contain;
}

.notfound-logo {
  display: block;
  width: 140px;
  height: 140px;
  object-fit: contain;
  margin-bottom: 1rem;
}

@media (max-width: 720px) {
  .brand-logo {
    width: 46px;
    height: 46px;
  }

  .footer-logo {
    width: min(200px, 62vw);
    max-height: 200px;
  }
}


/* Version 3.05 — refined type scale and section hierarchy */
:root {
  --display-max: 4.7rem;
  --section-title-max: 3rem;
  --feature-title-max: 2.75rem;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

h1 {
  font-size: clamp(2.55rem, 4.9vw, var(--display-max));
  line-height: 1.06;
  letter-spacing: -0.042em;
}

h2 {
  font-size: clamp(1.9rem, 3.1vw, var(--section-title-max));
  line-height: 1.14;
  letter-spacing: -0.028em;
}

h3 {
  line-height: 1.28;
  text-wrap: pretty;
}

.hero {
  min-height: auto;
  padding: clamp(5.25rem, 8vw, 7.25rem) 0;
}

.hero-layout {
  grid-template-columns: minmax(0, 1fr) minmax(380px, 0.82fr);
  gap: clamp(3rem, 6vw, 5.25rem);
}

.hero-copy {
  max-width: 720px;
}

.hero-title {
  max-width: 11.8ch;
}

.hero-lead {
  max-width: 680px;
  margin-top: 1.45rem;
  font-size: clamp(1.16rem, 1.6vw, 1.42rem);
  line-height: 1.57;
}

.hero-purpose {
  max-width: 650px;
  font-size: 1.02rem;
  line-height: 1.7;
}

.hero-art {
  max-width: 560px;
  justify-self: end;
}

.section {
  padding: clamp(4.75rem, 7.5vw, 7rem) 0;
}

.section-heading {
  max-width: 660px;
}

.section-heading.centered {
  max-width: 760px;
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.section-title {
  max-width: 17ch;
}

.section-heading.centered .section-title {
  max-width: 22ch;
  margin-inline: auto;
}

.identity-layout {
  grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(3rem, 7vw, 6rem);
}

.identity-content {
  font-size: 1.06rem;
}

.feature-title {
  max-width: 16ch;
  font-size: clamp(1.95rem, 3vw, var(--feature-title-max));
}

.christ-feature-copy {
  max-width: 610px;
}

.christ-feature-copy p,
.wedding-copy p {
  max-width: 62ch;
}

.membership-section .section-heading.centered {
  max-width: 800px;
}

.membership-section .section-title {
  max-width: 24ch;
}

.history-panel .section-title,
.library-heading .section-title,
.contact-section .section-title {
  max-width: 18ch;
}

.status-title {
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.2;
}

.belief-card h3 {
  font-size: 1.2rem;
}

.library-card h3 {
  font-size: 1.2rem;
}

@media (max-width: 1050px) {
  .hero-layout {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    max-width: 800px;
  }

  .hero-title {
    max-width: 13ch;
  }

  .hero-art {
    width: min(100%, 620px);
    max-width: 620px;
    justify-self: start;
  }

  .identity-layout {
    grid-template-columns: 1fr;
  }

  .section-title,
  .feature-title {
    max-width: 22ch;
  }
}

@media (max-width: 720px) {
  :root {
    --display-max: 3.45rem;
    --section-title-max: 2.45rem;
    --feature-title-max: 2.3rem;
  }

  h1 {
    font-size: clamp(2.45rem, 12vw, var(--display-max));
    line-height: 1.03;
  }

  h2 {
    font-size: clamp(1.85rem, 8vw, var(--section-title-max));
  }

  .hero {
    padding: 3.8rem 0 4.75rem;
  }

  .hero-title {
    max-width: 10.8ch;
  }

  .hero-lead {
    font-size: 1.12rem;
  }

  .section {
    padding: 4.5rem 0;
  }

  .section-title,
  .feature-title,
  .section-heading.centered .section-title,
  .membership-section .section-title {
    max-width: none;
  }
}


/* Version 3.06 — expanded doctrine, relationship, membership, and study sections */
.zion-life-section {
  background: var(--cream);
}

.doctrine-detail-grid,
.relationship-grid,
.begin-grid,
.recognition-detail-grid {
  display: grid;
  gap: 1rem;
}

.doctrine-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.detail-card,
.relationship-card,
.begin-card,
.recognition-card {
  padding: clamp(1.65rem, 3vw, 2.35rem);
  border: 1px solid rgba(31, 79, 143, 0.12);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.detail-card p:last-child,
.relationship-card p:last-child,
.begin-card p:last-of-type,
.recognition-card p:last-child {
  margin-bottom: 0;
}

.relationship-section {
  background: var(--blue-050);
}

.relationship-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.relationship-card:first-child {
  border-top: 5px solid var(--blue-700);
}

.relationship-card:last-child {
  border-top: 5px solid var(--gold-500);
}

.begin-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.begin-card {
  background: rgba(255, 255, 255, 0.82);
}

.begin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.independence-note {
  margin: 1rem 0 0;
  padding: 1.2rem 1.4rem;
  border-left: 5px solid var(--gold-500);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.membership-start-button {
  margin-top: 0.4rem;
}

.process-card-final {
  grid-column: span 2;
  border-color: rgba(201, 162, 77, 0.5);
  background: #fffdf7;
}

.process-card-final p + p {
  margin-top: 1rem;
}

.recognition-section {
  background: #f7f1e3;
}

.recognition-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recognition-card-emphasis {
  grid-column: 1 / -1;
  color: rgba(255,255,255,0.82);
  border-color: transparent;
  background: linear-gradient(135deg, var(--blue-900), var(--blue-950));
}

.recognition-card-emphasis h3 {
  color: #fff;
}

.library-card-featured {
  border-color: rgba(223, 201, 143, 0.4);
  background: rgba(223, 201, 143, 0.1);
}

.library-link {
  display: inline-flex;
  margin-top: 0.5rem;
  color: var(--gold-300);
  font-weight: 750;
  text-decoration-thickness: 1px;
}

@media (max-width: 1050px) {
  .doctrine-detail-grid,
  .relationship-grid,
  .begin-grid,
  .recognition-detail-grid {
    grid-template-columns: 1fr;
  }

  .process-card-final,
  .recognition-card-emphasis {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .begin-actions {
    flex-direction: column;
  }

  .begin-actions .button,
  .membership-start-button {
    width: 100%;
  }
}


/* ============================================================
   Church Platform application shell — Stage 3B
   ============================================================ */
.site-nav { gap: .8rem; }
.site-nav .nav-action { padding: .5rem .8rem; border-radius: 999px; }
.site-nav .nav-action::after { display: none; }
.site-nav .nav-login { border: 1px solid rgba(31,79,143,.22); background: rgba(255,255,255,.72); }
.page-main { min-height: 65vh; }
.page-hero { padding: clamp(5rem, 9vw, 8rem) 0; background: linear-gradient(135deg,#f9fbfd 0%,var(--blue-100) 65%,#d6e6f4 100%); }
.compact-page-hero { padding-block: clamp(4rem,7vw,6.5rem); }
.page-hero-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.page-hero h1, .auth-card h1, .not-found-layout h1 { font-size:clamp(2.5rem,5vw,4.5rem); }
.page-lead { max-width:760px; font-size:clamp(1.1rem,2vw,1.3rem); color:var(--blue-900); }
.narrow-copy { max-width:850px; }
.access-note, .draft-notice, .auth-help { padding:1.35rem 1.5rem; border:1px solid rgba(31,79,143,.18); border-radius:var(--radius-md); background:rgba(255,255,255,.78); box-shadow:var(--shadow-soft); }
.access-note strong, .draft-notice strong, .auth-help strong { display:block; margin-bottom:.35rem; color:var(--blue-950); }
.library-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.category-card { scroll-margin-top:110px; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; box-shadow:var(--shadow-soft); }
.category-card:last-child { grid-column:1/-1; }
.category-number { color:var(--gold-600); font-weight:800; letter-spacing:.12em; }
.category-status { margin:1.5rem 0 0; color:var(--muted); font-size:.95rem; }
.protected-library-section { color:#fff; background:linear-gradient(135deg,var(--blue-900),var(--blue-950)); }
.protected-library-section h2, .protected-library-section h3, .protected-library-section .eyebrow { color:#fff; }
.protected-library-section .section-heading p { color:rgba(255,255,255,.72); }
.protected-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.protected-category-card { padding:1.7rem; border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-lg); background:rgba(255,255,255,.07); }
.protected-category-card p { margin:0; color:rgba(255,255,255,.68); }
.lock-mark { display:inline-grid; width:2rem; height:2rem; place-items:center; margin-bottom:1rem; color:var(--gold-300); border:1px solid rgba(223,201,143,.5); border-radius:50%; }
.centered-action { margin:2rem 0 0; text-align:center; }
.draft-notice { margin:1.5rem 0; border-left:4px solid var(--gold-500); }
.auth-main { min-height:calc(100vh - 86px); padding:clamp(3rem,7vw,6rem) 0; background:linear-gradient(135deg,var(--blue-050),var(--blue-100)); }
.auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.85fr); gap:2rem; align-items:stretch; }
.auth-card { padding:clamp(1.5rem,5vw,3.25rem); border:1px solid var(--line); border-radius:var(--radius-xl); background:#fff; box-shadow:var(--shadow); }
.auth-art-panel { overflow:hidden; margin:0; border-radius:var(--radius-xl); box-shadow:var(--shadow); }
.auth-art-panel img { width:100%; height:100%; object-fit:cover; }
.narrow-auth-container { max-width:720px; }
.auth-form { display:grid; gap:.65rem; margin-top:1.7rem; }
.auth-form label:not(.checkbox-row) { color:var(--blue-950); font-weight:700; }
.auth-form input[type="text"], .auth-form input[type="password"], .auth-form input[type="email"] { width:100%; min-height:50px; padding:.75rem .9rem; border:1px solid #b8c8d7; border-radius:10px; font:inherit; }
.auth-form input:focus { outline:3px solid rgba(68,123,187,.25); border-color:var(--blue-700); }
.checkbox-row { display:flex; gap:.6rem; align-items:center; margin:.4rem 0 .8rem; }
.field-validation, .validation-summary { color:#8f1f1f; }
.validation-summary:empty, .field-validation:empty { display:none; }
.auth-help { margin-top:1.5rem; background:var(--blue-050); }
.not-found-main { min-height:70vh; display:grid; place-items:center; padding:5rem 0; text-align:center; }
.not-found-layout { max-width:760px; }
.not-found-layout img { width:170px; margin:0 auto 1.5rem; filter:drop-shadow(0 14px 28px rgba(11,36,66,.15)); }
.giving-hero { min-height:62vh; display:grid; align-items:center; }
.privacy-content .draft-notice { max-width:760px; }
.footer-logo { width:190px; height:190px; filter:drop-shadow(0 16px 28px rgba(0,0,0,.28)); }
@media (max-width: 1180px) { .site-nav { gap:.55rem; } .site-nav a { font-size:.84rem; } }
@media (max-width: 900px) {
  .site-nav .nav-action { width:100%; text-align:center; }
  .page-hero-layout, .auth-layout { grid-template-columns:1fr; }
  .protected-category-grid { grid-template-columns:1fr; }
  .auth-art-panel { max-height:480px; }
}
@media (max-width: 720px) {
  .library-category-grid { grid-template-columns:1fr; }
  .category-card:last-child { grid-column:auto; }
}

/* ============================================================
   Identity, household, and leadership administration — Stage 3C
   ============================================================ */
.page-heading-row { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:2rem; }
.metric-card { display:flex; min-height:130px; flex-direction:column; justify-content:center; padding:1.4rem; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; box-shadow:var(--shadow-soft); }
.metric-card strong { color:var(--blue-950); font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(1.4rem,2.5vw,2rem); }
.metric-card span { margin-top:.35rem; color:var(--muted); }
.admin-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.admin-link-card { display:flex; min-height:165px; flex-direction:column; justify-content:center; padding:1.6rem; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; color:inherit; text-decoration:none; box-shadow:var(--shadow-soft); transition:transform .18s ease,box-shadow .18s ease; }
.admin-link-card:hover { transform:translateY(-2px); box-shadow:var(--shadow); }
.admin-link-card strong { margin-bottom:.5rem; color:var(--blue-950); font-family:"Libre Baskerville",Georgia,serif; font-size:1.25rem; }
.admin-link-card span { color:var(--muted); }
.admin-card { padding:clamp(1.4rem,3vw,2rem); border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; box-shadow:var(--shadow-soft); }
.admin-card h2:first-child { margin-top:0; }
.admin-form { display:grid; gap:1.35rem; }
.admin-form fieldset { padding:1.3rem; border:1px solid var(--line); border-radius:var(--radius-md); }
.admin-form legend { padding:0 .45rem; color:var(--blue-950); font-family:"Libre Baskerville",Georgia,serif; font-weight:700; }
.compact-form { gap:.9rem; }
.form-grid { display:grid; gap:1rem; }
.form-grid.two-column { grid-template-columns:repeat(2,minmax(0,1fr)); }
.span-two { grid-column:1/-1; }
.field-group { display:grid; gap:.4rem; }
.field-group label { color:var(--blue-950); font-weight:700; }
.field-group input,.field-group select,.field-group textarea,.admin-form select,.admin-form textarea { width:100%; padding:.72rem .85rem; border:1px solid #b8c8d7; border-radius:10px; background:#fff; color:var(--text); font:inherit; }
.field-group input:focus,.field-group select:focus,.field-group textarea:focus { outline:3px solid rgba(68,123,187,.25); border-color:var(--blue-700); }
.form-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.form-help,.muted { color:var(--muted); font-size:.94rem; }
.table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-soft); }
.data-table { width:100%; border-collapse:collapse; min-width:780px; }
.data-table th,.data-table td { padding:1rem; border-bottom:1px solid var(--line); vertical-align:top; text-align:left; }
.data-table th { color:var(--blue-950); background:var(--blue-050); font-size:.9rem; letter-spacing:.03em; }
.data-table tbody tr:last-child td { border-bottom:0; }
.action-cell { display:flex; flex-wrap:wrap; gap:.55rem; }
.text-button { padding:0; border:0; background:none; color:var(--blue-700); font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; }
.danger-text { color:#9b2525; }
.button-danger { color:#fff; background:#9b2525; border-color:#9b2525; }
.status-pill { display:inline-flex; margin:.1rem .25rem .1rem 0; padding:.2rem .55rem; border-radius:999px; font-size:.78rem; font-weight:750; }
.status-good { color:#174f32; background:#dff3e7; }
.status-warning { color:#694a00; background:#fff0c2; }
.status-danger { color:#7c2020; background:#f9dddd; }
.success-notice,.temporary-password-panel { margin:0 0 1.2rem; padding:1rem 1.2rem; border:1px solid #a8d8b8; border-radius:var(--radius-md); background:#edf9f1; color:#174f32; }
.temporary-password-panel { border-color:var(--gold-500); background:#fff8df; color:var(--blue-950); }
.temporary-password-panel code { display:block; margin:.8rem 0; padding:.8rem; border-radius:8px; background:#fff; font-size:1.15rem; overflow-wrap:anywhere; }
.split-admin-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:2rem; align-items:start; }
.split-admin-layout.wide-main { grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr); }
.stacked-admin-panels { display:grid; gap:1.2rem; }
.admin-list { display:grid; gap:.7rem; }
.admin-list-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; color:inherit; text-decoration:none; }
.admin-list-item span:first-child { display:grid; gap:.2rem; }
.admin-list-item small { display:block; color:var(--muted); }
.static-item { cursor:default; }
.section-subheading { margin-top:2.3rem; }
.record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.3rem 0; }
.record-grid div { padding:1rem; border:1px solid var(--line); border-radius:var(--radius-md); background:var(--blue-050); }
.record-grid dt { color:var(--muted); font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.record-grid dd { margin:.35rem 0 0; color:var(--blue-950); font-weight:650; }
.setup-steps { display:grid; gap:.8rem; padding-left:1.25rem; }
.secret-key,.breakable-code { display:inline-block; padding:.35rem .5rem; border-radius:6px; background:var(--blue-050); overflow-wrap:anywhere; }
.technical-detail { margin:1rem 0; }
.recovery-code-panel { margin-top:1.2rem; }
.recovery-code-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; padding:0; list-style:none; }
.recovery-code-list code { display:block; padding:.65rem; border:1px solid var(--line); border-radius:8px; background:var(--blue-050); text-align:center; }
.form-divider { display:flex; align-items:center; gap:.7rem; color:var(--muted); }
.form-divider::before,.form-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.danger-zone { margin-top:1rem; }
@media (max-width:1000px) { .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-link-grid { grid-template-columns:1fr 1fr; } .split-admin-layout,.split-admin-layout.wide-main { grid-template-columns:1fr; } }
@media (max-width:720px) { .page-heading-row { align-items:flex-start; flex-direction:column; } .metric-grid,.admin-link-grid,.form-grid.two-column,.record-grid,.recovery-code-list { grid-template-columns:1fr; } .span-two { grid-column:auto; } }

/* ============================================================
   Stage 3C usability repair — navigation and MFA enrollment
   ============================================================ */
.header-inner {
  width: min(calc(100% - 2rem), 1500px);
}

.site-nav {
  justify-content: flex-end;
}

.site-nav a {
  flex: 0 0 auto;
  white-space: nowrap;
}

.security-banner {
  border-bottom: 1px solid #e2c46e;
  background: #fff8df;
  color: var(--blue-950);
}

.security-banner-inner {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 0.65rem;
}

.security-banner-inner div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
}

.security-banner-inner strong {
  color: var(--blue-950);
}

.security-banner-inner a {
  flex: 0 0 auto;
  font-weight: 750;
}

.error-notice {
  margin: 0 0 1.2rem;
  padding: 1rem 1.2rem;
  border: 1px solid #dfaaaa;
  border-radius: var(--radius-md);
  background: #fff0f0;
  color: #7c2020;
}

.mfa-enrollment-card {
  overflow: hidden;
}

.mfa-setup-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(1.5rem, 5vw, 3.5rem);
  align-items: start;
}

.mfa-qr-column {
  text-align: center;
}

.mfa-qr-code {
  width: min(100%, 330px);
  margin: 1.25rem auto;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.mfa-qr-code svg {
  display: block;
  width: 100%;
  height: auto;
}

.setup-steps {
  padding-left: 1.35rem;
}

.setup-steps li {
  margin-bottom: 0.75rem;
}

.technical-detail {
  margin: 1rem 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--blue-050);
}

.technical-detail summary {
  color: var(--blue-950);
  font-weight: 700;
  cursor: pointer;
}

.nested-detail {
  margin-bottom: 0;
  background: #fff;
}

.secret-key,
.breakable-code {
  display: block;
  margin-top: 0.7rem;
  padding: 0.8rem;
  border-radius: 8px;
  background: #fff;
  color: var(--blue-950);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mfa-skip-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 2rem;
  padding: 1.2rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--blue-050);
}

.mfa-skip-panel p {
  margin: 0.25rem 0 0;
}

button[aria-busy="true"] {
  cursor: wait;
  opacity: 0.78;
}

@media (max-width: 1360px) {
  .site-nav {
    overflow-y: auto;
  }
}

@media (max-width: 800px) {
  .security-banner-inner,
  .mfa-skip-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .security-banner-inner a,
  .mfa-skip-panel .button {
    width: 100%;
    text-align: center;
  }

  .mfa-setup-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Stage 3C portal navigation, household repair, and member UI
   ============================================================ */
.member-nav-shell {
  border-top: 1px solid rgba(31, 79, 143, 0.1);
  border-bottom: 1px solid rgba(31, 79, 143, 0.14);
  background: rgba(255, 255, 255, 0.92);
}

.member-nav-inner {
  width: min(calc(100% - 2rem), 1500px);
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.member-nav-title {
  flex: 0 0 auto;
  color: var(--gold-600);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.member-nav {
  min-width: 0;
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
  gap: 0.15rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.member-nav a,
.member-nav-signout button {
  min-height: 47px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 0.4rem 0.9rem;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--blue-900);
  font: inherit;
  font-size: 0.91rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.member-nav a:hover,
.member-nav a:focus-visible,
.member-nav a.is-active,
.member-nav-signout button:hover,
.member-nav-signout button:focus-visible {
  color: var(--blue-950);
  border-bottom-color: var(--gold-500);
  background: var(--blue-050);
}

.member-nav-signout {
  flex: 0 0 auto;
  margin: 0;
}

.member-nav-signout button {
  color: var(--muted);
}

.portal-page {
  padding: clamp(2.2rem, 5vw, 4.5rem) 0 clamp(4rem, 7vw, 7rem);
  background:
    linear-gradient(rgba(31, 79, 143, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 79, 143, 0.035) 1px, transparent 1px),
    var(--blue-050);
  background-size: 70px 70px;
}

.portal-container {
  max-width: 1220px;
}

.portal-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 1.5rem;
  color: var(--muted);
  font-size: 0.91rem;
}

.portal-breadcrumbs a {
  color: var(--blue-800);
  font-weight: 700;
  text-decoration: none;
}

.portal-breadcrumbs a:hover,
.portal-breadcrumbs a:focus-visible {
  text-decoration: underline;
}

.portal-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(1.8rem, 4vw, 3rem);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(31, 79, 143, 0.18);
}

.portal-page-header h1 {
  max-width: 900px;
  margin-bottom: 0.55rem;
  font-size: clamp(2.25rem, 4.7vw, 4rem);
  letter-spacing: -0.035em;
}

.portal-page-header p:last-child {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 1.08rem;
}

.portal-welcome-header h1 {
  font-size: clamp(2.35rem, 4.8vw, 4.25rem);
}

.portal-overview {
  margin-top: 1.5rem;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border: 1px solid rgba(31, 79, 143, 0.14);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 12px 32px rgba(11, 36, 66, 0.055);
}

.portal-section-heading,
.portal-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.portal-section-heading {
  margin-bottom: 1.2rem;
}

.portal-section-heading h2,
.portal-panel-heading h2 {
  margin-bottom: 0;
  font-size: clamp(1.45rem, 2.8vw, 2.15rem);
}

.portal-section-heading .eyebrow,
.portal-panel-heading .eyebrow {
  margin-bottom: 0.25rem;
}

.summary-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.summary-list > div {
  min-height: 105px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem 1.15rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.summary-list dt {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.summary-list dd {
  margin: 0.35rem 0 0;
  color: var(--blue-950);
  font-size: 1.12rem;
  font-weight: 700;
}

.portal-action-list {
  border-top: 1px solid var(--line);
}

.portal-action-list > a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0.35rem;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}

.portal-action-list > a:hover,
.portal-action-list > a:focus-visible {
  background: var(--blue-050);
}

.portal-action-list strong,
.portal-action-list small {
  display: block;
}

.portal-action-list strong {
  color: var(--blue-950);
  font-size: 1.08rem;
}

.portal-action-list small {
  margin-top: 0.15rem;
  color: var(--muted);
  font-size: 0.93rem;
}

.portal-action-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--blue-200);
  border-radius: 50%;
  background: var(--blue-050);
  color: var(--blue-800);
  font-weight: 800;
}

.household-summary-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 1.25rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--line);
}

.household-summary-bar > div {
  padding: 0.9rem 1.1rem;
  background: #fff;
}

.household-summary-bar span,
.household-summary-bar strong {
  display: block;
}

.household-summary-bar span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.household-summary-bar strong {
  margin-top: 0.2rem;
  color: var(--blue-950);
}

.portal-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  gap: 1.25rem;
  align-items: start;
}

.portal-panel {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(31, 79, 143, 0.14);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 32px rgba(11, 36, 66, 0.055);
}

.count-badge {
  min-width: 2.2rem;
  height: 2.2rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--blue-100);
  color: var(--blue-900);
  font-weight: 800;
}

.member-roster {
  margin-top: 1rem;
  border-top: 1px solid var(--line);
}

.member-roster-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.member-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--blue-100);
  color: var(--blue-900);
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 700;
}

.member-roster-item strong,
.member-roster-item span {
  display: block;
}

.member-roster-item strong {
  color: var(--blue-950);
}

.member-roster-item > div:nth-child(2) span {
  color: var(--muted);
  font-size: 0.88rem;
}

.member-meta {
  text-align: right;
  color: var(--muted);
  font-size: 0.85rem;
}

.portal-help {
  margin: 1rem 0;
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--gold-500);
  background: #fff9e8;
  color: var(--text);
  font-size: 0.94rem;
}

.managed-child-list {
  border-top: 1px solid var(--line);
}

.managed-child-list > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}

.managed-child-list strong,
.managed-child-list small {
  display: block;
}

.managed-child-list strong {
  color: var(--blue-950);
}

.managed-child-list small {
  margin-top: 0.15rem;
  color: var(--muted);
}

.inline-empty-state,
.empty-state {
  color: var(--muted);
}

.inline-empty-state {
  padding: 1.1rem 0;
}

.empty-state {
  text-align: center;
}

.portal-action-row {
  margin: 1.2rem 0 0;
}

.child-entry-card {
  scroll-margin-top: 180px;
  border-color: rgba(181, 139, 55, 0.55);
  background: #fffdf5;
}

@media (max-width: 1050px) {
  .summary-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-columns,
  .household-summary-bar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .member-nav-inner {
    gap: 0.35rem;
  }

  .member-nav-title {
    display: none;
  }

  .member-nav-signout {
    display: none;
  }

  .portal-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-page-header .button {
    width: 100%;
  }

  .member-roster-item {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .member-meta {
    grid-column: 2;
    text-align: left;
  }
}

@media (max-width: 560px) {
  .summary-list {
    grid-template-columns: 1fr;
  }

  .portal-overview,
  .portal-panel {
    padding: 1.1rem;
    border-radius: 14px;
  }

  .portal-action-list > a {
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 0.7rem;
  }
}

/* ============================================================
   Stage 3D official member record portal
   ============================================================ */
.portal-container-narrow {
  max-width: 980px;
}

.record-header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.75rem;
}

.record-summary-panel {
  margin-bottom: 1.25rem;
}

.record-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 1rem 0 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.record-detail-grid > div {
  min-height: 104px;
  padding: 1rem 1.1rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.record-detail-grid dt,
.record-contact-list dt,
.record-entry dt,
.correction-history dt {
  color: var(--muted);
  font-size: 0.79rem;
  font-weight: 750;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.record-detail-grid dd,
.record-contact-list dd,
.record-entry dd,
.correction-history dd {
  margin: 0.35rem 0 0;
  color: var(--blue-950);
}

.record-detail-grid dd {
  font-weight: 700;
}

.record-badge-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
}

.status-neutral {
  color: var(--blue-900);
  background: var(--blue-100);
}

.record-protection-note {
  margin: 1rem 0 0;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--gold-500);
  background: #fff9e8;
  color: var(--text);
}

.record-protection-note strong,
.record-protection-note p {
  display: block;
}

.record-protection-note p {
  margin: 0.25rem 0 0;
}

.record-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.25rem;
  align-items: start;
}

.record-layout-form {
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
}

.record-contact-list {
  margin: 1rem 0 0;
  border-top: 1px solid var(--line);
}

.record-contact-list > div {
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line);
}

.record-contact-list dd {
  white-space: pre-line;
}

.record-empty {
  margin-top: 1rem;
  padding: 1.25rem;
  border: 1px dashed var(--blue-200);
  border-radius: 14px;
  background: var(--blue-050);
  color: var(--muted);
}

.record-empty p {
  margin: 0 0 0.8rem;
}

.record-empty p:last-child {
  margin-bottom: 0;
}

.record-entry-list,
.record-note-list,
.record-request-list,
.correction-history {
  margin-top: 1rem;
  border-top: 1px solid var(--line);
}

.record-entry,
.record-note-list > article,
.record-request-list > article,
.correction-history > article {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.record-entry > div:first-child,
.record-note-list > article > div:first-child,
.record-request-list > article > div:first-child,
.correction-history-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.record-entry > div:first-child strong,
.record-entry > div:first-child span,
.record-note-list strong,
.record-note-list time {
  display: block;
}

.record-entry > div:first-child strong,
.record-note-list strong,
.record-request-list strong,
.correction-history strong {
  color: var(--blue-950);
}

.record-entry > div:first-child span,
.record-note-list time,
.record-request-list small,
.correction-history small {
  color: var(--muted);
  font-size: 0.86rem;
}

.record-entry dl,
.correction-history dl {
  display: grid;
  gap: 0.65rem;
  margin: 0.85rem 0 0;
}

.record-entry dl > div,
.correction-history dl > div {
  padding-left: 0.8rem;
  border-left: 2px solid var(--blue-100);
}

.record-note-list p,
.record-request-list p,
.correction-history p {
  margin: 0.55rem 0 0;
}

.leadership-response {
  margin-top: 0.85rem !important;
  padding: 0.8rem 0.9rem;
  border-radius: 10px;
  background: var(--blue-050);
}

.correction-history-heading > div strong,
.correction-history-heading > div small {
  display: block;
}

@media (max-width: 1050px) {
  .record-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .record-layout,
  .record-layout-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .record-header-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .record-header-actions .button {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .record-detail-grid {
    grid-template-columns: 1fr;
  }

  .record-entry > div:first-child,
  .record-note-list > article > div:first-child,
  .record-request-list > article > div:first-child,
  .correction-history-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }
}

/* ============================================================
   Stage 4 consolidated functional baseline
   ============================================================ */
.split-heading,
.button-row,
.form-actions,
.portal-section-heading,
.inline-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.button-row { justify-content: flex-end; }
.narrow-form { max-width: 980px; }
.form-card {
  display: grid;
  gap: 0.85rem;
  padding: clamp(1.1rem, 2vw, 1.7rem);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 36px rgba(13, 39, 72, 0.06);
}
.embedded-form { margin-top: 1rem; box-shadow: none; background: var(--blue-050); }
.compact-form { margin-top: 1rem; }
.form-card label,
.filter-bar label { color: var(--blue-950); font-weight: 700; }
.form-card input,
.form-card select,
.form-card textarea,
.filter-bar input,
.filter-bar select,
.inline-action-form input,
.inline-action-form select,
.search-form input,
.inline-filter input {
  width: 100%;
  padding: 0.72rem 0.8rem;
  border: 1px solid var(--blue-200);
  border-radius: 9px;
  color: var(--blue-950);
  background: #fff;
  font: inherit;
}
.form-card textarea { resize: vertical; }
.form-grid { display: grid; gap: 1rem; }
.form-grid.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.span-two { grid-column: span 2; }
.field-help { color: var(--muted); line-height: 1.45; }
.content-editor { min-height: 22rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; line-height: 1.6; }

.filter-bar {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) minmax(160px, 0.4fr) auto auto;
  gap: 0.8rem;
  align-items: end;
  margin: 1rem 0 1.5rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.filter-bar label span { display: block; margin-bottom: 0.35rem; }
.table-shell { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.table-shell .data-table { width: 100%; border-collapse: collapse; }
.table-shell .data-table th,
.table-shell .data-table td { padding: 0.85rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.table-shell .data-table th { color: var(--blue-950); background: var(--blue-050); font-size: 0.82rem; letter-spacing: 0.035em; text-transform: uppercase; }
.table-shell .data-table small { display: block; margin-top: 0.2rem; color: var(--muted); }

.admin-tabs {
  display: flex;
  gap: 0.4rem;
  overflow-x: auto;
  margin-bottom: 1rem;
  padding: 0.45rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.admin-tabs a { flex: 0 0 auto; padding: 0.55rem 0.75rem; border-radius: 8px; color: var(--blue-900); font-weight: 700; }
.admin-tabs a:hover { background: var(--blue-050); }
.portal-panel { scroll-margin-top: 10rem; }
.compact-summary { margin-top: 1rem; }
.record-list { display: grid; gap: 0.7rem; margin-top: 1rem; }
.record-list article { padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.record-list article > div { display: flex; justify-content: space-between; gap: 1rem; }
.record-list article span { color: var(--muted); }
.inline-action-form { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.inline-action-form input,
.inline-action-form select { width: auto; min-width: 120px; padding: 0.42rem 0.55rem; }
.link-button { padding: 0; border: 0; color: var(--blue-700); background: none; font: inherit; font-weight: 700; cursor: pointer; }
.danger-link { color: #9f2c2c; }
.admin-disclosure { margin-top: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.admin-disclosure > summary { padding: 1rem; color: var(--blue-950); font-weight: 800; cursor: pointer; }
.admin-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.admin-disclosure > .form-card { border: 0; border-radius: 0 0 14px 14px; }
.timeline-list { display: grid; gap: 0.7rem; }
.timeline-list article { display: grid; grid-template-columns: 150px 1fr; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--line); }
.timeline-list time { color: var(--muted); }

.library-work-list { display: grid; gap: 0.55rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.library-work-list a { display: grid; gap: 0.15rem; padding: 0.75rem; border-radius: 10px; background: var(--blue-050); }
.library-work-list a span,
.library-work-list a small { color: var(--muted); }
.compact-work-list a { padding: 0.5rem; }
.reading-page { background: linear-gradient(180deg, var(--blue-050), #fff 320px); }
.reading-container { max-width: 900px; padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: 5rem; }
.reading-header { max-width: 760px; margin: 2rem 0; }
.reading-header h1,
.library-reader h1 { color: var(--blue-950); }
.reading-byline,
.reader-work-title { color: var(--muted); }
.chapter-list { display: grid; gap: 0.65rem; padding: 0; list-style: none; counter-reset: chapter; }
.chapter-list a { display: grid; grid-template-columns: minmax(90px, 0.25fr) 1fr auto; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.chapter-list a > span:first-child { color: var(--gold-700); font-size: 0.82rem; font-weight: 800; text-transform: uppercase; }
.library-reader { margin-top: 2rem; padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(13, 39, 72, 0.08); }
.library-reader header { margin-bottom: 2rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.library-prose { color: #172a42; font-family: "Libre Baskerville", Georgia, serif; font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.9; }
.library-prose p { margin: 0 0 1.35em; }
.reader-pagination { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.4rem; }
.reader-pagination a { display: grid; gap: 0.2rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.reader-pagination .next-link { text-align: right; }
.search-form { display: grid; grid-template-columns: 1fr auto; gap: 0.7rem; margin: 1.5rem 0; }
.search-results { display: grid; gap: 0.75rem; }
.search-results article { padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.search-results h2 { margin: 0.2rem 0; font-size: 1.25rem; }
.search-summary { color: var(--muted); }

.revision-list { display: grid; gap: 0.8rem; }
.revision-card { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.revision-card summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; cursor: pointer; }
.revision-card > p,
.revision-preview { margin: 0; padding: 1rem; border-top: 1px solid var(--line); }
.revision-preview { max-height: 34rem; overflow: auto; font-size: 0.95rem; }

.report-grid .admin-link-card { min-height: 150px; }
.warning-banner { border-color: #e7bc54; background: #fff7dd; }
.inline-filter { justify-content: flex-end; }
.inline-filter input { width: 110px; }
.empty-state { padding: 1.4rem; border: 1px dashed var(--blue-200); border-radius: 14px; background: var(--blue-050); text-align: center; }
.empty-state h2,
.empty-state h3 { margin-top: 0; color: var(--blue-950); }
.muted-text { color: var(--muted); }

@media (max-width: 1000px) {
  .form-grid.three-column { grid-template-columns: 1fr 1fr; }
  .filter-bar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .form-grid.two-column,
  .form-grid.three-column,
  .filter-bar,
  .reader-pagination,
  .search-form { grid-template-columns: 1fr; }
  .span-two { grid-column: auto; }
  .split-heading { align-items: flex-start; }
  .button-row { width: 100%; justify-content: flex-start; }
  .button-row .button { flex: 1 1 auto; }
  .chapter-list a { grid-template-columns: 1fr auto; }
  .chapter-list a > span:first-child { grid-column: 1 / -1; }
  .timeline-list article { grid-template-columns: 1fr; gap: 0.25rem; }
  .record-list article > div { flex-direction: column; gap: 0.25rem; }
}

/* ============================================================
   Stage 4.1 member application workspace and submissions
   ============================================================ */
.portal-application-page {
  padding: clamp(1.5rem, 3vw, 2.6rem) 0 5rem;
  background: #f6f8fb;
}

.portal-application-page .portal-container { max-width: 1280px; }
.portal-application-page .portal-breadcrumbs { margin-bottom: 1rem; }
.portal-application-page .portal-page-header,
.app-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
  padding: 0 0 1.15rem;
  border-bottom: 1px solid var(--line);
}
.portal-application-page .portal-page-header h1,
.app-page-header h1 {
  margin: 0 0 0.35rem;
  font-size: clamp(1.85rem, 3.4vw, 2.7rem);
  letter-spacing: -0.025em;
}
.portal-application-page .portal-page-header p:last-child,
.app-page-header p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
}
.portal-application-page .portal-page-header .eyebrow,
.app-page-header .eyebrow { margin-bottom: 0.25rem; }

.portal-application-page .portal-panel,
.portal-application-page .portal-overview {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.portal-application-page .portal-columns,
.portal-application-page .record-layout { gap: 2rem; }
.portal-application-page .portal-panel + .portal-panel,
.portal-application-page .app-section + .app-section { margin-top: 1.75rem; }
.portal-application-page .portal-panel-heading,
.portal-application-page .portal-section-heading,
.app-section-heading,
.form-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}
.portal-application-page .portal-panel-heading h2,
.portal-application-page .portal-section-heading h2,
.app-section-heading h2,
.form-section-heading h2 {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}
.app-section-heading p,
.form-section-heading p { margin: 0.2rem 0 0; color: var(--muted); }

.workspace-tabs {
  display: flex;
  gap: 0;
  overflow-x: auto;
  margin: 0 0 1.25rem;
  border-bottom: 1px solid var(--line);
}
.workspace-tabs a {
  flex: 0 0 auto;
  padding: 0.7rem 0.95rem;
  border-bottom: 3px solid transparent;
  color: var(--blue-800);
  font-weight: 700;
  white-space: nowrap;
}
.workspace-tabs a:hover,
.workspace-tabs a:focus-visible,
.workspace-tabs a.is-active {
  color: var(--blue-950);
  border-bottom-color: var(--gold-500);
  background: var(--blue-050);
}

.app-toolbar {
  display: flex;
  align-items: end;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.app-toolbar label { min-width: 150px; color: var(--blue-950); font-size: 0.82rem; font-weight: 750; }
.app-toolbar label > span { display: block; margin-bottom: 0.25rem; }
.app-toolbar input,
.app-toolbar select {
  width: 100%;
  min-height: 40px;
  padding: 0.45rem 0.65rem;
  border: 1px solid #b7c5d3;
  border-radius: 7px;
  background: #fff;
  color: var(--text);
  font: inherit;
}
.app-toolbar .toolbar-search { flex: 1 1 260px; }
.app-toolbar .toolbar-count { margin-left: auto; padding: 0.5rem; color: var(--muted); white-space: nowrap; }
.compact-toolbar { justify-content: flex-start; }
.compact-toolbar label { min-width: 110px; }

.responsive-table-shell { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.responsive-table-shell:focus-visible { outline: 3px solid rgba(31, 79, 143, 0.28); outline-offset: 2px; }
.app-table { width: 100%; border-collapse: collapse; }
.app-table th,
.app-table td { padding: 0.72rem 0.8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.app-table th { background: #f1f5f9; color: var(--blue-950); font-size: 0.76rem; letter-spacing: 0.035em; text-transform: uppercase; }
.app-table tbody tr:last-child td { border-bottom: 0; }
.app-table tbody tr:hover { background: #fbfcfe; }
.app-table small { display: block; margin-top: 0.15rem; color: var(--muted); }
.table-primary-link { color: var(--blue-900); font-weight: 750; }

.status-info { color: #174f7d; background: #e5f2fb; }
.status-danger { color: #8c2525; background: #fdeaea; }

.compact-empty-state {
  padding: 1.5rem;
  border: 1px dashed #aebdca;
  border-radius: 10px;
  background: #fff;
  text-align: center;
}
.compact-empty-state h2,
.compact-empty-state h3 { margin: 0 0 0.35rem; color: var(--blue-950); }
.compact-empty-state p { margin: 0 0 0.85rem; color: var(--muted); }

.application-form { display: grid; gap: 1.5rem; }
.form-section,
.app-section {
  padding: 0 0 1.5rem;
  border-bottom: 1px solid var(--line);
}
.form-section:last-of-type,
.app-section:last-of-type { border-bottom: 0; }
.compact-form-grid { gap: 0.85rem 1rem; }
.application-form .field-group { display: grid; gap: 0.35rem; }
.application-form label { color: var(--blue-950); font-weight: 750; }
.application-form input,
.application-form select,
.application-form textarea {
  width: 100%;
  padding: 0.68rem 0.78rem;
  border: 1px solid #afbecc;
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font: inherit;
}
.application-form input:focus,
.application-form select:focus,
.application-form textarea:focus,
.app-toolbar input:focus,
.app-toolbar select:focus {
  border-color: var(--blue-700);
  outline: 3px solid rgba(31, 79, 143, 0.18);
  outline-offset: 1px;
}
.application-form small { color: var(--muted); }
.long-form-editor { min-height: 22rem; line-height: 1.55; resize: vertical; }
.sticky-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.5rem;
  padding: 0.85rem 0;
  border-top: 1px solid var(--line);
  background: rgba(246, 248, 251, 0.96);
  backdrop-filter: blur(8px);
}
.sticky-form-actions > div:first-child { color: var(--muted); font-size: 0.88rem; }
.submission-form-status { display: none; margin-bottom: 1rem; padding: 0.8rem 0.9rem; border-radius: 8px; }
.submission-form-status.is-visible { display: block; }
.submission-form-status.is-info { color: #174f7d; background: #e5f2fb; }
.submission-form-status.is-success { color: #205e3b; background: #e7f6ed; }
.submission-form-status.is-error { color: #8c2525; background: #fdeaea; }
.input-validation-error { border-color: #b52b2b !important; outline-color: rgba(181, 43, 43, 0.15) !important; }
.field-validation-error { color: #9b2424; font-weight: 650; }
.validation-summary:empty { display: none; }
.validation-summary-errors { padding: 0.85rem 1rem; border-left: 4px solid #b52b2b; background: #fdeaea; color: #762020; }
.validation-summary-errors p { margin: 0 0 0.35rem; font-weight: 750; }
.validation-summary-errors ul { margin: 0; padding-left: 1.2rem; }

.attachment-list { border-top: 1px solid var(--line); }
.attachment-list h3 { margin: 1rem 0 0.35rem; font-size: 1rem; }
.attachment-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--line);
}
.attachment-list strong,
.attachment-list small { display: block; }
.attachment-list small { margin-top: 0.1rem; color: var(--muted); }

.submission-status-bar,
.giving-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 1.5rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.submission-status-bar > div,
.giving-summary-strip > div { padding: 0.8rem 0.9rem; border-right: 1px solid var(--line); }
.submission-status-bar > div:last-child,
.giving-summary-strip > div:last-child { border-right: 0; }
.submission-status-bar span,
.submission-status-bar strong,
.giving-summary-strip span,
.giving-summary-strip strong { display: block; }
.submission-status-bar > div > span,
.giving-summary-strip span { color: var(--muted); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; }
.submission-status-bar strong,
.giving-summary-strip strong { margin-top: 0.2rem; color: var(--blue-950); }
.giving-summary-strip .giving-total strong { font-size: 1.5rem; }

.app-notice { margin-bottom: 1.25rem; padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.app-notice strong { color: var(--blue-950); }
.app-notice p { margin: 0.2rem 0 0; }
.submission-summary { white-space: pre-line; }
.submission-prose {
  max-height: 44rem;
  overflow: auto;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  white-space: pre-wrap;
  line-height: 1.7;
}
.activity-timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.activity-timeline li { padding: 0.75rem 0; border-bottom: 1px solid var(--line); }
.activity-timeline li > div { display: flex; justify-content: space-between; gap: 1rem; }
.activity-timeline time,
.activity-timeline small { color: var(--muted); font-size: 0.83rem; }
.activity-timeline p { margin: 0.25rem 0; }
.record-actions-bar { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.record-actions-bar form { margin: 0; }

.member-home-header { align-items: center; }
.member-record-reference { color: var(--muted); font-size: 0.85rem; white-space: nowrap; }
.member-record-reference strong { display: block; color: var(--blue-950); }
.priority-actions { margin-bottom: 1.75rem; }
.compact-action-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; }
.compact-action-row a { display: flex; align-items: center; gap: 0.65rem; min-height: 58px; padding: 0.75rem 0.85rem; border-right: 1px solid var(--line); color: var(--blue-900); }
.compact-action-row a:last-child { border-right: 0; }
.compact-action-row a:hover,
.compact-action-row a:focus-visible { background: var(--blue-050); }
.compact-action-row span { color: var(--gold-700); font-size: 1.15rem; }
.member-home-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr); gap: 2rem; align-items: start; }
.member-home-sidebar { display: grid; gap: 1.5rem; }
.activity-list { border-top: 1px solid var(--line); }
.activity-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--line); color: inherit; }
.activity-list strong,
.activity-list small { display: block; }
.activity-list strong { color: var(--blue-950); }
.activity-list small { margin-top: 0.12rem; color: var(--muted); }
.compact-summary-list { margin: 0; border-top: 1px solid var(--line); }
.compact-summary-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.65rem 0; border-bottom: 1px solid var(--line); }
.compact-summary-list dt { color: var(--muted); }
.compact-summary-list dd { margin: 0; color: var(--blue-950); font-weight: 700; text-align: right; }
.notice-list { display: grid; border-top: 1px solid var(--line); }
.notice-list a,
.notice-list p { padding: 0.7rem 0; border-bottom: 1px solid var(--line); }
.notice-list strong,
.notice-list span { display: block; }
.notice-list span { margin-top: 0.12rem; color: var(--muted); }
.notice-list p { margin: 0; color: var(--muted); }

.review-queue-count { min-width: 120px; color: var(--muted); text-align: right; }
.review-queue-count strong { display: block; color: var(--blue-950); font-size: 1.5rem; }
.review-workspace { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.5fr); gap: 2rem; align-items: start; }
.review-action-pane { position: sticky; top: 9rem; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.review-action-pane h2 { margin-top: 0; font-size: 1.25rem; }
.compact-review-form { gap: 1rem; }
.review-action-buttons { display: grid; gap: 0.55rem; }
.compact-definition-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 1.5rem; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; }
.compact-definition-grid > div { padding: 0.75rem 0.85rem; border-right: 1px solid var(--line); }
.compact-definition-grid > div:last-child { border-right: 0; }
.compact-definition-grid dt { color: var(--muted); font-size: 0.75rem; font-weight: 750; text-transform: uppercase; }
.compact-definition-grid dd { margin: 0.2rem 0 0; color: var(--blue-950); font-weight: 700; }
.compact-definition-grid small { color: var(--muted); font-weight: 400; }

@media (max-width: 1000px) {
  .compact-action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-action-row a:nth-child(2) { border-right: 0; }
  .compact-action-row a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .member-home-grid,
  .review-workspace { grid-template-columns: 1fr; }
  .review-action-pane { position: static; }
  .submission-status-bar,
  .giving-summary-strip,
  .compact-definition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .submission-status-bar > div:nth-child(2),
  .giving-summary-strip > div:nth-child(2),
  .compact-definition-grid > div:nth-child(2) { border-right: 0; }
  .submission-status-bar > div:nth-child(-n+2),
  .giving-summary-strip > div:nth-child(-n+2),
  .compact-definition-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .app-page-header,
  .portal-application-page .portal-page-header,
  .sticky-form-actions { align-items: stretch; flex-direction: column; }
  .app-page-header .button,
  .portal-application-page .portal-page-header .button { width: 100%; }
  .app-toolbar { align-items: stretch; }
  .app-toolbar label,
  .app-toolbar .toolbar-search { flex: 1 1 100%; min-width: 100%; }
  .app-toolbar .button { flex: 1 1 auto; }
  .app-toolbar .toolbar-count { width: 100%; margin-left: 0; padding-left: 0; }
  .responsive-table-shell { max-width: 100%; overflow: visible; border: 0; background: transparent; }
  .app-table { min-width: 0 !important; max-width: 100%; }
  .app-table,
  .app-table thead,
  .app-table tbody,
  .app-table tr,
  .app-table th,
  .app-table td { display: block; }
  .app-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .app-table tr { margin-bottom: 0.75rem; padding: 0.55rem 0.75rem; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
  .app-table td { display: grid; grid-template-columns: minmax(95px, 0.35fr) minmax(0, 0.65fr); gap: 0.75rem; padding: 0.45rem 0; border: 0; }
  .app-table td::before { content: attr(data-label); color: var(--muted); font-size: 0.76rem; font-weight: 750; text-transform: uppercase; }
  .app-table td > * { min-width: 0; }

  .app-table td,
  .app-table td a,
  .app-table td button,
  .account-action-cell,
  .action-cell,
  .table-action-cell { min-width: 0; max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
  .account-action-buttons,
  .action-cell { flex-wrap: wrap; justify-content: flex-start; }
  .household-detail-workspace .table-action-cell { width: auto; text-align: left !important; }
  .sticky-form-actions .button-row { display: grid; grid-template-columns: 1fr; width: 100%; }
  .sticky-form-actions .button { width: 100%; }
  .member-home-header { align-items: flex-start; }
  .member-record-reference { white-space: normal; }
}

@media (max-width: 560px) {
  .compact-action-row,
  .submission-status-bar,
  .giving-summary-strip,
  .compact-definition-grid { grid-template-columns: 1fr; }
  .compact-action-row a,
  .compact-action-row a:nth-child(2),
  .submission-status-bar > div,
  .giving-summary-strip > div,
  .compact-definition-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .compact-action-row a:last-child,
  .submission-status-bar > div:last-child,
  .giving-summary-strip > div:last-child,
  .compact-definition-grid > div:last-child { border-bottom: 0; }
  .activity-list a,
  .attachment-list > div { align-items: flex-start; flex-direction: column; }
}

/* Stage 4.2 Library reader, contributor workflow, and hymn numbering */
[hidden] { display: none !important; }
.library-home { background: var(--cream); min-height: 70vh; }
.library-intro { background: var(--paper); border-bottom: 1px solid var(--line); padding: clamp(2rem, 5vw, 4.5rem) 0 2rem; }
.library-intro-inner { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.library-intro h1, .book-header h1, .reader-header h1 { margin: .2rem 0 .75rem; }
.library-intro p { max-width: 42rem; }
.library-search-compact { display: flex; gap: .5rem; width: min(30rem, 100%); }
.library-search-compact input, .book-index-filter input { width: 100%; }
.library-search-compact button { border: 0; border-radius: .35rem; background: var(--blue-900); color: white; padding: .7rem 1rem; font-weight: 700; }
.library-shelves { padding: 1.5rem 0 4rem; }
.library-shelf { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.library-shelf-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .65rem; }
.library-shelf-heading h2, .library-shelf-heading h3 { margin: 0; }
.library-book-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.library-book-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem .25rem; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.library-book-row:hover strong, .library-book-row:focus-visible strong { text-decoration: underline; }
.library-book-row span:first-child { display: grid; gap: .15rem; }
.library-book-row small { color: var(--muted); font-weight: 400; }
.library-empty-line { color: var(--muted); margin: .5rem 0; }
.library-protected { background: var(--blue-950); color: white; padding: 3rem 0; }
.library-protected .library-book-row { color: white; border-color: rgba(255,255,255,.18); }
.library-protected .library-shelf { border-color: rgba(255,255,255,.18); }

.book-page { background: var(--cream); min-height: 70vh; }
.book-container { max-width: 980px; padding-top: 2rem; padding-bottom: 5rem; }
.book-header { padding: clamp(1.5rem, 4vw, 3rem) 0 2rem; max-width: 760px; }
.book-header > p:last-child { font-size: 1.08rem; line-height: 1.7; color: var(--text); }
.book-index { background: var(--paper); border-top: 3px solid var(--blue-800); padding: clamp(1.25rem, 3vw, 2.25rem); }
.book-index-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.book-index-heading h2 { margin: 0; }
.book-index-filter { width: min(24rem, 100%); }
.index-group { padding-top: 1.35rem; }
.index-group h3 { margin: 0 0 .4rem; font-size: 1rem; color: var(--blue-900); }
.book-index-list { list-style: none; margin: 0; padding: 0; }
.book-index-list li { border-bottom: 1px solid var(--line); }
.book-index-list a { display: grid; grid-template-columns: 5rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .85rem .25rem; color: var(--ink); text-decoration: none; }
.book-index-list a:hover strong, .book-index-list a:focus-visible strong { text-decoration: underline; }
.index-number { font-variant-numeric: tabular-nums; color: var(--muted); text-align: right; }
.index-title { display: grid; gap: .1rem; }
.index-title small { color: var(--muted); }

.reader-page { background: var(--cream); min-height: 75vh; }
.reader-shell { max-width: 1040px; padding-top: 1.25rem; padding-bottom: 4rem; }
.reader-breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem; color: var(--muted); font-size: .92rem; }
.reader-toolbar { position: sticky; top: 0; z-index: 15; display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .65rem 1rem; border: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }
.reader-toolbar a { font-weight: 700; }
.scripture-reader { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 6vw, 5rem) clamp(1rem, 4vw, 3.5rem); background: var(--paper); box-shadow: 0 16px 44px rgba(18,52,93,.08); }
.reader-header { text-align: center; margin-bottom: 2.5rem; }
.reader-work-title { margin: .25rem 0; color: var(--muted); }
.reader-location { margin: 1.4rem 0 .2rem; font-weight: 700; color: var(--blue-800); }
.reader-attribution { margin: .25rem 0; color: var(--muted); }
.library-prose { max-width: 700px; margin: 0 auto; font-family: "Libre Baskerville", Georgia, serif; font-size: clamp(1.05rem, 2vw, 1.18rem); line-height: 1.78; color: var(--ink); }
.library-prose p { margin: 0 0 1.35em; }
.hymn-prose { white-space: normal; }
.hymn-prose p { white-space: pre-line; margin-bottom: 1.7rem; }
.reader-refrain { margin: 2.25rem 0; padding: 1.25rem 1.5rem; border-left: 3px solid var(--gold-600); background: var(--cream); }
.reader-refrain h2 { margin-top: 0; font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; }
.reader-references { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .95rem; }
.reader-copyright { margin-top: 3.5rem; padding-top: 1.4rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .88rem; line-height: 1.55; }
.reader-copyright p { margin: .35rem 0; }
.reader-pagination { max-width: 920px; margin: 1.5rem auto 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; }
.reader-pagination > div:last-child { text-align: right; }
.reader-index-link { font-weight: 700; }

.review-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 1.5rem; align-items: start; }
.review-publication { position: sticky; top: 1rem; }
.submission-prose { white-space: pre-wrap; line-height: 1.65; }
.hymn-refrain { margin-top: 1.5rem; padding: 1rem 1.25rem; border-left: 3px solid var(--gold-600); background: var(--cream); }
.agreement-text { padding: .85rem 1rem; background: var(--cream); border-left: 3px solid var(--blue-700); }
.optional-label { color: var(--muted); font-size: .85em; font-weight: 400; }

.hymn-range-list { display: grid; gap: .8rem; }
.hymn-range-row { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(4, minmax(100px, .8fr)) auto minmax(130px, auto); gap: .75rem; align-items: end; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.hymn-range-row .field-group { margin: 0; }
.compact-check { align-self: center; margin-bottom: .55rem; }
.range-usage { display: grid; gap: .4rem; justify-items: end; }
.hymn-category-create { grid-template-columns: 2fr repeat(4, 1fr); align-items: end; }

@media (max-width: 900px) {
  .library-intro-inner, .book-index-heading { align-items: stretch; flex-direction: column; }
  .review-layout { grid-template-columns: 1fr; }
  .review-publication { position: static; }
  .hymn-range-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hymn-range-row > :first-child, .range-usage { grid-column: 1 / -1; }
  .range-usage { justify-items: start; }
  .hymn-category-create { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .library-intro-inner { align-items: stretch; }
  .library-search-compact { flex-direction: column; }
  .book-index { padding: 1rem; }
  .book-index-list a { grid-template-columns: 3.2rem minmax(0, 1fr) auto; gap: .65rem; }
  .scripture-reader { margin-inline: -.5rem; box-shadow: none; }
  .reader-toolbar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .reader-pagination { grid-template-columns: 1fr 1fr; }
  .reader-index-link { grid-column: 1 / -1; grid-row: 1; text-align: center; }
  .hymn-range-row, .hymn-category-create { grid-template-columns: 1fr; }
  .hymn-range-row > *, .hymn-category-create > * { grid-column: 1; }
}

/* ============================================================
   Stage 4.3 compact application workspace and Library catalog
   ============================================================ */
:root {
  --app-container: 1480px;
  --app-radius: 10px;
  --app-shadow: 0 4px 14px rgba(11, 36, 66, 0.045);
}

/* Public Library: catalog first, with empty categories suppressed in the view. */
.library-command-header {
  padding: 2rem 0 1.4rem;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.library-command-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  align-items: end;
  gap: 2rem;
}
.library-command-header h1 {
  margin: 0.1rem 0 0.35rem;
  font-size: clamp(2.4rem, 4.2vw, 4rem);
  letter-spacing: -0.04em;
}
.library-command-header p:last-child { margin: 0; color: var(--muted); }
.library-search-compact { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem; }
.library-search-compact input {
  min-height: 42px;
  padding: 0.55rem 0.7rem;
  border: 1px solid #aebdca;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font: inherit;
}
.library-search-compact button {
  min-height: 42px;
  padding: 0.55rem 1rem;
  border: 1px solid var(--blue-900);
  border-radius: 6px;
  background: var(--blue-900);
  color: #fff;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.library-catalog { padding: 1rem 0 3.5rem; }
.library-catalog-container { max-width: 1280px; }
.library-catalog-section {
  display: grid;
  grid-template-columns: minmax(180px, 0.26fr) minmax(0, 0.74fr);
  gap: 2rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--line);
}
.library-catalog-section > header { padding-top: 0.2rem; }
.library-catalog-section > header h2,
.library-catalog-section > header h3 {
  margin: 0 0 0.2rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  letter-spacing: -0.025em;
}
.library-catalog-section > header span { color: var(--muted); font-size: 0.84rem; }
.library-book-list { border-top: 1px solid var(--line); }
.library-book-row { min-height: 54px; padding: 0.65rem 0.25rem; }
.library-book-row strong { font-size: 1rem; }
.library-book-row small { font-size: 0.86rem; line-height: 1.35; }
.library-catalog-empty { padding: 2rem 0; }
.library-catalog-empty h2 { margin-bottom: 0.35rem; font-size: 1.75rem; }
.library-protected { padding: 1.5rem 0 3rem; background: var(--blue-950); color: #fff; }
.library-protected h2,
.library-protected h3 { color: #fff; }
.library-protected-heading { margin-bottom: 0.5rem; }
.library-protected-heading h2 { margin-bottom: 0.25rem; font-size: 1.8rem; }
.library-protected-heading p { margin: 0; color: rgba(255, 255, 255, 0.72); }
.protected-catalog-section { border-bottom-color: rgba(255, 255, 255, 0.16); }
.protected-catalog-section .library-book-list,
.protected-catalog-section .library-book-row { border-color: rgba(255, 255, 255, 0.16); }
.protected-catalog-section .library-book-row { color: #fff; }
.protected-catalog-section > header span,
.protected-catalog-section .library-book-row small { color: rgba(255, 255, 255, 0.68); }

/* Book pages use the available desktop width: identity at left, index at right. */
.book-container { max-width: 1280px; padding-top: 1.25rem; padding-bottom: 3.5rem; }
.book-layout {
  display: grid;
  grid-template-columns: minmax(220px, 0.32fr) minmax(0, 0.68fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  padding-top: 1rem;
}
.book-header { position: sticky; top: 7.5rem; max-width: none; padding: 1rem 0; }
.book-header h1 { margin: 0.15rem 0 0.65rem; font-size: clamp(2.25rem, 4vw, 3.8rem); }
.book-header > p:last-child { font-size: 0.98rem; line-height: 1.55; }
.book-index { padding: 0; border: 0; background: transparent; }
.book-index-heading { min-height: 58px; padding: 0 0 0.7rem; }
.book-index-heading h2 { font-size: clamp(1.45rem, 2.4vw, 2rem); }
.book-index-heading .eyebrow { margin-bottom: 0.1rem; }
.book-index-filter input { min-height: 40px; padding: 0.5rem 0.65rem; border-radius: 6px; }
.book-index-list a { min-height: 52px; grid-template-columns: 4.5rem minmax(0, 1fr) auto; padding: 0.6rem 0.2rem; }
.index-group { margin-top: 1.2rem; }
.index-group h3 { margin-bottom: 0.35rem; font-size: 1rem; font-family: inherit; text-transform: uppercase; letter-spacing: 0.06em; }

/* Reader chrome is compact; the reading measure stays intentionally narrow. */
.reader-shell { max-width: 1200px; padding-top: 0.8rem; padding-bottom: 3rem; }
.reader-breadcrumbs { font-size: 0.84rem; }
.reader-toolbar {
  top: 5.35rem;
  min-height: 40px;
  margin-top: 0.65rem;
  padding: 0.45rem 0.7rem;
  border-radius: 6px;
  font-size: 0.88rem;
}
.scripture-reader {
  max-width: 780px;
  margin-top: 0;
  padding: 2.2rem clamp(1rem, 4vw, 3.2rem) 2.75rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.reader-header { margin-bottom: 1.5rem; padding-bottom: 1rem; }
.reader-header h1 { margin: 0.15rem 0 0.45rem; font-size: clamp(2.25rem, 4.5vw, 3.8rem); }
.reader-location { margin: 0.8rem 0 0.1rem; }
.reader-attribution { font-size: 0.9rem; }
.library-prose { font-size: clamp(1rem, 1.15vw, 1.08rem); line-height: 1.75; }
.reader-pagination { max-width: 780px; margin-top: 1rem; }
.reader-pagination a { padding: 0.65rem 0.75rem; border-radius: 7px; }

/* Member and administrative workspaces use application density, not marketing density. */
.portal-page,
.portal-application-page {
  padding: 1.35rem 0 3rem;
  background: #f5f7fa;
  background-image: none;
  font-size: 0.95rem;
  line-height: 1.45;
}
.portal-container,
.portal-application-page .portal-container { width: min(calc(100% - 2rem), var(--app-container)); max-width: var(--app-container); }
.portal-container-narrow { max-width: 1120px; }
.portal-breadcrumbs,
.portal-page .breadcrumbs { margin-bottom: 0.75rem; font-size: 0.82rem; }
.portal-page-header,
.portal-application-page .portal-page-header,
.app-page-header {
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
}
.portal-page-header h1,
.portal-welcome-header h1,
.portal-application-page .portal-page-header h1,
.app-page-header h1 {
  max-width: 950px;
  margin: 0 0 0.2rem;
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
}
.portal-page-header p:last-child,
.portal-application-page .portal-page-header p:last-child,
.app-page-header p:last-child { max-width: 850px; font-size: 0.92rem; line-height: 1.4; }
.portal-page .eyebrow { margin-bottom: 0.15rem; font-size: 0.67rem; }
.portal-page .button {
  min-height: 38px;
  padding: 0.48rem 0.85rem;
  border-radius: 7px;
  box-shadow: none;
  font-size: 0.88rem;
}
.portal-page .button:hover { transform: none; }
.portal-page .button-primary { box-shadow: 0 4px 12px rgba(31, 79, 143, 0.16); }
.workspace-tabs { margin-bottom: 0.85rem; }
.workspace-tabs a { padding: 0.5rem 0.7rem; border-bottom-width: 2px; font-size: 0.88rem; }
.portal-overview,
.portal-panel {
  margin-top: 0.85rem;
  padding: 1rem;
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow);
}
.portal-application-page .portal-panel,
.portal-application-page .portal-overview { padding: 0; }
.portal-section-heading { margin-bottom: 0.65rem; }
.portal-section-heading h2,
.portal-panel-heading h2,
.portal-application-page .portal-section-heading h2,
.app-section-heading h2 { font-size: clamp(1.2rem, 1.8vw, 1.55rem); }
.portal-section-heading p,
.portal-panel-heading p { margin-bottom: 0; }
.portal-columns,
.portal-application-page .portal-columns,
.portal-application-page .record-layout,
.member-home-grid,
.review-workspace { gap: 1.25rem; }
.member-home-sidebar { gap: 1rem; }
.priority-actions { margin-bottom: 1rem; }
.compact-action-row a { min-height: 46px; padding: 0.55rem 0.7rem; font-size: 0.9rem; }
.portal-action-list > a { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 0.7rem; padding: 0.65rem 0.2rem; }
.portal-action-icon { width: 32px; height: 32px; }
.portal-action-list strong { font-size: 0.98rem; }
.portal-action-list small { font-size: 0.84rem; }
.summary-list > div,
.record-detail-grid > div { min-height: 78px; padding: 0.7rem 0.8rem; }
.summary-list dt,
.record-detail-grid dt { font-size: 0.72rem; }
.summary-list dd { margin-top: 0.2rem; font-size: 1rem; }
.household-summary-bar { margin-bottom: 0.85rem; border-radius: 8px; }
.household-summary-bar > div { padding: 0.65rem 0.75rem; }
.member-roster { margin-top: 0.55rem; }
.member-roster-item { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 0.65rem; padding: 0.65rem 0; }
.member-avatar { width: 34px; height: 34px; }
.count-badge { min-width: 1.8rem; height: 1.8rem; font-size: 0.82rem; }
.portal-help { margin: 0.65rem 0; padding: 0.65rem 0.75rem; font-size: 0.86rem; }
.portal-action-row { margin-top: 0.75rem; }
.compact-summary-list > div,
.activity-list a,
.notice-list a,
.notice-list p { padding: 0.5rem 0; }

/* Dense controls, forms, tables, filters, and financial summaries. */
.financial-sync-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

.financial-sync-panel h2 { margin-bottom: .35rem; }
.financial-sync-panel p { margin: .25rem 0; }
.financial-sync-panel form { flex: 0 0 auto; }
.financial-settlement-summary {
  display: grid;
  gap: .25rem;
  padding: .75rem;
  border: 1px solid #b9d8c5;
  border-radius: 8px;
  background: #f2faf5;
}
.financial-settlement-summary > strong { color: #174c2b; }
.financial-settlement-member {
  display: grid;
  gap: .15rem;
  margin-top: .4rem;
  padding-top: .5rem;
  border-top: 1px solid #cfe3d6;
}

@media (max-width: 700px) {
  .financial-sync-panel { align-items: stretch; flex-direction: column; }
  .financial-sync-panel .button { width: 100%; }
}
.app-toolbar,
.filter-bar {
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  padding: 0.55rem;
  border-radius: 8px;
  box-shadow: none;
}
.app-toolbar label { min-width: 130px; font-size: 0.76rem; }
.app-toolbar input,
.app-toolbar select,
.filter-bar input,
.filter-bar select,
.form-card input,
.form-card select,
.form-card textarea {
  min-height: 36px;
  padding: 0.42rem 0.55rem;
  border-radius: 6px;
  font-size: 0.9rem;
}
.app-toolbar .toolbar-count { padding: 0.35rem; font-size: 0.84rem; }
.responsive-table-shell,
.table-shell,
.table-scroll { border-radius: 8px; box-shadow: none; }
.app-table th,
.app-table td,
.table-shell .data-table th,
.table-shell .data-table td,
.data-table th,
.data-table td { padding: 0.55rem 0.65rem; }
.app-table th,
.table-shell .data-table th,
.data-table th { font-size: 0.7rem; }
.app-table small,
.data-table small { font-size: 0.8rem; }
.form-card { gap: 0.65rem; padding: 0.85rem; border-radius: 8px; box-shadow: none; }
.form-grid { gap: 0.7rem; }
.admin-disclosure { margin-top: 0.75rem; border-radius: 8px; }
.admin-disclosure > summary { padding: 0.7rem 0.8rem; }
.metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 0.85rem; }
.metric-card { min-height: 82px; padding: 0.8rem 1rem; border-radius: 9px; box-shadow: none; }
.metric-card strong { font-size: clamp(1.25rem, 2vw, 1.7rem); }
.metric-card span { margin-top: 0.15rem; font-size: 0.86rem; }
.review-action-pane { top: 8rem; padding: 0.75rem; border-radius: 8px; }
.submission-status-bar,
.giving-summary-strip { margin-bottom: 0.85rem; border-radius: 8px; }
.submission-status-bar > div,
.giving-summary-strip > div { padding: 0.55rem 0.65rem; }

/* Super Administrator publication lifecycle controls. */
.publication-maintenance {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.publication-maintenance .portal-section-heading p:last-child { max-width: 760px; color: var(--muted); }
.maintenance-action-row,
.permanent-delete-panel {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(260px, 0.75fr) auto;
  align-items: end;
  gap: 0.8rem;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.maintenance-action-row strong,
.maintenance-action-row span,
.permanent-delete-panel strong,
.permanent-delete-panel span { display: block; }
.maintenance-action-row span,
.permanent-delete-panel span { margin-top: 0.15rem; color: var(--muted); font-size: 0.84rem; }
.maintenance-action-row label,
.permanent-delete-panel label { color: var(--blue-950); font-size: 0.78rem; font-weight: 750; }
.maintenance-action-row input,
.permanent-delete-panel input { width: 100%; min-height: 36px; margin-top: 0.25rem; padding: 0.42rem 0.55rem; border: 1px solid #b7c5d3; border-radius: 6px; font: inherit; }
.archived-publication-row { grid-template-columns: minmax(0, 1fr) auto; border-color: #d5bd7d; background: #fffaf0; }
.permanent-delete-panel { margin-top: 0.65rem; border-color: #d9a5a5; background: #fff8f8; }
.permanent-delete-panel .button-danger { white-space: nowrap; }

@media (max-width: 900px) {
  .library-command-inner,
  .library-catalog-section,
  .book-layout { grid-template-columns: 1fr; gap: 1rem; }
  .book-header { position: static; padding-bottom: 0.5rem; }
  .library-catalog-section > header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
  .maintenance-action-row,
  .permanent-delete-panel { grid-template-columns: 1fr; align-items: stretch; }
  .archived-publication-row { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .library-command-header { padding-top: 1.35rem; }
  .library-search-compact { grid-template-columns: 1fr; }
  .library-search-compact button { width: 100%; }
  .library-catalog-section { padding: 1rem 0; }
  .library-catalog-section > header { display: block; }
  .book-index-heading { align-items: stretch; flex-direction: column; }
  .book-index-filter { width: 100%; }
  .book-index-list a { grid-template-columns: 3.5rem minmax(0, 1fr) auto; gap: 0.65rem; }
  .reader-toolbar { top: 0; }
  .scripture-reader { padding-inline: 0.35rem; }
  .portal-page,
  .portal-application-page { padding-top: 0.9rem; }
  .portal-page-header,
  .app-page-header { align-items: stretch; }
  .metric-grid { grid-template-columns: 1fr; }
}

/* The authenticated workspace keeps the established navigation but uses app chrome. */
.member-workspace .header-inner { min-height: 68px; }
.member-workspace .brand-logo { width: 44px; height: 44px; }
.member-workspace .brand { gap: 0.65rem; }
.member-workspace .brand-kicker { font-size: 0.68rem; }
.member-workspace .brand-name { margin-top: 0.18rem; font-size: 0.88rem; }
.member-workspace .site-nav { gap: 0.9rem; }
.member-workspace .site-nav a { font-size: 0.82rem; }
.member-workspace .nav-action { min-height: 38px; padding: 0.45rem 0.75rem; }
.member-workspace .site-footer { padding-top: 1.25rem; }
.member-workspace .footer-logo-wrap,
.member-workspace .footer-status { display: none; }
.member-workspace .footer-links { padding-top: 0; }
.member-workspace .footer-bottom { margin-top: 0.75rem; padding-top: 0.75rem; }
.library-section-nav { border-bottom: 1px solid var(--line); background: #fbfcfe; }
.library-section-nav .container { min-height: 42px; display: flex; align-items: center; gap: 0.35rem; overflow-x: auto; }
.library-section-nav-label { margin-right: 0.25rem; color: var(--muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.library-section-nav a,
.library-section-nav .is-unavailable { flex: 0 0 auto; padding: 0.4rem 0.55rem; border-radius: 5px; font-size: 0.84rem; white-space: nowrap; }
.library-section-nav a { color: var(--blue-900); font-weight: 700; text-decoration: none; }
.library-section-nav a:hover,
.library-section-nav a:focus-visible { background: var(--blue-100); }
.library-section-nav .is-unavailable { color: #8a96a3; }
.authenticated-session .reader-toolbar { top: 8.4rem; }
.authenticated-session .book-header { top: 9rem; }
@media (max-width: 600px) {
  .authenticated-session .reader-toolbar { top: 0; }
  .authenticated-session .book-header { top: auto; }
}

/* ============================================================
   Stage 4.3 revision 2 — separated member and administration workspaces
   Benchmarked against task-oriented church management portals.
   ============================================================ */
.workspace-topbar {
  position: sticky;
  top: 0;
  z-index: 220;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(14px);
}

.workspace-topbar-inner {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 1rem;
}

.workspace-brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--blue-950);
  text-decoration: none;
}

.workspace-brand img {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  filter: drop-shadow(0 3px 7px rgba(11, 36, 66, 0.12));
}

.workspace-brand span,
.workspace-brand strong,
.workspace-brand small {
  display: block;
}

.workspace-brand strong {
  font-size: 0.96rem;
  line-height: 1.1;
}

.workspace-brand small {
  margin-top: 0.08rem;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-utilities {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.workspace-utilities a,
.workspace-utilities button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--blue-900);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.workspace-utilities a:hover,
.workspace-utilities a:focus-visible,
.workspace-utilities button:hover,
.workspace-utilities button:focus-visible {
  border-color: var(--blue-200);
  background: var(--blue-050);
}

.workspace-utilities form { margin: 0; }
.workspace-utilities button { color: var(--muted); }

.workspace-frame {
  min-height: calc(100vh - 58px);
  display: grid;
  grid-template-columns: 224px minmax(0, 1fr);
  align-items: stretch;
  background: #f5f7fa;
}

.workspace-sidebar {
  position: sticky;
  top: 58px;
  height: calc(100vh - 58px);
  align-self: start;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: #fff;
}

.workspace-sidebar-header {
  padding: 1rem 0.9rem 0.75rem;
  border-bottom: 1px solid var(--line);
}

.workspace-sidebar-header span,
.workspace-sidebar-header strong { display: block; }

.workspace-nav-eyebrow {
  margin-bottom: 0.15rem;
  color: var(--gold-600);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.workspace-sidebar-header strong {
  color: var(--blue-950);
  font-size: 0.98rem;
}

.workspace-nav {
  display: grid;
  gap: 0.15rem;
  padding: 0.65rem;
}

.workspace-nav a {
  display: grid;
  gap: 0.06rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--blue-900);
  text-decoration: none;
}

.workspace-nav a span {
  font-size: 0.88rem;
  font-weight: 750;
  line-height: 1.2;
}

.workspace-nav a small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.25;
}

.workspace-nav a:hover,
.workspace-nav a:focus-visible {
  border-color: var(--blue-200);
  background: var(--blue-050);
}

.workspace-nav a.is-active {
  border-color: #bfd3e7;
  background: var(--blue-100);
  box-shadow: inset 3px 0 0 var(--blue-800);
  color: var(--blue-950);
}

.workspace-nav-divider {
  height: 1px;
  margin: 0.45rem 0.35rem;
  background: var(--line);
}

.workspace-nav a.workspace-admin-entry {
  border-color: rgba(181, 139, 55, 0.28);
  background: #fffaf0;
}

.workspace-main {
  min-width: 0;
  background: #f5f7fa;
}

.workspace-mobile-navigation { display: none; }

.workspace-footer {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  padding: 0.55rem 1rem;
  border-top: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  font-size: 0.76rem;
}

.workspace-footer a { color: var(--blue-800); }

/* The application shell owns page width; pages no longer imitate marketing sections. */
.workspace-main .portal-page,
.workspace-main .portal-application-page {
  min-height: auto;
  padding: 1rem 0 2.25rem;
}

.workspace-main .portal-container,
.workspace-main .portal-application-page .portal-container {
  width: min(calc(100% - 2rem), 1500px);
  max-width: none;
}

.workspace-main .portal-page-header,
.workspace-main .app-page-header {
  min-height: 56px;
  margin-bottom: 0.7rem;
  padding-bottom: 0.65rem;
}

.workspace-main .portal-page-header h1,
.workspace-main .portal-welcome-header h1,
.workspace-main .app-page-header h1 {
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}

.workspace-main .portal-page-header p:last-child,
.workspace-main .app-page-header p:last-child {
  font-size: 0.87rem;
}

.workspace-main .portal-page .eyebrow { font-size: 0.62rem; }
.workspace-main .portal-breadcrumbs,
.workspace-main .breadcrumbs { margin-bottom: 0.55rem; }

.workspace-main .admin-link-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.workspace-main .admin-link-card {
  min-height: 0;
  justify-content: flex-start;
  padding: 0.8rem 0.9rem;
  border-radius: 8px;
  box-shadow: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.workspace-main .admin-link-card:hover,
.workspace-main .admin-link-card:focus-visible {
  transform: none;
  border-color: var(--blue-200);
  background: var(--blue-050);
  box-shadow: none;
}

.workspace-main .admin-link-card strong {
  margin-bottom: 0.18rem;
  font-family: inherit;
  font-size: 0.98rem;
}

.workspace-main .admin-link-card span {
  font-size: 0.82rem;
  line-height: 1.35;
}

.workspace-main .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.workspace-main .metric-card { min-height: 72px; }
.workspace-main .app-section,
.workspace-main .portal-panel,
.workspace-main .portal-overview { border-radius: 8px; }

.workspace-main .member-home-grid {
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.55fr);
  gap: 1rem;
}

.workspace-main .compact-action-row a { min-height: 42px; }
.workspace-main .responsive-table-shell,
.workspace-main .table-shell,
.workspace-main .form-card,
.workspace-main .app-toolbar,
.workspace-main .filter-bar { border-radius: 7px; }

/* Administration is visually distinct without changing the approved brand. */
.administration-workspace .workspace-topbar { border-bottom-color: #d8c28b; }
.administration-workspace .workspace-sidebar-header { background: #fffaf0; }
.administration-workspace .workspace-nav a.is-active {
  border-color: #dfc98f;
  background: #fff7e7;
  box-shadow: inset 3px 0 0 var(--gold-600);
}

.cleanup-safety-summary { margin-bottom: 1rem; }
.cleanup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.cleanup-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.cleanup-card .app-section-heading { margin-bottom: 0; }
.cleanup-card h3,
.cleanup-account-label,
.cleanup-detail-grid dd { overflow-wrap: anywhere; }
.cleanup-account-label { margin: 0.18rem 0 0; color: var(--muted); }
.cleanup-detail-grid { margin: 0; }
.cleanup-blockers {
  padding: 0.8rem 0.9rem;
  border: 1px solid #e1c98a;
  border-radius: 7px;
  background: #fff9eb;
  color: #5d4614;
}
.cleanup-blockers ul { margin: 0.45rem 0 0; padding-left: 1.2rem; }
.cleanup-blockers li + li { margin-top: 0.3rem; }
.cleanup-confirmation { margin-top: auto; }
.cleanup-confirmation form { padding: 0.85rem; }
.cleanup-confirmation .field-group input,
.cleanup-confirmation .field-group textarea { width: 100%; }

@media (max-width: 1120px) {
  .workspace-frame { grid-template-columns: 196px minmax(0, 1fr); }
  .workspace-main .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace-main .member-home-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .workspace-frame { display: block; min-height: calc(100vh - 58px); }
  .workspace-sidebar { display: none; }
  .workspace-mobile-navigation {
    display: block;
    margin: 0.75rem 1rem 0;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
  }
  .workspace-mobile-navigation summary {
    padding: 0.65rem 0.75rem;
    color: var(--blue-950);
    font-size: 0.88rem;
    font-weight: 750;
    cursor: pointer;
  }
  .workspace-mobile-navigation nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0 0.65rem 0.65rem;
  }
  .workspace-mobile-navigation a {
    padding: 0.5rem 0.55rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--blue-900);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
  }
  .workspace-main .admin-link-grid { grid-template-columns: 1fr; }
  .cleanup-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .workspace-topbar-inner { padding-inline: 0.65rem; }
  .workspace-brand small { display: none; }
  .workspace-utilities a:nth-of-type(2) { display: none; }
  .workspace-utilities a,
  .workspace-utilities button { padding-inline: 0.48rem; font-size: 0.77rem; }
  .workspace-mobile-navigation nav { grid-template-columns: 1fr; }
  .workspace-main .portal-container,
  .workspace-main .portal-application-page .portal-container { width: min(calc(100% - 1rem), 1500px); }
  .workspace-main .metric-grid { grid-template-columns: 1fr; }
  .workspace-main .portal-page-header,
  .workspace-main .app-page-header { align-items: stretch; }
  .workspace-footer { justify-content: space-between; }
}

/* ============================================================
   Stage 4.4 unified workflows, security, and integrations
   ============================================================ */
.workspace-content {
  min-width: 0;
  max-width: 100%;
  width: min(calc(100% - 2rem), var(--app-container, 1480px));
  margin-inline: auto;
  padding: 1.15rem 0 3rem;
}
.workspace-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--line);
}
.workspace-page-header h1 { margin: 0.08rem 0 0.2rem; font-size: clamp(1.45rem, 2.4vw, 2rem); }
.workspace-page-header p:last-child { max-width: 780px; margin: 0; color: var(--muted); font-size: 0.9rem; }
.settings-stack { display: grid; gap: 1rem; }
.settings-panel {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 9px rgba(13, 39, 72, 0.035);
}
.settings-panel > h2 { margin-top: 0; font-size: 1.1rem; }
.settings-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--line);
}
.settings-panel-header h2 { margin: 0 0 0.15rem; font-size: 1.15rem; }
.settings-panel-header p { margin: 0; color: var(--muted); font-size: 0.85rem; }
.compact-settings-form { gap: 0.85rem; }
.compact-settings-form .form-grid { margin: 0; }
.settings-action-grid {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--line);
}
.settings-status {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.2rem 0.75rem;
  margin-top: 0.85rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--blue-050);
  font-size: 0.84rem;
}
.settings-status p { grid-column: 1 / -1; margin: 0; color: var(--muted); }
.inline-action-form {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.8rem;
}
.inline-action-form label { color: var(--blue-950); font-size: 0.8rem; font-weight: 750; }
.inline-action-form input,
.inline-action-form select { min-height: 38px; padding: 0.42rem 0.6rem; border: 1px solid #afbecc; border-radius: 6px; background: #fff; }
.form-help { margin: 0.7rem 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.45; }
.optional-label { color: var(--muted); font-size: 0.72rem; font-weight: 600; }
.optional-information-section,
.optional-information {
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
}
.optional-information-section > summary,
.optional-information > summary {
  padding: 0.65rem 0.75rem;
  color: var(--blue-900);
  font-size: 0.86rem;
  font-weight: 750;
  cursor: pointer;
}
.optional-information-section[open] > summary,
.optional-information[open] > summary { border-bottom: 1px solid var(--line); }
.optional-information-section > :not(summary),
.optional-information > :not(summary) { margin-inline: 0.75rem; }
.split-workspace { display: grid; grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.65fr); gap: 1rem; align-items: start; }
.split-workspace-wide { grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.8fr); }
.guided-record-form { gap: 1rem; }
.permission-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.permission-check-grid .check-row { min-height: 42px; padding: 0.55rem 0.65rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.security-settings-list { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; }
.security-setting-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.48fr) minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 0.8rem 0.9rem;
  border-bottom: 1px solid var(--line);
}
.security-setting-row:last-child { border-bottom: 0; }
.security-setting-row-stacked { align-items: start; }
.security-setting-heading h2 { margin: 0 0 0.12rem; font-size: 0.98rem; }
.security-setting-heading p,
.security-setting-row p { margin: 0; color: var(--muted); font-size: 0.82rem; }
.compact-mfa-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.confirmation-dialog {
  width: min(calc(100% - 2rem), 560px);
  padding: 0;
  border: 0;
  border-radius: 9px;
  box-shadow: 0 24px 70px rgba(10, 29, 52, 0.3);
}
.confirmation-dialog::backdrop { background: rgba(10, 29, 52, 0.55); }
.confirmation-dialog form { padding: 1rem; }
.confirmation-dialog h2 { margin: 0 0 0.35rem; font-size: 1.2rem; }
.compact-delete-form { gap: 0.65rem; max-width: 680px; }
.compact-delete-form .button-row { margin-top: 0.15rem; }
.technical-detail { font-size: 0.82rem; }
.technical-detail summary { color: var(--blue-850); font-weight: 700; cursor: pointer; }

@media (max-width: 980px) {
  .split-workspace,
  .split-workspace-wide { grid-template-columns: 1fr; }
  .permission-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .security-setting-row { grid-template-columns: minmax(150px, 0.45fr) minmax(0, 1fr); }
  .security-setting-row > :last-child { grid-column: 2; justify-self: start; }
}
@media (max-width: 680px) {
  .workspace-content {
  min-width: 0;
  max-width: 100%; width: min(calc(100% - 1rem), var(--app-container, 1480px)); padding-top: 0.75rem; }
  .workspace-page-header,
  .settings-panel-header { display: block; }
  .settings-panel-header .status-pill { display: inline-flex; margin-top: 0.5rem; }
  .permission-check-grid,
  .compact-mfa-grid { grid-template-columns: 1fr; }
  .security-setting-row { grid-template-columns: 1fr; gap: 0.45rem; }
  .security-setting-row > :last-child { grid-column: auto; }
  .inline-action-form { align-items: stretch; }
  .inline-action-form input,
  .inline-action-form select,
  .inline-action-form .button { width: 100%; }
}

/* ============================================================
   Stage 4.4 Revision 5 — portal layout and conditional settings
   ============================================================ */
.is-hidden,
.is-filtered-out { display: none !important; }

/* Checkbox and radio controls stay attached to their labels. */
input[type="checkbox"],
input[type="radio"],
.field-group input[type="checkbox"],
.field-group input[type="radio"],
.application-form input[type="checkbox"],
.application-form input[type="radio"],
.admin-form input[type="checkbox"],
.admin-form input[type="radio"] {
  width: 1rem;
  min-width: 1rem;
  height: 1rem;
  min-height: 1rem;
  flex: 0 0 1rem;
  margin: 0.12rem 0 0;
  padding: 0;
  border-radius: 3px;
  accent-color: var(--blue-800);
}

.check-row,
.checkbox-row,
.toggle-row,
.permission-check-row {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.55rem;
  margin: 0;
  color: var(--blue-950);
  line-height: 1.35;
  cursor: pointer;
}

.check-row > span,
.checkbox-row > span,
.toggle-row > span,
.permission-check-row > span { min-width: 0; }

.toggle-row {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--blue-050);
}

.toggle-row-copy,
.toggle-row-copy strong,
.toggle-row-copy small,
.permission-check-row span,
.permission-check-row strong,
.permission-check-row small { display: block; }

.toggle-row-copy strong,
.permission-check-row strong { font-size: 0.88rem; }
.toggle-row-copy small,
.permission-check-row small { margin-top: 0.12rem; color: var(--muted); font-size: 0.76rem; font-weight: 500; }
.compact-toggle-row { align-self: start; }
.status-neutral { color: #536273; background: #edf1f5; }

/* Integration settings use a narrow, conditional settings layout. */
.integration-settings-shell { max-width: 1080px; margin-inline: auto; }
.compact-settings-stack { gap: 0.85rem; }
.integration-panel { padding: 0; overflow: hidden; }
.compact-settings-form { gap: 0; }
.integration-panel-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.integration-panel-header .toggle-row { justify-self: end; }
.settings-title-row { display: flex; align-items: center; gap: 0.55rem; flex-wrap: wrap; }
.settings-title-row h2 { margin: 0; }
.settings-title-row .status-pill { margin: 0; }
.conditional-panel { display: block; }
.settings-subsection { padding: 0.9rem 1rem; border-bottom: 1px solid var(--line); }
.compact-settings-subsection { padding-top: 0; }
.settings-subsection-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.6rem; }
.settings-subsection-heading h3 { margin: 0; font-family: inherit; font-size: 0.9rem; letter-spacing: 0; }
.settings-subsection-heading p { margin: 0.12rem 0 0; color: var(--muted); font-size: 0.78rem; line-height: 1.4; }
.settings-form-grid { max-width: 920px; }
.nested-form-grid { gap: 0.65rem; }
.compact-field-width { max-width: 520px; }
.compact-file-field input[type="file"] { padding: 0.48rem; background: #fff; }
.nested-conditional-panel { margin-top: 0.65rem; padding: 0.7rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.settings-inline-notice { display: flex; flex-wrap: wrap; gap: 0.25rem 0.55rem; margin: 0.75rem 1rem; padding: 0.65rem 0.75rem; border-left: 3px solid var(--gold-500); background: #fffaf0; font-size: 0.8rem; }
.settings-inline-notice strong { color: var(--blue-950); }
.settings-inline-notice span { color: var(--muted); }
.settings-disclosure { margin: 0.75rem 1rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.settings-disclosure > summary { padding: 0.58rem 0.7rem; color: var(--blue-900); font-size: 0.8rem; font-weight: 750; cursor: pointer; }
.settings-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.disclosure-fields { padding: 0.7rem; }
.danger-disclosure { border-color: #e6c3c3; background: #fffafa; }
.settings-save-row { display: flex; justify-content: flex-end; padding: 0.75rem 1rem; background: #fbfcfe; }
.settings-secondary-actions { padding: 0.75rem 1rem; border-top: 1px solid var(--line); background: #fbfcfe; }
.settings-secondary-actions .inline-action-form { margin: 0; }
.settings-action-row { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.settings-action-row form { margin: 0; }
.manual-sync-disclosure { flex: 1 1 420px; margin: 0; }
.compact-test-form .field-group { min-width: min(100%, 320px); }
.compact-test-form .button,
.compact-sync-form .button { align-self: end; }
.settings-status { margin: 0.7rem 0 0; }

/* Security is a compact settings list with consistently aligned actions. */
.security-workspace { max-width: 1080px; margin-inline: auto; }
.security-settings-list { overflow: visible; }
.security-setting-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  min-height: 74px;
  padding: 0.8rem 0.9rem;
}
.security-setting-copy h2 { margin: 0; font-family: inherit; font-size: 0.95rem; letter-spacing: 0; }
.security-setting-copy p { max-width: 700px; margin-top: 0.15rem; }
.security-setting-title-row { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.security-setting-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.45rem; flex-wrap: wrap; }
.security-setting-actions form { margin: 0; }
.security-setting-actions .button { min-height: 36px; padding: 0.42rem 0.72rem; font-size: 0.82rem; white-space: nowrap; }
.security-setting-row-complex { align-items: start; }
.security-policy-note,
.security-enrollment-disclosure { grid-column: 1 / -1; }
.security-policy-note { display: flex; gap: 0.4rem; flex-wrap: wrap; padding: 0.55rem 0.65rem; border-radius: 6px; background: var(--blue-050); font-size: 0.8rem; }
.security-policy-note strong { color: var(--blue-950); }
.security-policy-note span { color: var(--muted); }
.security-enrollment-disclosure { border-top: 1px solid var(--line); padding-top: 0.65rem; }
.security-enrollment-disclosure > summary { color: var(--blue-900); font-weight: 750; cursor: pointer; }
.security-enrollment-disclosure .compact-mfa-grid { margin-top: 0.65rem; }
.mfa-code-panel { display: flex; align-items: flex-start; gap: 0.75rem; flex-wrap: wrap; }
.mfa-verification-form { align-content: start; margin: 0; }
.recovery-code-panel { margin-top: 0.85rem; }

/* Household administration uses tables and focused disclosures, not permanent cards. */
.household-index-workspace,
.household-detail-workspace { max-width: 1220px; margin-inline: auto; }
.household-create-disclosure { margin: 0 0 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-disclosure > summary,
.household-action-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0.8rem;
  cursor: pointer;
  list-style: none;
}
.admin-disclosure > summary::-webkit-details-marker,
.household-action-disclosure > summary::-webkit-details-marker { display: none; }
.admin-disclosure > summary span,
.admin-disclosure > summary strong,
.admin-disclosure > summary small { display: block; }
.admin-disclosure > summary strong { color: var(--blue-950); font-size: 0.9rem; }
.admin-disclosure > summary small { margin-top: 0.1rem; color: var(--muted); font-size: 0.76rem; font-weight: 500; }
.disclosure-action { color: var(--blue-800); font-size: 0.76rem; font-weight: 750; white-space: nowrap; }
.admin-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: var(--blue-050); }
.admin-disclosure[open] .disclosure-action { font-size: 0; }
.admin-disclosure[open] .disclosure-action::after { content: "Close form"; font-size: 0.76rem; }
.compact-drawer-form { gap: 0.7rem; padding: 0.8rem; }
.compact-drawer-form .button-row { justify-content: flex-end; }
.household-list-section { margin-top: 0; }
.household-toolbar { max-width: none; }
.household-table td:nth-child(2) { max-width: 360px; white-space: pre-line; }
.table-action-cell { width: 1%; text-align: right !important; white-space: nowrap; }
.button-compact { min-height: 32px !important; padding: 0.32rem 0.58rem !important; font-size: 0.78rem !important; }
.table-filter-empty { margin-top: 0.65rem; }
.household-detail-header { align-items: flex-start; }
.household-summary-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.household-summary-strip > div { padding: 0.65rem 0.75rem; border-right: 1px solid var(--line); }
.household-summary-strip > div:last-child { border-right: 0; }
.household-summary-strip span,
.household-summary-strip strong { display: block; }
.household-summary-strip span { color: var(--muted); font-size: 0.7rem; font-weight: 750; letter-spacing: 0.035em; text-transform: uppercase; }
.household-summary-strip strong { margin-top: 0.15rem; color: var(--blue-950); font-size: 0.98rem; }
.household-detail-workspace .app-section { padding: 0 0 1rem; }
.household-detail-workspace .app-section + .app-section { margin-top: 1rem; }
.compact-empty-inline { padding: 0.75rem; text-align: left; }
.compact-empty-inline p { margin: 0; }
.household-action-disclosures { display: grid; gap: 0.55rem; }
.household-action-disclosure { margin: 0; }
.compact-choice-group { display: flex !important; flex-wrap: wrap; gap: 0.65rem 1.25rem !important; padding: 0.55rem 0.65rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; }

/* Guided member creation keeps choices aligned and reveals only relevant fields. */
.member-create-workspace { max-width: 1120px; margin-inline: auto; }
.compact-guided-form { gap: 1rem; }
.compact-guided-form .form-section { padding-bottom: 1rem; }
.choice-field-group { align-content: end; }
.choice-field-group .check-row { min-height: 38px; align-items: center; padding: 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.account-access-section > .toggle-row { margin-bottom: 0.75rem; }
.account-configuration-panel { padding: 0.8rem; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfe; }
.permission-section { margin-top: 0.9rem; padding-top: 0.8rem; border-top: 1px solid var(--line); }
.permission-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; }
.permission-check-row { min-height: 52px; padding: 0.55rem 0.65rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.permission-check-row:hover { border-color: var(--blue-200); background: var(--blue-050); }
.restricted-permission-row { border-color: #e3c9a0; background: #fffaf0; }

@media (max-width: 820px) {
  .integration-panel-header { grid-template-columns: 1fr; align-items: stretch; }
  .integration-panel-header .toggle-row { justify-self: stretch; }
  .settings-form-grid.form-grid.three-column { grid-template-columns: 1fr 1fr; }
  .security-setting-row { grid-template-columns: 1fr; gap: 0.55rem; }
  .security-setting-actions { justify-content: flex-start; }
  .household-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .household-summary-strip > div:nth-child(2) { border-right: 0; }
  .household-summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .permission-check-list { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .settings-form-grid.form-grid.two-column,
  .settings-form-grid.form-grid.three-column,
  .compact-drawer-form .form-grid.two-column { grid-template-columns: 1fr; }
  .settings-save-row { justify-content: stretch; }
  .settings-save-row .button { width: 100%; }
  .settings-action-row { align-items: stretch; }
  .settings-action-row > form,
  .settings-action-row .button,
  .manual-sync-disclosure { width: 100%; }
  .security-setting-actions,
  .security-setting-actions form,
  .security-setting-actions .button { width: 100%; }
  .household-summary-strip { grid-template-columns: 1fr; }
  .household-summary-strip > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .household-summary-strip > div:last-child { border-bottom: 0; }
  .household-detail-header .button { width: 100%; }
  .admin-disclosure > summary { align-items: flex-start; }
}

/* Stage 4.5 — household taxonomy, announcements, and notification settings. */
.notification-preferences-form,
.announcement-admin-workspace,
.compact-settings-workspace { max-width: 1120px; margin-inline: auto; }
.notification-preferences-form { display: grid; gap: 1rem; }
.notification-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; padding: 0.75rem 0.9rem 0.9rem; }
.notification-choice-grid .check-row { min-height: 42px; padding: 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.required-notification-note { border-left: 4px solid var(--gold-500, #b69a53); }
.notification-safety-grid { margin-top: 0.75rem; }

.announcement-admin-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr); gap: 1rem; align-items: start; }
.announcement-admin-list { display: grid; gap: 0.55rem; }
.announcement-admin-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.8rem; padding: 0.7rem 0.8rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.announcement-admin-main h3 { margin: 0.25rem 0 0.2rem; font-family: inherit; font-size: 0.95rem; }
.announcement-admin-main p { margin: 0; color: var(--muted); font-size: 0.82rem; }
.announcement-admin-main small { display: block; margin-top: 0.35rem; color: var(--muted); }
.announcement-status-line { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; color: var(--muted); font-size: 0.72rem; }
.announcement-admin-actions { display: flex; align-items: flex-start; gap: 0.55rem; flex-wrap: wrap; white-space: nowrap; }
.announcement-admin-actions form { margin: 0; }
.announcement-editor { position: sticky; top: 1rem; }
.announcement-preview { padding: 0.7rem 0.8rem; border: 1px dashed var(--blue-200); border-radius: 7px; background: var(--blue-050); }
.announcement-preview h3 { margin: 0.2rem 0; font-family: inherit; font-size: 0.95rem; }
.announcement-preview p { margin: 0; color: var(--muted); }

.member-announcements { margin-bottom: 1rem; }
.member-announcement-list { display: grid; gap: 0.55rem; }
.member-announcement-item { padding: 0.75rem 0.85rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.member-announcement-item.is-pinned { border-left: 4px solid var(--gold-500, #b69a53); background: #fffdf7; }
.member-announcement-item.is-targeted { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(12, 96, 155, 0.14); scroll-margin-top: 6.5rem; }
.member-announcement-item.is-targeted:focus { outline: 2px solid var(--blue-700); outline-offset: 3px; }
.member-announcement-item h3 { margin: 0.15rem 0; font-family: inherit; font-size: 0.98rem; }
.announcement-meta { color: var(--muted); font-size: 0.72rem; font-weight: 700; }
.announcement-summary { margin: 0.2rem 0; color: var(--muted); }
.member-announcement-item details { margin-top: 0.4rem; }
.member-announcement-item summary { color: var(--blue-800); font-size: 0.8rem; font-weight: 750; cursor: pointer; }
.announcement-body { margin-top: 0.5rem; white-space: pre-wrap; font-size: 0.88rem; line-height: 1.55; }

.household-role-groups { display: grid; gap: 0.85rem; }
.household-role-group { border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; }
.household-role-group > h3 { margin: 0; padding: 0.55rem 0.75rem; font-family: inherit; font-size: 0.9rem; background: var(--blue-050); border-bottom: 1px solid var(--line); }
.household-role-group-header { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--line); background: var(--blue-050); }
.household-role-group-header h2,
.household-role-group-header h3 { margin: 0; font-family: inherit; font-size: 0.9rem; }
.household-person-list { display: grid; }
.household-person-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 0.75rem; align-items: center; min-height: 56px; padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--line); }
.household-person-row:last-child { border-bottom: 0; }
.household-person-row strong,
.household-person-row small { display: block; }
.household-person-row small { margin-top: 0.1rem; color: var(--muted); }
.household-person-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.45rem; flex-wrap: wrap; }
.household-civil-spouse-note { color: var(--muted); font-size: 0.76rem; }
.managed-child-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
.managed-child-card { padding: 0.65rem 0.75rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.managed-child-card h3 { margin: 0; font-family: inherit; font-size: 0.92rem; }
.managed-child-card .button-row { margin-top: 0.45rem; justify-content: flex-start; }

@media (max-width: 960px) {
  .announcement-admin-grid { grid-template-columns: 1fr; }
  .announcement-editor { position: static; }
}

@media (max-width: 680px) {
  .notification-choice-grid,
  .managed-child-grid { grid-template-columns: 1fr; }
  .announcement-admin-item,
  .household-person-row { grid-template-columns: 34px minmax(0, 1fr); }
  .household-person-actions { grid-column: 2; justify-self: start; }
  .announcement-admin-actions,
  .household-person-actions { justify-content: flex-start; }
}

/* Stage 5D: visible Library review alerts and safe in-flight actions. */
.library-review-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-left: 4px solid var(--brand-gold, #b7791f);
}

.library-review-alert p {
  margin: 0.25rem 0 0;
}

button.is-submitting {
  opacity: 0.72;
  cursor: progress;
}

@media (max-width: 720px) {
  .library-review-alert {
    align-items: stretch;
    flex-direction: column;
  }

  .library-review-alert .button {
    width: 100%;
  }
}


/* Stage 6D ordinance wizard and maintenance */
.ordinance-workspace { padding-bottom: 3rem; }
.ordinance-form { max-width: 1180px; }
.ordinance-form .form-section { position: relative; }
.ordinance-form .form-section-heading .eyebrow { margin: 0 0 0.2rem; }
.ordinance-participant-panel[hidden] { display: none !important; }
.ordinance-participant-panel { padding: 1rem; border: 1px solid var(--line); border-radius: 9px; background: #f8fafc; }
.readonly-field { min-height: 44px; display: flex; align-items: center; padding: 0.68rem 0.78rem; border: 1px solid var(--line); border-radius: 8px; background: #f3f6f9; color: var(--blue-950); font-weight: 750; }

.member-picker { position: relative; display: grid; gap: 0.35rem; }
.member-picker-search-row { display: flex; gap: 0.5rem; }
.member-picker-search-row input { width: 100%; }
.member-picker-results { position: absolute; z-index: 20; top: 78px; left: 0; right: 0; max-height: 320px; overflow-y: auto; border: 1px solid #9fb0c0; border-radius: 8px; background: #fff; box-shadow: 0 14px 30px rgba(19, 42, 68, 0.16); }
.member-picker-result { display: grid; width: 100%; gap: 0.12rem; padding: 0.72rem 0.8rem; border: 0; border-bottom: 1px solid var(--line); background: #fff; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.member-picker-result:last-child { border-bottom: 0; }
.member-picker-result:hover,
.member-picker-result:focus-visible { outline: 0; background: var(--blue-050); }
.member-picker-result strong { color: var(--blue-950); }
.member-picker-result small { color: var(--muted); font-weight: 500; }
.member-picker-result-message { margin: 0; padding: 0.85rem; color: var(--muted); }
.member-picker-selected { display: grid; gap: 0.5rem; margin-top: 0.35rem; }
.member-picker-empty { margin: 0; padding: 0.7rem 0.8rem; border: 1px dashed #b3c0cc; border-radius: 8px; background: #fff; color: var(--muted); }
.selected-member { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.7rem 0.75rem; border: 1px solid #b9c8d6; border-radius: 8px; background: #fff; }
.selected-member-copy { display: grid; min-width: 0; gap: 0.1rem; }
.selected-member-copy strong { overflow-wrap: anywhere; color: var(--blue-950); }
.selected-member-copy small { overflow-wrap: anywhere; color: var(--muted); font-weight: 500; }

.ordinance-metric-grid { margin-bottom: 1.25rem; }
.ordinance-records-section { margin-top: 1.2rem; }
.ordinance-table { min-width: 900px; }
.ordinance-participant-summary { display: grid; gap: 0.12rem; }
.ordinance-participant-summary a { width: fit-content; }
.ordinance-rule-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; }
.ordinance-rule-grid article { display: grid; gap: 0.25rem; padding: 0.85rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.ordinance-rule-grid strong { color: var(--blue-950); }
.ordinance-rule-grid span { color: var(--muted); font-size: 0.86rem; }

.ordinance-detail-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.65fr); gap: 1.25rem; }
.ordinance-facts-panel { padding: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.detail-list { display: grid; gap: 0; margin: 0; }
.detail-list > div { display: grid; grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1.2fr); gap: 0.75rem; padding: 0.65rem 0; border-bottom: 1px solid var(--line); }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--muted); font-weight: 700; }
.detail-list dd { margin: 0; color: var(--blue-950); }
.note-panel { padding: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.note-panel h3 { margin: 0 0 0.45rem; color: var(--blue-950); font-size: 1rem; }
.note-panel p { margin: 0; white-space: pre-wrap; }
.warning-notice { margin-bottom: 1rem; padding: 0.9rem 1rem; border: 1px solid #dfc47b; border-radius: 8px; background: #fff8df; color: #604500; }
.danger-panel { padding: 1rem; border: 1px solid #d7a0a0; border-radius: 8px; background: #fff3f3; }
.danger-panel h2 { margin: 0 0 0.45rem; color: #7c2020; }
.danger-panel p { margin: 0; }
.void-reason-field { margin-top: 1rem; }
.page-actions { margin-top: 1rem; }

@media (max-width: 1050px) {
  .ordinance-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ordinance-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .ordinance-rule-grid { grid-template-columns: 1fr; }
  .selected-member { align-items: flex-start; flex-direction: column; }
  .selected-member .button { width: 100%; }
  .member-picker-results { top: 82px; }
}

/* Stage 6E covenant record cards and leadership administration UX */
.member-picker-results {
  position: static;
  z-index: auto;
  top: auto;
  left: auto;
  right: auto;
  max-height: 300px;
  margin-top: 0.2rem;
  box-shadow: 0 8px 20px rgba(19, 42, 68, 0.1);
}

.portal-application-page .record-covenant-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(13, 39, 72, 0.04);
}

.covenant-card-layout { align-items: stretch; }
.covenant-card-layout .record-covenant-card { min-height: 100%; }
.salvation-ordinance-list { display: grid; margin-top: 0.7rem; border-top: 1px solid var(--line); }
.salvation-ordinance-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 70px;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line);
}
.salvation-ordinance-row:last-child { border-bottom: 0; }
.salvation-ordinance-row strong,
.salvation-ordinance-row small { display: block; }
.salvation-ordinance-row strong { color: var(--blue-950); }
.salvation-ordinance-row small,
.salvation-ordinance-row time { color: var(--muted); font-size: 0.84rem; }
.salvation-ordinance-row time { text-align: right; }

.marriage-member-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.75rem;
  align-items: stretch;
  margin-top: 0.75rem;
}
.marriage-member-pair article {
  display: grid;
  align-content: center;
  min-height: 112px;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--blue-050);
}
.marriage-member-pair article span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.marriage-member-pair article strong { margin-top: 0.25rem; color: var(--blue-950); }
.marriage-member-pair article small { margin-top: 0.15rem; color: var(--muted); }
.marriage-link-mark { align-self: center; color: var(--gold-700); font-size: 1.35rem; font-weight: 800; }
.covenant-fact-list { display: grid; gap: 0; margin: 0.75rem 0 0; border-top: 1px solid var(--line); }
.covenant-fact-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.65rem 0; border-bottom: 1px solid var(--line); }
.covenant-fact-list > div:last-child { border-bottom: 0; }
.covenant-fact-list dt { color: var(--muted); font-weight: 700; }
.covenant-fact-list dd { margin: 0; color: var(--blue-950); text-align: right; }

.sealed-spouse-list { display: grid; margin-top: 0.75rem; border-top: 1px solid var(--line); }
.sealed-spouse-list.is-scrollable {
  max-height: 370px;
  padding-right: 0.35rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.sealed-spouse-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  min-height: 72px;
  padding: 0.72rem 0;
  border-bottom: 1px solid var(--line);
}
.sealed-spouse-row:last-child { border-bottom: 0; }
.sealed-spouse-row strong,
.sealed-spouse-row small,
.sealed-spouse-meta time { display: block; }
.sealed-spouse-row strong { color: var(--blue-950); }
.sealed-spouse-row small,
.sealed-spouse-meta time { margin-top: 0.15rem; color: var(--muted); font-size: 0.8rem; }
.sealed-spouse-meta { display: grid; justify-items: end; gap: 0.2rem; text-align: right; }

.household-header-actions { justify-content: flex-end; }
.household-action-disclosure { scroll-margin-top: 1rem; }

.member-accounts-workspace { max-width: 1320px; }
.account-metric-grid,
.announcement-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1rem; }
.account-list-section { margin-top: 0; }
.account-toolbar { max-width: none; }
.account-table { min-width: 980px; }
.account-security-badges { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.account-action-cell { white-space: nowrap; }
.account-action-buttons { display: flex; align-items: center; justify-content: flex-end; gap: 0.4rem; }
.account-action-buttons form { margin: 0; }

.announcement-admin-workspace { max-width: 1320px; }
.announcement-admin-grid {
  grid-template-columns: minmax(320px, 0.85fr) minmax(520px, 1.15fr);
  gap: 1.25rem;
}
.announcement-panel {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(13, 39, 72, 0.04);
}
.announcement-editor { position: static; top: auto; }
.announcement-form { gap: 1rem; }
.announcement-delivery-grid { margin-top: 0.15rem; }
.announcement-admin-item { padding: 0.85rem; }
.announcement-admin-actions { align-items: center; }

@media (max-width: 1180px) {
  .announcement-admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .account-metric-grid,
  .announcement-metric-grid { grid-template-columns: 1fr; }
  .household-header-actions { width: 100%; justify-content: flex-start; }
  .household-header-actions .button { flex: 1 1 180px; }
}

@media (max-width: 680px) {
  .marriage-member-pair { grid-template-columns: 1fr; }
  .marriage-link-mark { justify-self: center; }
  .salvation-ordinance-row,
  .sealed-spouse-row { grid-template-columns: 1fr; align-items: flex-start; }
  .salvation-ordinance-row { flex-direction: column; align-items: flex-start; gap: 0.35rem; }
  .salvation-ordinance-row time { text-align: left; }
  .sealed-spouse-meta { justify-items: start; text-align: left; }
  .account-action-buttons { align-items: stretch; flex-direction: column; }
  .account-action-buttons .button { width: 100%; }
}

/* Version 7 family directory, member requests, and approved photos */
.family-directory-workspace,
.family-detail-workspace,
.member-request-workspace,
.member-request-form-workspace,
.member-photo-workspace,
.leadership-request-workspace,
.leadership-request-detail-workspace,
.photo-review-workspace {
  width: min(100%, 1320px);
  margin-inline: auto;
}

.version-seven-actions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.family-directory-summary,
.request-queue-metrics,
.request-source-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.family-directory-summary > div,
.request-queue-metrics > div,
.request-source-summary > div {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  box-shadow: 0 4px 16px rgba(13, 39, 72, 0.04);
}

.family-directory-summary span,
.request-queue-metrics span,
.request-source-summary span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.family-directory-summary strong,
.request-queue-metrics strong,
.request-source-summary strong {
  overflow-wrap: anywhere;
  color: var(--blue-950);
  font-size: 1.08rem;
}

.family-privacy-panel {
  margin-bottom: 1rem;
}

.family-privacy-panel > summary {
  color: var(--blue-950);
  font-weight: 750;
  cursor: pointer;
}

.family-privacy-panel[open] > summary {
  margin-bottom: 0.9rem;
}

.compact-form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: end;
}

.family-directory-sections,
.family-person-list,
.request-history-list,
.leadership-request-list,
.photo-history-grid,
.pending-household-records {
  display: grid;
  gap: 0.75rem;
}

.family-directory-section {
  margin-bottom: 1rem;
}

.family-directory-section .family-person-list {
  max-height: 540px;
  overflow-y: auto;
  padding-right: 0.25rem;
  scrollbar-gutter: stable;
}

.family-person-row {
  display: grid;
  grid-template-columns: 54px minmax(210px, 1.25fr) minmax(170px, 0.8fr) auto;
  gap: 0.85rem;
  align-items: center;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.family-person-photo,
.family-detail-photo,
.member-record-photo {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--blue-050);
}

.family-person-initials,
.member-record-photo-placeholder {
  display: grid;
  place-items: center;
  color: var(--blue-800);
  font-weight: 800;
  letter-spacing: 0.03em;
}

.family-person-main,
.family-person-facts {
  display: grid;
  min-width: 0;
  gap: 0.12rem;
}

.family-person-main strong {
  overflow-wrap: anywhere;
  color: var(--blue-950);
}

.family-person-main span,
.family-person-main small,
.family-person-facts span,
.family-person-facts a {
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.84rem;
}

.family-person-open {
  align-self: center;
  font-weight: 750;
  white-space: nowrap;
}

.family-detail-identity,
.member-record-identity {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  min-width: 0;
}

.family-detail-photo,
.member-record-photo {
  flex: 0 0 auto;
  width: 78px;
  height: 78px;
}

.member-record-photo-header {
  align-items: center;
}

.request-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.request-action-grid > a {
  display: grid;
  align-content: start;
  gap: 0.28rem;
  min-height: 118px;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(13, 39, 72, 0.04);
}

.request-action-grid > a:hover,
.request-action-grid > a:focus-visible {
  border-color: var(--blue-600);
  background: var(--blue-050);
}

.request-action-grid strong {
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
}

.request-action-grid span {
  color: var(--muted);
  font-size: 0.9rem;
}

.request-history-list article,
.pending-household-records article {
  position: relative;
  display: grid;
  gap: 0.45rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}

.request-history-list article > div:first-child,
.pending-household-records article > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
}

.request-history-list p,
.pending-household-records small {
  margin: 0;
  color: var(--muted);
}

.request-history-list aside {
  padding: 0.65rem 0.75rem;
  border-left: 3px solid var(--gold-500);
  background: var(--blue-050);
}

.request-response-form {
  display: grid;
  gap: 0.5rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--line);
}

.request-withdraw-form {
  justify-self: end;
  margin: 0;
}

.request-form,
.request-review-form,
.request-decision-form {
  display: grid;
  gap: 1rem;
}

.request-form fieldset {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  margin: 0;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
}

.request-form legend {
  padding-inline: 0.35rem;
  color: var(--blue-950);
  font-weight: 750;
}

.request-participant-fields,
.request-child-selection {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--blue-050);
}

.request-participant-fields[hidden],
.request-child-selection[hidden] {
  display: none !important;
}

.request-participant-fields h2,
.request-child-selection h2 {
  margin: 0;
  font-size: 1.08rem;
}

.request-child-selection p {
  margin: 0;
  color: var(--muted);
}

.checkbox-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.checkbox-list label,
.checkbox-row {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  padding: 0.6rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.checkbox-list input,
.checkbox-row input {
  flex: 0 0 auto;
  margin-top: 0.25rem;
}

.checkbox-list span {
  display: grid;
  color: var(--blue-950);
  font-weight: 700;
}

.checkbox-list small {
  color: var(--muted);
  font-weight: 500;
}

.photo-upload-grid,
.request-review-columns {
  align-items: start;
  margin-bottom: 1rem;
}

.photo-history-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.photo-history-grid article {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 0.8rem;
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}

.photo-history-grid img {
  width: 112px;
  height: 92px;
  object-fit: cover;
  border-radius: 8px;
  background: var(--blue-050);
}

.photo-history-grid article > div {
  display: grid;
  align-content: start;
  min-width: 0;
  gap: 0.15rem;
}

.photo-history-grid strong {
  overflow-wrap: anywhere;
  color: var(--blue-950);
}

.photo-history-grid span,
.photo-history-grid small,
.photo-history-grid p {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.84rem;
}

.leadership-request-list > a {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  text-decoration: none;
}

.leadership-request-list > a:hover,
.leadership-request-list > a:focus-visible {
  border-color: var(--blue-600);
  background: var(--blue-050);
}

.leadership-request-list > a > span:first-child {
  display: grid;
  min-width: 0;
  gap: 0.15rem;
}

.leadership-request-list strong {
  overflow-wrap: anywhere;
  color: var(--blue-950);
}

.leadership-request-list small {
  color: var(--muted);
}

.long-form-copy {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.request-decision-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.request-decision-grid form {
  display: grid;
  gap: 0.6rem;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--blue-050);
}

.duplicate-review-panel {
  padding: 0.85rem;
  border: 1px solid #d5b96c;
  border-radius: 9px;
  background: #fff9e8;
}

.duplicate-review-panel h3,
.duplicate-review-panel p {
  margin-top: 0;
}

.photo-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 1rem;
  align-items: start;
}

.photo-review-preview img {
  width: 100%;
  max-height: 680px;
  object-fit: contain;
  border-radius: 9px;
  background: var(--blue-050);
}

.household-approved-photo {
  position: relative;
  margin: 0 0 1rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.household-approved-photo img {
  width: 100%;
  max-height: 430px;
  object-fit: cover;
}

.household-approved-photo figcaption {
  padding: 0.65rem 0.8rem;
  color: var(--blue-950);
  font-weight: 750;
}

.member-avatar-photo {
  object-fit: cover;
}

.pending-household-records {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.pending-household-records h3 {
  margin: 0;
}

@media (max-width: 1180px) {
  .version-seven-actions,
  .request-action-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .family-person-row {
    grid-template-columns: 54px minmax(0, 1fr) auto;
  }

  .family-person-facts {
    grid-column: 2 / -1;
  }
}

@media (max-width: 900px) {
  .family-directory-summary,
  .request-queue-metrics,
  .request-source-summary,
  .photo-history-grid,
  .photo-review-layout {
    grid-template-columns: 1fr;
  }

  .version-seven-actions,
  .request-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .version-seven-actions,
  .request-action-grid,
  .checkbox-list,
  .request-decision-grid,
  .compact-form-row {
    grid-template-columns: 1fr;
  }

  .family-person-row {
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
  }

  .family-person-photo {
    width: 48px;
    height: 48px;
  }

  .family-person-facts,
  .family-person-open {
    grid-column: 2;
  }

  .family-person-open {
    justify-self: start;
  }

  .family-detail-identity,
  .member-record-identity {
    align-items: flex-start;
  }

  .family-detail-photo,
  .member-record-photo {
    width: 62px;
    height: 62px;
  }

  .photo-history-grid article {
    grid-template-columns: 80px minmax(0, 1fr);
  }

  .photo-history-grid img {
    width: 80px;
    height: 74px;
  }

  .leadership-request-list > a,
  .request-history-list article > div:first-child,
  .pending-household-records article > div:first-child {
    align-items: flex-start;
    flex-direction: column;
  }

  .request-withdraw-form {
    justify-self: start;
  }
}

/* ============================================================
   Version 7.4 — administration cleanup and layout normalization
   ============================================================ */
.leadership-home-workspace,
.member-directory-workspace,
.correction-queue-workspace,
.reports-workspace,
.library-admin-workspace,
.library-submission-workspace,
.hymn-numbering-workspace,
.cleanup-workspace,
.library-sections-workspace,
.household-index-workspace,
.ordinance-index-workspace,
.member-accounts-workspace,
.announcement-admin-workspace,
.leadership-request-workspace {
  width: min(calc(100% - 2rem), 1320px);
}

.summary-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 1.25rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(13, 39, 72, 0.035);
}
.summary-metric-strip-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.summary-metric-strip-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.summary-metric-strip-six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.summary-metric-strip > div {
  min-width: 0;
  padding: 0.85rem 0.95rem;
  border-right: 1px solid var(--line);
}
.summary-metric-strip > div:last-child { border-right: 0; }
.summary-metric-strip span,
.summary-metric-strip strong { display: block; }
.summary-metric-strip span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}
.summary-metric-strip strong {
  margin-top: 0.2rem;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-variant-numeric: tabular-nums;
}
.summary-metric-strip .summary-text-value {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.35;
}

.administration-section { padding-bottom: 1.25rem; }
.workspace-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.workspace-action-grid > a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  min-height: 122px;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 3px 14px rgba(13, 39, 72, 0.03);
}
.workspace-action-grid > a:hover,
.workspace-action-grid > a:focus-visible {
  border-color: #8fa8c0;
  background: var(--blue-050);
  box-shadow: 0 7px 22px rgba(13, 39, 72, 0.07);
}
.workspace-action-grid > a > span:last-child { display: grid; min-width: 0; gap: 0.22rem; }
.workspace-action-grid strong { color: var(--blue-950); font-size: 0.96rem; }
.workspace-action-grid small { color: var(--muted); font-size: 0.81rem; line-height: 1.45; }
.workspace-action-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 9px;
  background: #e7eff7;
  color: var(--blue-900);
  font-size: 0.75rem;
  font-weight: 850;
  letter-spacing: 0.04em;
}
.workspace-action-icon-danger { background: #fdeaea; color: #8b2323; }

.directory-toolbar { align-items: end; }
.directory-table-section,
.correction-queue-workspace .app-section,
.reports-workspace .app-section,
.library-admin-workspace .app-section,
.library-submission-workspace .app-section,
.hymn-numbering-workspace .app-section {
  min-width: 0;
}
.table-action-cell { width: 1%; white-space: nowrap; text-align: right; }
.table-secondary { color: var(--muted); }

.workspace-tabs-contained {
  padding: 0.25rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.workspace-tabs-contained a {
  border: 0;
  border-radius: 7px;
}
.workspace-tabs-contained a.is-active {
  border: 0;
  background: #e7eff7;
  box-shadow: inset 0 -3px 0 var(--gold-500);
}
.header-count {
  display: grid;
  flex: 0 0 auto;
  min-width: 116px;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  text-align: right;
}
.header-count strong { color: var(--blue-950); font-family: "Libre Baskerville", Georgia, serif; font-size: 1.45rem; }
.header-count span { color: var(--muted); font-size: 0.72rem; font-weight: 750; text-transform: uppercase; }

.library-review-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.library-review-alert p { margin: 0.18rem 0 0; }

.report-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}
.report-action-grid > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-width: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.report-action-grid > a:hover,
.report-action-grid > a:focus-visible { border-color: #8fa8c0; background: var(--blue-050); }
.report-action-grid > a > span:first-child { display: grid; min-width: 0; gap: 0.18rem; }
.report-action-grid strong { color: var(--blue-950); }
.report-action-grid small { color: var(--muted); line-height: 1.4; }
.report-action-grid > a > span:last-child {
  flex: 0 0 auto;
  color: var(--blue-850);
  font-size: 0.8rem;
  font-weight: 780;
  white-space: nowrap;
}

.hymn-numbering-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.65fr);
  gap: 1rem;
  align-items: start;
}
.hymn-category-card-list { display: grid; gap: 0.65rem; }
.hymn-category-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.hymn-category-card > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 0.78rem 0.85rem;
  cursor: pointer;
  list-style-position: inside;
}
.hymn-category-card > summary:hover,
.hymn-category-card > summary:focus-visible { background: var(--blue-050); }
.hymn-category-card > summary > span:first-of-type,
.hymn-category-summary-meta { display: grid; min-width: 0; gap: 0.12rem; }
.hymn-category-card > summary strong { color: var(--blue-950); }
.hymn-category-card > summary small { color: var(--muted); font-size: 0.78rem; }
.hymn-category-summary-meta { justify-items: end; text-align: right; }
.hymn-category-edit-form {
  gap: 0.85rem;
  padding: 0.9rem;
  border-top: 1px solid var(--line);
  background: #f8fafc;
}
.choice-field-group { align-self: end; }
.hymn-category-create-panel {
  position: sticky;
  top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(13, 39, 72, 0.035);
}

.announcement-admin-grid {
  grid-template-columns: minmax(340px, 0.8fr) minmax(520px, 1.2fr);
  gap: 1rem;
}
.announcement-panel { min-width: 0; }
.announcement-admin-list { display: grid; gap: 0.65rem; }
.announcement-admin-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: start;
}
.announcement-admin-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: flex-end; }
.announcement-editor textarea[name="Input.Body"] { min-height: 15rem; }

.cleanup-safety-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid #d5b96c;
  border-radius: 10px;
  background: #fff9e8;
}
.cleanup-safety-banner h2 { margin: 0.08rem 0 0.25rem; font-size: 1.2rem; }
.cleanup-safety-banner p:last-child { max-width: 820px; margin: 0; color: #604500; }
.cleanup-safety-banner > strong {
  display: grid;
  flex: 0 0 auto;
  min-width: 120px;
  color: #604500;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.65rem;
  text-align: right;
}
.cleanup-safety-banner > strong span { font-family: inherit; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; }
.cleanup-run-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
.cleanup-run-card {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(13, 39, 72, 0.03);
}
.cleanup-run-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.8rem; }
.cleanup-run-heading > div { display: grid; gap: 0.1rem; }
.cleanup-run-heading span { color: var(--muted); font-size: 0.7rem; font-weight: 780; text-transform: uppercase; }
.cleanup-run-heading strong { color: var(--blue-950); overflow-wrap: anywhere; }
.cleanup-total { display: grid; flex: 0 0 auto; text-align: right; font-size: 1.25rem; }
.cleanup-total span { font-size: 0.65rem; }
.cleanup-count-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0.8rem 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.cleanup-count-grid > div { padding: 0.55rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cleanup-count-grid > div:nth-child(4n) { border-right: 0; }
.cleanup-count-grid > div:nth-last-child(-n + 4) { border-bottom: 0; }
.cleanup-count-grid dt { color: var(--muted); font-size: 0.65rem; font-weight: 750; text-transform: uppercase; }
.cleanup-count-grid dd { margin: 0.12rem 0 0; color: var(--blue-950); font-weight: 780; }
.compact-notice { margin: 0.7rem 0; padding: 0.65rem 0.75rem; }
.cleanup-delete-disclosure,
.cleanup-delete-all { margin-top: 0.75rem; border: 1px solid #d7a0a0; border-radius: 8px; background: #fff7f7; }
.cleanup-delete-disclosure > summary,
.cleanup-delete-all > summary {
  padding: 0.7rem 0.8rem;
  color: #7c2020;
  font-weight: 780;
  cursor: pointer;
}
.cleanup-delete-disclosure[open] > summary,
.cleanup-delete-all[open] > summary { border-bottom: 1px solid #e4b9b9; }
.cleanup-delete-form { gap: 0.75rem; padding: 0.8rem; }
.cleanup-delete-all-body { padding: 0.9rem; }
.cleanup-delete-all-body > p { margin-top: 0; }

@media (max-width: 1180px) {
  .summary-metric-strip-five,
  .summary-metric-strip-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .summary-metric-strip-five > div:nth-child(3n),
  .summary-metric-strip-six > div:nth-child(3n) { border-right: 0; }
  .summary-metric-strip-five > div:nth-child(-n + 3),
  .summary-metric-strip-six > div:nth-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .workspace-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .announcement-admin-grid { grid-template-columns: 1fr; }
  .announcement-editor textarea[name="Input.Body"] { min-height: 12rem; }
}

@media (max-width: 980px) {
  .hymn-numbering-layout { grid-template-columns: 1fr; }
  .hymn-category-create-panel { position: static; }
  .cleanup-run-list { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .leadership-home-workspace,
  .member-directory-workspace,
  .correction-queue-workspace,
  .reports-workspace,
  .library-admin-workspace,
  .library-submission-workspace,
  .hymn-numbering-workspace,
  .cleanup-workspace,
  .library-sections-workspace,
  .household-index-workspace,
  .ordinance-index-workspace,
  .member-accounts-workspace,
  .announcement-admin-workspace,
  .leadership-request-workspace { width: min(calc(100% - 1rem), 1320px); }

  .summary-metric-strip,
  .summary-metric-strip-five,
  .summary-metric-strip-six { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .summary-metric-strip > div,
  .summary-metric-strip-five > div,
  .summary-metric-strip-six > div { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .summary-metric-strip > div:nth-child(2n),
  .summary-metric-strip-five > div:nth-child(2n),
  .summary-metric-strip-six > div:nth-child(2n) { border-right: 0; }
  .summary-metric-strip > div:nth-last-child(-n + 2),
  .summary-metric-strip-five > div:nth-last-child(-n + 2),
  .summary-metric-strip-six > div:nth-last-child(-n + 2) { border-bottom: 0; }
  .summary-metric-strip-five > div:last-child { grid-column: 1 / -1; border-right: 0; }

  .workspace-action-grid,
  .report-action-grid { grid-template-columns: 1fr; }
  .workspace-action-grid > a { min-height: 0; }
  .library-review-alert,
  .cleanup-safety-banner { align-items: flex-start; flex-direction: column; }
  .cleanup-safety-banner > strong { text-align: left; }
  .header-count { width: 100%; margin-top: 0.75rem; text-align: left; }
  .hymn-category-card > summary { grid-template-columns: 1fr; }
  .hymn-category-summary-meta { justify-items: start; text-align: left; }
  .announcement-admin-item { grid-template-columns: 1fr; }
  .announcement-admin-actions { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .summary-metric-strip,
  .summary-metric-strip-five,
  .summary-metric-strip-six { grid-template-columns: 1fr; }
  .summary-metric-strip > div,
  .summary-metric-strip-five > div,
  .summary-metric-strip-six > div { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .summary-metric-strip > div:last-child,
  .summary-metric-strip-five > div:last-child,
  .summary-metric-strip-six > div:last-child { border-bottom: 0; }
  .cleanup-count-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cleanup-count-grid > div,
  .cleanup-count-grid > div:nth-child(4n),
  .cleanup-count-grid > div:nth-last-child(-n + 4) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .cleanup-count-grid > div:nth-child(2n) { border-right: 0; }
  .cleanup-count-grid > div:nth-last-child(-n + 2) { border-bottom: 0; }
}


/* ============================================================
   Version 7.5 — Super Administrator workflow layout completion
   ============================================================ */

/* Long ordinance forms use a normal completion panel so actions never cover fields. */
.form-completion-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(13, 39, 72, 0.035);
}
.form-completion-actions > div:first-child { color: var(--muted); font-size: 0.84rem; }
.form-completion-actions .form-help { margin: 0; }
.ordinance-entry-form .form-section { scroll-margin-top: 1rem; }

/* Member request review keeps all editable controls and decisions in the application form system. */
.request-review-form { gap: 1rem; }
.request-review-form .form-section { padding-bottom: 1.1rem; }
.request-location-section { margin-top: 0.2rem; }
.request-primary-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid #b9cbe0;
  border-radius: 9px;
  background: #eef4fa;
}
.request-primary-action > div { display: grid; min-width: 0; gap: 0.15rem; }
.request-primary-action strong { color: var(--blue-950); }
.request-primary-action small { color: var(--muted); }
.request-secondary-actions { margin-top: 1.15rem; }
.request-decision-grid form.application-form { gap: 0.6rem; }

/* Empty announcement workspaces read as one workflow instead of two imbalanced columns. */
.announcement-admin-grid-empty { grid-template-columns: 1fr; }
.announcement-admin-grid-empty .announcement-editor {
  position: static;
  width: min(100%, 980px);
}
.announcement-admin-grid-empty .announcement-list-panel .compact-empty-state {
  padding-block: 1rem;
}

/* Library section creation uses the available width and leaves the table unobstructed. */
.library-section-admin-layout { display: grid; gap: 1rem; }
.library-section-editor .library-section-form-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.library-section-editor .button-row { justify-content: flex-start; }
.library-section-list { min-width: 0; }
.table-actions-compact {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.table-actions-compact form { margin: 0; }
.library-empty-state .button-row { justify-content: center; margin-top: 0.8rem; }

/* The public footer copyright remains readable at normal text size. */
.footer-bottom p { color: rgba(255,255,255,0.5); }

@media (max-width: 980px) {
  .library-section-editor .library-section-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .form-completion-actions,
  .request-primary-action { align-items: stretch; flex-direction: column; }
  .form-completion-actions .button-row,
  .form-completion-actions .button,
  .request-primary-action .button { width: 100%; }
  .library-section-editor .library-section-form-grid { grid-template-columns: 1fr; }
  .library-section-editor .library-section-form-grid .span-two { grid-column: auto; }
  .table-actions-compact { justify-content: flex-start; }
  .library-empty-state .button-row { align-items: stretch; flex-direction: column; }
  .library-empty-state .button { width: 100%; }
}

/* ============================================================
   Version 7.6 — Form action containment and workflow completion
   ============================================================ */

/* Completion actions remain in document flow so long forms never cover required fields. */
.member-create-completion-actions,
.library-submission-completion-actions,
.destructive-completion-actions {
  position: static;
  margin-top: 1rem;
}
.member-create-completion-actions .form-help,
.library-submission-completion-actions [data-last-saved] {
  margin: 0;
}
.library-submission-completion-actions {
  border-color: #b9cbe0;
  background: #f7faff;
}
.destructive-completion-actions {
  border-color: #d7a0a0;
  background: #fff7f7;
}
.form-completion-actions .button-row {
  flex: 0 0 auto;
}

@media (max-width: 680px) {
  .member-create-completion-actions .button-row,
  .library-submission-completion-actions .button-row,
  .destructive-completion-actions .button-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}

/* ============================================================
   Version 7.7 — Library access, review queue, and photo workspace
   ============================================================ */
.library-member-access {
  background: #f4f8fb;
  border-block: 1px solid var(--line);
}

.library-endowed-access {
  background: #f8f5ec;
  border-block: 1px solid #e4dac0;
}

.submission-review-toolbar {
  align-items: end;
}

.toolbar-checkbox {
  display: flex;
  flex-direction: row !important;
  align-items: center;
  gap: 0.55rem;
  min-height: 44px;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--blue-950);
  font-weight: 650;
}

.toolbar-checkbox input {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin: 0;
}

.photo-upload-introduction {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.85rem;
  padding: 0 0.1rem;
}

.photo-upload-introduction h2,
.photo-upload-introduction p {
  margin: 0;
}

.photo-upload-introduction h2 {
  color: var(--blue-950);
  font-size: 1.12rem;
}

.photo-upload-introduction p {
  margin-top: 0.2rem;
  color: var(--muted);
}

.photo-review-note {
  flex: 0 0 auto;
  padding: 0.38rem 0.68rem;
  border: 1px solid #d8c68f;
  border-radius: 999px;
  background: #fbf6e8;
  color: #705716;
  font-size: 0.78rem;
  font-weight: 750;
}

.photo-upload-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1rem;
}

.photo-upload-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 1.1rem;
  overflow: hidden;
}

.photo-upload-card-header {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--line);
}

.photo-upload-card-header h2,
.photo-upload-card-header p {
  margin: 0;
}

.photo-upload-card-header h2 {
  color: var(--blue-950);
  font-size: 1.08rem;
}

.photo-upload-card-header p {
  margin-top: 0.2rem;
  color: var(--muted);
  line-height: 1.45;
}

.photo-upload-card-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--blue-100);
  color: var(--blue-800);
  font: 800 1rem Georgia, "Times New Roman", serif;
}

.photo-upload-fields {
  display: grid;
  gap: 0.85rem;
  padding-block: 1rem;
}

.photo-upload-card .form-field {
  display: grid;
  min-width: 0;
  gap: 0.35rem;
}

.photo-upload-card .form-field label {
  color: var(--blue-950);
  font-weight: 750;
}

.photo-upload-card select,
.photo-upload-card input:not([type="file"]) {
  width: 100%;
}

.photo-file-input {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0.5rem;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
}

.photo-file-input::file-selector-button {
  margin-right: 0.7rem;
  padding: 0.5rem 0.7rem;
  border: 0;
  border-radius: 6px;
  background: var(--blue-100);
  color: var(--blue-900);
  font-weight: 700;
  cursor: pointer;
}

.field-help {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.4;
}

.photo-upload-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 0.9rem;
  border-top: 1px solid var(--line);
}

.photo-upload-actions .button {
  width: auto;
  min-width: 190px;
}

.photo-history-section {
  margin-top: 0;
}

.photo-empty-state {
  min-height: 150px;
  display: grid;
  place-content: center;
  text-align: center;
}

@media (max-width: 900px) {
  .photo-upload-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .submission-review-toolbar {
    align-items: stretch;
  }

  .toolbar-checkbox {
    width: 100%;
  }

  .photo-upload-introduction {
    align-items: flex-start;
    flex-direction: column;
  }

  .photo-upload-card {
    padding: 0.9rem;
  }

  .photo-upload-card-header {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .photo-upload-card-icon {
    width: 36px;
    height: 36px;
  }

  .photo-upload-actions {
    justify-content: stretch;
  }

  .photo-upload-actions .button {
    width: 100%;
    min-width: 0;
  }
}


/* ============================================================
   Version 7.8 — responsive public navigation and Library/Photos polish
   ============================================================ */
html,
.public-site {
  overflow-x: clip;
}

@media (max-width: 1360px) {
  /* Keep the backdrop-filtered header as the drawer's viewport anchor while
     body scrolling is locked. A sticky header otherwise returns to its
     document position when body.nav-open changes the scroll container. */
  .public-site.nav-open .site-header {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
  }

  .public-site .site-nav {
    max-width: 100vw;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.25s ease, visibility 0s linear 0.25s;
  }

  .public-site .site-nav.is-open {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
}

.library-member-access,
.library-endowed-access {
  color: var(--ink);
}

.library-member-access h2,
.library-member-access h3,
.library-endowed-access h2,
.library-endowed-access h3 {
  color: var(--blue-950);
}

.library-member-access .library-protected-heading p,
.library-endowed-access .library-protected-heading p,
.library-member-access .protected-catalog-section > header span,
.library-endowed-access .protected-catalog-section > header span,
.library-member-access .library-empty-line,
.library-endowed-access .library-empty-line,
.library-member-access .protected-catalog-section .library-book-row small,
.library-endowed-access .protected-catalog-section .library-book-row small {
  color: var(--muted);
}

.library-member-access .protected-catalog-section,
.library-endowed-access .protected-catalog-section,
.library-member-access .protected-catalog-section .library-book-list,
.library-endowed-access .protected-catalog-section .library-book-list,
.library-member-access .protected-catalog-section .library-book-row,
.library-endowed-access .protected-catalog-section .library-book-row {
  border-color: var(--line);
}

.library-member-access .protected-catalog-section .library-book-row,
.library-endowed-access .protected-catalog-section .library-book-row {
  color: var(--ink);
}

.library-access-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  margin-bottom: 0.45rem;
  padding: 0.24rem 0.55rem;
  border: 1px solid #c9d6e2;
  border-radius: 999px;
  background: #fff;
  color: var(--blue-900);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.library-endowed-access .library-access-badge {
  border-color: #d8c68f;
  background: #fffaf0;
  color: #705716;
}

.library-catalog-section--empty {
  min-height: 0;
  padding-block: 0.9rem;
}

.library-catalog-section--empty .library-empty-line {
  align-self: center;
  margin-block: 0;
}

.photo-upload-grid {
  align-items: start;
}

.photo-upload-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--app-shadow);
}

.photo-upload-actions .button {
  min-width: 210px;
}

@media (max-width: 680px) {
  .workspace-tabs-contained,
  .admin-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 0.35rem;
  }

  .workspace-tabs-contained a,
  .admin-tabs a {
    min-width: 0;
    white-space: normal;
    text-align: center;
  }

  .library-catalog-section--empty {
    padding-block: 0.85rem;
  }
}

/* ============================================================
   Version 7.9 — guided member requests and contextual photos
   ============================================================ */
.request-guided-form {
  gap: 0;
  max-width: 1120px;
  margin-inline: auto;
  padding: 0;
  border-radius: 12px;
  background: #fff;
}

.request-guided-form > .validation-summary {
  margin: 1rem 1rem 0;
}

.request-form-section {
  display: grid;
  gap: 1rem;
  min-width: 0;
  padding: 1.15rem;
  border-bottom: 1px solid var(--line);
}

.request-form-section-tinted {
  background: var(--blue-050);
}

.request-section-heading {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.request-section-heading h2,
.request-section-heading p {
  margin: 0;
}

.request-section-heading h2 {
  color: var(--blue-950);
  font-size: 1.08rem;
}

.request-section-heading p {
  margin-top: 0.18rem;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.request-step-number {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--blue-100);
  color: var(--blue-900);
  font-weight: 800;
}

.request-guided-form .field-group,
.contextual-photo-form .field-group {
  display: grid;
  min-width: 0;
  gap: 0.35rem;
}

.request-guided-form .field-group label,
.request-guided-form .member-picker > label,
.contextual-photo-form .field-group label {
  color: var(--blue-950);
  font-weight: 750;
}

.request-guided-form input:not([type="checkbox"]):not([type="radio"]),
.request-guided-form select,
.request-guided-form textarea,
.contextual-photo-form input:not([type="file"]) {
  width: 100%;
  min-width: 0;
  padding: 0.72rem 0.8rem;
  border: 1px solid var(--blue-200);
  border-radius: 9px;
  background: #fff;
  color: var(--blue-950);
  font: inherit;
}

.request-guided-form textarea,
.contextual-photo-form textarea {
  resize: vertical;
}

.request-short-field {
  max-width: 440px;
}

.request-form-section.request-participant-fields,
.request-form-section.request-child-selection {
  padding: 1.15rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
}

.request-form-section.request-participant-fields h2,
.request-form-section.request-child-selection h2 {
  font-size: 1.08rem;
}

.request-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 1.15rem;
  background: #fbfcfe;
  border-radius: 0 0 12px 12px;
}

.request-form-actions .button {
  min-width: 180px;
}

.contextual-photo-panel {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
  gap: 1.25rem;
  align-items: start;
  scroll-margin-top: 1rem;
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(13, 39, 72, 0.04);
}

.contextual-photo-preview {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
  min-width: 0;
}

.contextual-photo-preview img,
.contextual-photo-placeholder {
  width: 112px;
  height: 112px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--blue-050);
}

.contextual-photo-preview img {
  object-fit: cover;
}

.contextual-photo-placeholder {
  display: grid;
  place-items: center;
  color: var(--blue-800);
  font: 800 1.4rem Georgia, "Times New Roman", serif;
}

.contextual-photo-preview h2,
.contextual-photo-preview p {
  margin: 0;
}

.contextual-photo-preview h2 {
  margin-top: 0.08rem;
  color: var(--blue-950);
  font-size: 1.12rem;
}

.contextual-photo-preview p:last-child {
  margin-top: 0.3rem;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.contextual-photo-preview-wide {
  grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
}

.contextual-photo-preview-wide img,
.contextual-photo-preview-wide .contextual-photo-placeholder {
  width: 100%;
  height: 132px;
  border-radius: 9px;
}

.contextual-photo-form-column,
.contextual-photo-form {
  display: grid;
  gap: 0.8rem;
  min-width: 0;
}

.contextual-photo-form-column {
  padding-left: 1.15rem;
  border-left: 1px solid var(--line);
}

.contextual-photo-status {
  display: grid;
  gap: 0.45rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--blue-050);
}

.contextual-photo-status .status-pill {
  justify-self: start;
}

.contextual-photo-status p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.contextual-photo-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--line);
}

.contextual-photo-actions > a {
  color: var(--blue-700);
  font-weight: 700;
}

.photo-location-guide {
  margin-bottom: 1rem;
}

.photo-location-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.photo-location-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  text-decoration: none;
}

.photo-location-card:hover,
.photo-location-card:focus-visible {
  border-color: var(--blue-600);
  background: var(--blue-050);
}

.photo-location-card > span:last-child {
  display: grid;
  gap: 0.2rem;
}

.photo-location-card strong {
  color: var(--blue-950);
}

.photo-location-card small {
  color: var(--muted);
  line-height: 1.45;
}

.photo-location-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--blue-100);
  color: var(--blue-800);
  font-weight: 800;
}

.photo-history-heading {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
}

@media (max-width: 900px) {
  .contextual-photo-panel,
  .photo-location-actions {
    grid-template-columns: 1fr;
  }

  .contextual-photo-form-column {
    padding-top: 1rem;
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

@media (max-width: 680px) {
  .request-form-section {
    padding: 0.9rem;
  }

  .request-section-heading {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .request-step-number {
    width: 30px;
    height: 30px;
  }

  .request-form-actions {
    display: grid;
    grid-template-columns: 1fr;
    padding: 0.9rem;
  }

  .request-form-actions .button {
    width: 100%;
    min-width: 0;
  }

  .request-form-actions .button-primary {
    grid-row: 1;
  }

  .contextual-photo-preview,
  .contextual-photo-preview-wide {
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: start;
  }

  .contextual-photo-preview img,
  .contextual-photo-placeholder,
  .contextual-photo-preview-wide img,
  .contextual-photo-preview-wide .contextual-photo-placeholder {
    width: 72px;
    height: 72px;
    border-radius: 50%;
  }

  .contextual-photo-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .contextual-photo-actions .button,
  .contextual-photo-actions > a {
    width: 100%;
    text-align: center;
  }

  .photo-location-actions {
    grid-template-columns: 1fr;
  }
}

/* Version 8.0 Phase A: photo requirements and guided contextual upload panels. */
.contextual-photo-details {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
}

.contextual-photo-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--blue-050);
  color: var(--blue-900);
  font-weight: 800;
  list-style: none;
}

.contextual-photo-details > summary::-webkit-details-marker {
  display: none;
}

.contextual-photo-details > summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: #fff;
  color: var(--blue-800);
  border: 1px solid var(--line);
  font-weight: 800;
}

.contextual-photo-details[open] > summary::after {
  content: "−";
}

.contextual-photo-details[open] > summary {
  border-color: var(--blue-300);
}

.contextual-photo-details .contextual-photo-form {
  padding-top: 0.25rem;
}

.photo-requirements-card {
  display: grid;
  gap: 0.5rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fbfcfe;
}

.photo-requirements-card strong {
  color: var(--blue-950);
}

.photo-requirements-card ul {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--muted);
  line-height: 1.45;
}

.photo-requirements-card li + li {
  margin-top: 0.25rem;
}

.photo-attestation {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
  padding: 0.8rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}

.photo-attestation input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.12rem;
}

.photo-attestation label {
  margin: 0;
  color: var(--blue-950);
  font-weight: 700;
  line-height: 1.4;
}

.field-validation-error {
  color: #9d2b2b;
  font-weight: 700;
  font-size: 0.92rem;
}

.portal-access-request-details {
  margin-top: 0.75rem;
  width: min(32rem, 100%);
}

.portal-access-request-details summary {
  cursor: pointer;
  font-weight: 700;
}

.portal-access-request-form {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--border-color, #d9e2ec);
  border-radius: 1rem;
  background: var(--surface-muted, #f8fafc);
}

.portal-access-attestation {
  align-items: flex-start;
}

.portal-access-review-panel .record-grid dd {
  overflow-wrap: anywhere;
}

/* Version 8.2: contextual contact update requests */
.record-pending-change {
  margin-top: 1.1rem;
  padding: 1rem;
  border: 1px solid rgba(182, 143, 64, 0.35);
  border-radius: 18px;
  background: rgba(182, 143, 64, 0.08);
}

.pending-change-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 0.65rem;
}

.pending-change-heading strong,
.pending-change-heading small {
  display: block;
}

.pending-contact-list {
  margin-top: 0.85rem;
}

.contact-request-form .contact-same-address {
  align-items: center;
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(21, 41, 74, 0.08);
  border-radius: 14px;
  padding: 0.85rem 1rem;
}

.correction-value-block {
  white-space: pre-line;
}

@media (max-width: 680px) {
  .pending-change-heading {
    flex-direction: column;
  }
}

/* Version 8.3 contextual identity/birth record actions */
.record-editable-field dt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.record-editable-field dt a {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}

.identity-pending-change {
  margin-top: 1.25rem;
}

.pending-identity-list {
  margin-top: 0.85rem;
}

/* Version 8.4: contextual household information requests */
.household-information-panel {
  display: grid;
  gap: 1rem;
}

.household-information-heading {
  margin-bottom: 0;
}

.household-information-grid,
.proposed-household-grid {
  margin: 0;
}

.household-change-status {
  padding: 1rem;
  border: 1px solid rgba(21, 41, 74, 0.14);
  border-radius: 16px;
  background: rgba(21, 41, 74, 0.035);
}

.household-change-status.needs-attention {
  border-color: rgba(182, 143, 64, 0.4);
  background: rgba(182, 143, 64, 0.08);
}

.household-change-status-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

.household-change-status-heading > div {
  display: grid;
  gap: 0.4rem;
}

.household-change-status-heading small {
  color: var(--muted);
  white-space: nowrap;
}

.leadership-response-note {
  margin-top: 0.9rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--gold-500, #b68f40);
  background: #fff;
}

.leadership-response-note p {
  margin: 0.35rem 0 0;
}

.household-change-withdraw-form {
  margin-top: 0.9rem;
}

.contextual-household-edit-details {
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.contextual-household-edit-details > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.9rem 1rem;
  font-weight: 750;
  color: var(--blue-950);
  background: var(--blue-050);
}

.contextual-household-edit-details > summary::-webkit-details-marker {
  display: none;
}

.contextual-household-edit-form {
  padding: 1rem;
}

.contextual-household-edit-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}

@media (max-width: 680px) {
  .household-change-status-heading,
  .contextual-household-edit-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .household-change-status-heading small {
    white-space: normal;
  }

  .contextual-household-edit-actions .button {
    width: 100%;
  }
}

.household-request-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.household-request-comparison h3 {
  margin: 0 0 0.65rem;
  color: var(--blue-950);
}

.household-request-comparison .record-grid {
  grid-template-columns: 1fr;
  margin: 0;
}

@media (max-width: 760px) {
  .household-request-comparison {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Version 8.10 — unified pending changes and request history
   ============================================================ */
.contextual-photo-preview.contextual-photo-preview-text-only {
  grid-template-columns: minmax(0, 1fr);
}

.request-history-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.submitted-photo-preview {
  margin-top: 1rem;
}

.submitted-photo-preview img {
  display: block;
  width: min(100%, 520px);
  max-height: 520px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--blue-050);
}

.preserve-linebreaks { white-space: pre-line; }

/* v8.11 shared SQL-side list pagination */
.sql-pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; }
.sql-pagination-summary { color: var(--muted-text, #5f6770); font-size: 0.92rem; }
.sql-pagination-links { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
.sql-pagination-page { min-width: 2.2rem; min-height: 2.2rem; display: inline-grid; place-items: center; padding: 0.35rem 0.55rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; text-decoration: none; }
.sql-pagination-page.is-current { background: var(--surface-subtle, #f2f4f5); font-weight: 700; border-color: var(--text, #1f2933); }
@media (max-width: 680px) { .sql-pagination { align-items: stretch; } .sql-pagination-links { width: 100%; } }
.list-filter-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: end; margin: 0 0 1rem; padding: 0.9rem; border: 1px solid var(--line); border-radius: 9px; background: var(--blue-050); }
.list-filter-bar .field-group { flex: 1 1 210px; margin: 0; }
.list-filter-bar .field-group label { display: block; margin-bottom: 0.3rem; font-weight: 700; color: var(--blue-950); }
.list-filter-bar .field-group input, .list-filter-bar .field-group select { width: 100%; }
.list-filter-bar .button-row { margin: 0; align-items: center; }
@media (max-width: 680px) { .list-filter-bar { align-items: stretch; } .list-filter-bar .field-group, .list-filter-bar .button-row { flex: 1 1 100%; } .list-filter-bar .button-row .button { flex: 1 1 auto; } }
.selected-record-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; margin: 0 0 1rem; padding: 0.75rem 0.9rem; border: 1px solid var(--line); border-radius: 8px; background: var(--blue-050); }
.selected-record-summary strong { color: var(--blue-950); }
.selected-record-summary span { color: var(--muted); }

/* ============================================================
   Version 8.12 — Library reading experience and deep links
   ============================================================ */
.library-reading-empty {
  max-width: 720px;
  padding: 3rem 0 4rem;
}
.library-reading-empty .eyebrow { margin-bottom: 0.3rem; }
.library-reading-empty p:last-child { max-width: 620px; color: var(--muted); }

.book-reading-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-top: 1.25rem;
}
.book-reading-actions span {
  color: var(--muted);
  font-size: 0.88rem;
}
.book-index-heading > div > p:last-child {
  margin: 0.2rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}
.book-index-no-match {
  margin: 1.5rem 0 0;
  padding: 1rem 0;
  color: var(--muted);
  border-top: 1px solid var(--line);
}

.reader-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.reader-toolbar-context {
  display: grid;
  min-width: 0;
  gap: 0.05rem;
}
.reader-toolbar-context span,
.reader-toolbar-context strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reader-toolbar-context span {
  color: var(--muted);
  font-size: 0.78rem;
}
.reader-toolbar-context strong {
  color: var(--blue-950);
  font-size: 0.88rem;
}
.reader-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.reader-toolbar-actions a,
.reader-toolbar-disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0.35rem 0.55rem;
  border-radius: 5px;
  white-space: nowrap;
}
.reader-toolbar-actions a { text-decoration: none; }
.reader-toolbar-actions a:hover,
.reader-toolbar-actions a:focus-visible { background: var(--blue-100); }
.reader-toolbar-contents { border-inline: 1px solid var(--line); }
.reader-toolbar-disabled { color: #97a1ab; }

.library-paragraph,
.library-list,
.library-blockquote {
  scroll-margin-top: 8.5rem;
  border-radius: 4px;
  transition: background-color 180ms ease, box-shadow 180ms ease;
}
.library-paragraph:target,
.library-list:target,
.library-blockquote:target {
  background: #fff7dc;
  box-shadow: 0 0 0 0.35rem #fff7dc;
}

.library-search-page .reading-container { max-width: 980px; }
.library-search-form { margin-bottom: 1rem; }
.library-search-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 1.25rem 0 0.35rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}
.library-search-summary p { margin: 0; }
.library-search-summary strong { color: var(--blue-950); }
.library-search-results { gap: 0; }
.library-search-results article,
.search-results .library-search-result {
  padding: 1.15rem 0.15rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
.library-search-result .eyebrow { margin-bottom: 0.2rem; }
.library-search-result h2 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.55rem); }
.library-search-location {
  margin: 0.25rem 0 0;
  color: var(--blue-800);
  font-size: 0.86rem;
  font-weight: 700;
}
.library-search-excerpt {
  max-width: 780px;
  margin: 0.55rem 0 0;
  color: var(--text);
  line-height: 1.6;
}

@media (max-width: 760px) {
  .reader-toolbar {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
  .reader-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
  }
  .reader-toolbar-actions > :last-child { justify-self: end; }
  .reader-toolbar-actions > :first-child { justify-self: start; }
  .library-paragraph,
  .library-blockquote { scroll-margin-top: 10.5rem; }
  .library-search-summary { align-items: flex-start; flex-direction: column; gap: 0.2rem; }
}

@media (max-width: 520px) {
  .book-reading-actions { align-items: stretch; flex-direction: column; }
  .book-reading-actions .button { width: 100%; }
  .reader-toolbar-context { display: none; }
  .reader-toolbar-actions { grid-template-columns: 1fr auto 1fr; }
  .reader-toolbar-actions a,
  .reader-toolbar-disabled { padding-inline: 0.35rem; font-size: 0.8rem; }
}

/* v8.13 Library review lifecycle */
.library-review-start {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.library-review-start p,
.library-submission-next-step p {
  margin-bottom: 0;
}
@media (max-width: 700px) {
  .library-review-start {
    align-items: stretch;
    flex-direction: column;
  }
  .library-review-start form .button {
    width: 100%;
  }
}

/* v8.14 Library workflow UX polish */
.review-layout-single {
  grid-template-columns: minmax(0, 1fr);
}
.review-layout-single .review-source {
  width: 100%;
  max-width: none;
}

.library-submission-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--line);
}
.library-submission-meta > div {
  display: grid;
  grid-template-columns: minmax(105px, .7fr) minmax(0, 1.3fr);
  gap: .6rem;
  align-items: start;
  padding: .58rem .65rem;
  border-bottom: 1px solid var(--line);
}
.library-submission-meta > div:nth-child(odd) {
  padding-left: 0;
  padding-right: 1rem;
}
.library-submission-meta > div:nth-child(even) {
  padding-left: 1rem;
}
.library-submission-meta dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.library-submission-meta dd {
  min-width: 0;
  margin: 0;
  color: var(--text);
  overflow-wrap: anywhere;
}

.library-history-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.35rem;
}
.library-history-heading h3 {
  margin: 0;
}
.library-activity-timeline {
  max-height: 31rem;
  overflow-y: auto;
  padding-right: .35rem;
  scrollbar-gutter: stable;
}
.library-activity-timeline li {
  padding-block: .65rem;
}
.library-activity-timeline li > div strong {
  color: var(--blue-950);
}
.library-activity-timeline p {
  max-width: 78ch;
}

@media (max-width: 760px) {
  .library-submission-meta {
    grid-template-columns: 1fr;
  }
  .library-submission-meta > div,
  .library-submission-meta > div:nth-child(odd),
  .library-submission-meta > div:nth-child(even) {
    grid-template-columns: minmax(95px, .6fr) minmax(0, 1.4fr);
    padding-inline: 0;
  }
  .library-activity-timeline {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }
}

@media (max-width: 480px) {
  .library-submission-meta > div,
  .library-submission-meta > div:nth-child(odd),
  .library-submission-meta > div:nth-child(even) {
    grid-template-columns: 1fr;
    gap: .2rem;
  }
  .library-activity-timeline li > div {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
  }
}

/* v8.15 Member Record action hierarchy */
.record-action-guidance {
  margin: -.25rem 0 1rem;
  padding: .72rem .9rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .62);
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
}
.record-action-guidance strong {
  color: var(--blue-950);
}

.record-contact-list .record-editable-field dt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.record-contact-list .record-editable-field dt a {
  flex: 0 0 auto;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 560px) {
  .record-action-guidance {
    margin-top: 0;
  }
}

/* v8.16 My Family / Household action hierarchy */
.family-record-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin: 0 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255, 255, 255, .72);
}
.family-record-actions h2 {
  margin: .05rem 0 .2rem;
  color: var(--blue-950);
  font-size: 1.15rem;
}
.family-record-actions p:not(.eyebrow) {
  max-width: 62ch;
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
}
.family-record-action-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
}

.member-empty-state {
  max-width: none;
  padding: 1.15rem 1.25rem;
  text-align: left;
}
.member-empty-state .eyebrow {
  margin-bottom: .3rem;
}
.member-empty-state h2 {
  margin: 0 0 .4rem;
  color: var(--blue-950);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}
.member-empty-state p {
  max-width: 72ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}
.member-empty-state .button {
  margin-top: .75rem;
}

.household-information-grid .record-editable-field dt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.household-information-grid .record-editable-field dt a {
  flex: 0 0 auto;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 760px) {
  .family-record-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .family-record-action-links {
    justify-content: flex-start;
  }
}

/* v8.17 Leadership directory readability */
.leadership-directory-table td {
  vertical-align: middle;
}
.leadership-directory-table .table-primary-link {
  display: inline-block;
  max-width: 100%;
  line-height: 1.25;
}
.directory-access-summary,
.directory-people-summary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .3rem;
}
.directory-access-summary small,
.directory-people-summary small {
  color: var(--muted);
  line-height: 1.3;
}
.directory-people-summary strong {
  font-size: .92rem;
  font-weight: 700;
}

@media (max-width: 760px) {
  .leadership-directory-table .directory-access-summary,
  .leadership-directory-table .directory-people-summary {
    align-items: flex-end;
    text-align: right;
  }
}

/* v8.18 Pending Changes queue readability */
.pending-changes-toolbar {
  display: grid;
  grid-template-columns: minmax(270px, 1.35fr) minmax(240px, 1.15fr) minmax(165px, .75fr) minmax(210px, .95fr) auto;
  align-items: end;
  gap: .7rem;
}
.pending-changes-toolbar .toolbar-search {
  min-width: 0;
}
.pending-changes-toolbar-actions {
  display: flex;
  align-items: center;
  gap: .35rem;
  white-space: nowrap;
}
.pending-changes-toolbar .toolbar-count {
  grid-column: 1 / -1;
  justify-self: end;
  margin-top: -.25rem;
}

.unified-pending-change-list > a {
  align-items: center;
  gap: 1rem;
  padding-block: .9rem;
}
.pending-change-main {
  min-width: 0;
}
.pending-change-main > strong {
  display: block;
  line-height: 1.35;
}
.pending-change-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .22rem .8rem;
  margin-top: .28rem;
  color: var(--muted);
  line-height: 1.4;
}
.pending-change-meta > span:first-child {
  min-width: min(100%, 320px);
  color: var(--text-soft, var(--muted));
}
.pending-change-meta time {
  white-space: nowrap;
}
.unified-pending-change-list > a > .status-pill {
  flex: 0 0 auto;
}

@media (max-width: 1180px) {
  .pending-changes-toolbar {
    grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(160px, 1fr));
  }
  .pending-changes-toolbar-actions {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 760px) {
  .pending-changes-toolbar {
    grid-template-columns: 1fr;
  }
  .pending-changes-toolbar-actions,
  .pending-changes-toolbar .toolbar-count {
    grid-column: 1;
    justify-self: stretch;
  }
  .pending-changes-toolbar-actions .button {
    flex: 1 1 0;
  }
  .pending-changes-toolbar .toolbar-count {
    text-align: left;
  }
  .unified-pending-change-list > a {
    align-items: flex-start;
  }
  .pending-change-meta {
    display: grid;
    gap: .16rem;
  }
}

/* v8.19 Leadership/admin UX consolidation */
.announcement-admin-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
}
.announcement-admin-grid .announcement-list-panel .compact-empty-state {
  min-height: 12rem;
  display: grid;
  align-content: center;
}
.announcement-admin-grid .announcement-editor {
  align-self: start;
}

.library-section-admin-layout {
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
  align-items: start;
}
.library-section-editor {
  position: sticky;
  top: 1rem;
}
.library-section-editor .library-section-form-grid {
  grid-template-columns: 1fr;
}
.library-section-editor .library-section-form-grid .span-two {
  grid-column: auto;
}
.admin-editor-intro {
  margin: -.35rem 0 .9rem;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.45;
}
.library-section-list .app-table th:last-child,
.library-section-list .app-table td:last-child {
  min-width: 185px;
}

@media (max-width: 980px) {
  .announcement-admin-grid,
  .library-section-admin-layout {
    grid-template-columns: 1fr;
  }
  .announcement-editor,
  .library-section-editor {
    position: static;
  }
  .library-section-editor .library-section-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .library-section-editor .library-section-form-grid .span-two {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .library-section-editor .library-section-form-grid {
    grid-template-columns: 1fr;
  }
  .library-section-editor .library-section-form-grid .span-two {
    grid-column: auto;
  }
}

/* v8.20 Final member-portal / responsive UX sweep */
.account-overview-help {
  margin: .7rem 0 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.4;
}

.member-request-empty-state {
  display: grid;
  justify-items: center;
  gap: .35rem;
}
.member-request-empty-state p {
  max-width: 62ch;
  margin-bottom: 0;
}
.empty-state-link-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem .9rem;
  margin-top: .35rem;
}
.empty-state-link-row a {
  color: var(--blue-800);
  font-weight: 750;
}

/* The Notifications markup already uses settings-section/settings-row. Give those
   controls the compact application treatment intended by the page structure. */
.notification-preferences-form .settings-section {
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.notification-preferences-form .settings-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: .8rem .9rem .65rem;
  border-bottom: 1px solid var(--line);
}
.notification-preferences-form .settings-section-heading h2 {
  margin: 0;
  color: var(--blue-950);
  font-size: 1.15rem;
}
.notification-preferences-form .settings-section-heading p {
  margin: .15rem 0 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.4;
}
.notification-preferences-form .settings-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
  gap: 1rem;
  align-items: center;
  padding: .7rem .9rem;
  border-bottom: 1px solid var(--line);
}
.notification-preferences-form .settings-row > div {
  display: grid;
  gap: .12rem;
}
.notification-preferences-form .settings-row strong {
  color: var(--blue-950);
  font-size: .86rem;
}
.notification-preferences-form .settings-row span {
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
}
.notification-preferences-form .settings-row select {
  width: 100%;
  min-height: 38px;
  padding: .42rem .55rem;
  border: 1px solid #afbecc;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font: inherit;
}
.notification-preferences-form .required-notification-note {
  border-left: 4px solid var(--gold-500, #b69a53);
}
.notification-preferences-form .required-notification-note .settings-section-heading {
  border-bottom: 0;
}
.notification-preferences-form > .button-row {
  justify-content: flex-end;
  margin-top: 0;
}

.family-secondary-settings {
  margin-top: 1rem;
}

@media (max-width: 680px) {
  .notification-preferences-form .settings-row {
    grid-template-columns: 1fr;
    gap: .5rem;
  }
  .notification-preferences-form > .button-row,
  .notification-preferences-form > .button-row .button {
    width: 100%;
  }
  .notification-preferences-form > .button-row .button {
    justify-content: center;
  }
}

@media (max-width: 560px) {
  .family-record-action-links {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .family-record-action-links .button {
    width: 100%;
    justify-content: center;
  }
  .member-request-empty-state {
    justify-items: stretch;
    text-align: left;
  }
  .empty-state-link-row {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .empty-state-link-row a {
    padding: .55rem .65rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
  }
}

@media (max-width: 480px) {
  /* "My account" is redundant inside the member workspace and is the first
     utility to yield when the top bar becomes narrow. Library and Sign out stay. */
  .member-account-workspace .workspace-utilities a:nth-of-type(3) {
    display: none;
  }
  .workspace-topbar-inner {
    gap: .45rem;
  }
  .workspace-brand {
    gap: .45rem;
  }
  .workspace-brand img {
    width: 34px;
    height: 34px;
  }
}

/* P1I public contact refinement */
.contact-copy {
  align-self: start;
  max-width: 660px;
}

.contact-copy-note {
  max-width: 570px;
  margin-top: 1.35rem;
  padding: 0.95rem 1rem;
  border-left: 3px solid var(--gold-500);
  border-radius: 0 10px 10px 0;
  background: rgba(255,255,255,.62);
  color: var(--blue-900);
  font-size: 0.94rem;
  line-height: 1.55;
}

.contact-form-card {
  align-self: start;
  padding: clamp(1.6rem, 3vw, 2.15rem);
}

.contact-form-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.contact-form-kicker {
  margin: 0 0 0.25rem;
  color: var(--gold-700);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-form-shield {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.35rem 0.65rem;
  border: 1px solid #c8d8e6;
  border-radius: 999px;
  background: #f4f9fc;
  color: #173f67;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.03em;
}

.contact-form-intro {
  max-width: 34rem;
  margin-bottom: 1.15rem;
  line-height: 1.55;
}

.public-contact-form {
  gap: 0.9rem;
}

.contact-form-grid {
  gap: 0.85rem 0.95rem;
}

.contact-form-field {
  gap: 0.32rem;
}

.contact-form-field input,
.contact-form-field textarea {
  min-height: 46px;
  padding: 0.66rem 0.75rem;
  border-color: #bdcbd8;
  border-radius: 8px;
}

.contact-form-field textarea {
  min-height: 7.25rem;
  line-height: 1.5;
}

.contact-security-row {
  display: grid;
  gap: 0.35rem;
}

.contact-security-row p {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.contact-security-check {
  min-height: 65px;
}

.contact-submit {
  min-height: 50px;
}

.contact-note {
  margin-top: 0.2rem;
  line-height: 1.5;
}

.contact-note a {
  font-weight: 700;
}

.contact-location {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

@media (max-width: 680px) {
  .contact-form-heading {
    display: block;
  }

  .contact-form-shield {
    margin-top: 0.75rem;
  }
}

/* P1I logo fallback wrappers */
.brand > picture,
.workspace-brand > picture {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.footer-brand picture,
.not-found-layout picture {
  display: block;
}

/* P1I production privacy notice */
.privacy-summary {
  max-width: 760px;
  margin: 1.25rem 0 2.25rem;
  padding: 1.1rem 1.2rem;
  border-left: 4px solid var(--gold-500);
  border-radius: 0 10px 10px 0;
  background: #fbfaf6;
  color: var(--blue-900);
  font-size: 1.05rem;
  line-height: 1.65;
}

.privacy-content > p {
  line-height: 1.7;
}

.privacy-content h2 {
  scroll-margin-top: 110px;
  color: var(--blue-950);
}

/* Version 8.24 P1M.2 compact My Family cards and in-place details dialog */
.family-directory-section .family-person-list {
  gap: 0.45rem;
}

.family-person-row {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
}

.family-person-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  gap: 0.65rem;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(13, 39, 72, 0.025);
  transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.family-person-card:hover,
.family-person-card:focus-visible {
  border-color: var(--blue-300);
  box-shadow: 0 5px 18px rgba(13, 39, 72, 0.08);
}

.family-person-card:active {
  transform: translateY(1px);
}

.family-person-card .family-person-photo {
  width: 42px;
  height: 42px;
}

.family-person-card .family-person-main {
  gap: 0.04rem;
}

.family-person-card .family-person-main strong {
  font-size: 0.94rem;
  line-height: 1.2;
}

.family-person-card .family-person-main span {
  font-size: 0.78rem;
  line-height: 1.25;
}

.family-person-key-date,
.family-person-view-cue {
  color: var(--muted);
  font-size: 0.76rem;
  white-space: nowrap;
}

.family-person-view-cue {
  color: var(--blue-700);
  font-weight: 750;
}

.family-detail-dialog {
  width: min(760px, calc(100vw - 2rem));
  max-height: min(82vh, 760px);
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: var(--paper);
  color: inherit;
  box-shadow: 0 24px 70px rgba(7, 28, 54, 0.28);
}

.family-detail-dialog::backdrop {
  background: rgba(7, 28, 54, 0.58);
  backdrop-filter: blur(2px);
}

.family-detail-dialog-panel {
  display: grid;
  gap: 1rem;
  max-height: min(82vh, 760px);
  overflow-y: auto;
  padding: 1rem;
}

.family-detail-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--line);
}

.family-detail-dialog-identity {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
}

.family-detail-dialog-identity h3,
.family-detail-dialog-identity p {
  margin: 0;
}

.family-detail-dialog-identity h3 {
  overflow-wrap: anywhere;
  color: var(--blue-950);
  font-size: 1.3rem;
}

.family-detail-dialog-photo {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--blue-050);
}

.family-detail-preferred {
  margin-top: 0.15rem !important;
  color: var(--muted);
  font-size: 0.84rem;
}

.family-dialog-close {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  color: var(--blue-900);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.family-detail-dialog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.family-detail-dialog-grid > section {
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.family-detail-dialog-grid h4 {
  margin: 0 0 0.65rem;
  color: var(--blue-950);
  font-size: 0.92rem;
}

.family-dialog-record-grid {
  margin: 0;
}

.family-dialog-record-grid dd {
  overflow-wrap: anywhere;
}

.family-detail-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  padding-top: 0.2rem;
}

.family-detail-dialog-actions form {
  margin-left: auto;
}

@media (max-width: 760px) {
  .family-person-card {
    grid-template-columns: 40px minmax(0, 1fr) auto;
  }

  .family-person-card .family-person-photo {
    width: 40px;
    height: 40px;
  }

  .family-person-key-date {
    grid-column: 2 / -1;
    justify-self: start;
    margin-top: -0.15rem;
  }

  .family-person-view-cue {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .family-detail-dialog-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .family-person-card {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .family-person-view-cue {
    display: none;
  }

  .family-person-key-date {
    grid-column: 2;
  }

  .family-detail-dialog {
    width: calc(100vw - 1rem);
    max-height: 90vh;
  }

  .family-detail-dialog-panel {
    max-height: 90vh;
    padding: 0.8rem;
  }

  .family-detail-dialog-actions,
  .family-detail-dialog-actions .button,
  .family-detail-dialog-actions form {
    width: 100%;
  }

  .family-detail-dialog-actions form {
    margin-left: 0;
  }
}


/* Version 8.24 P1M.3 read-only family record details */
.family-detail-dialog {
  width: min(700px, calc(100vw - 2rem));
}

.family-detail-dialog-panel {
  gap: 0.8rem;
  padding: 1rem 1.1rem;
}

.family-detail-dialog-content {
  display: grid;
  gap: 0;
}

.family-detail-section {
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line);
}

.family-detail-section:first-child {
  padding-top: 0.2rem;
}

.family-detail-section:last-child {
  border-bottom: 0;
}

.family-detail-section h4 {
  margin: 0 0 0.45rem;
  color: var(--blue-950);
  font-size: 0.92rem;
}

.family-detail-list {
  margin: 0;
}

.family-detail-list > div {
  display: grid;
  grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: baseline;
  padding: 0.48rem 0;
  border-bottom: 1px solid var(--line-soft, #e8edf3);
}

.family-detail-list > div:last-child {
  border-bottom: 0;
}

.family-detail-list dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.family-detail-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--blue-950);
  font-size: 0.9rem;
  font-weight: 650;
}

.family-ordinance-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.family-ordinance-list li {
  display: grid;
  grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: baseline;
  padding: 0.48rem 0;
  border-bottom: 1px solid var(--line-soft, #e8edf3);
}

.family-ordinance-list li:last-child {
  border-bottom: 0;
}

.family-ordinance-list span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.family-ordinance-list strong {
  color: var(--blue-950);
  font-size: 0.9rem;
  font-weight: 650;
}

.family-detail-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.family-detail-dialog-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.3rem;
}

.family-detail-dialog-footer p {
  margin: 0;
  color: var(--muted);
  font-size: 0.8rem;
}

.family-detail-dialog-footer form {
  flex: 0 0 auto;
}

@media (max-width: 600px) {
  .family-detail-dialog {
    width: calc(100vw - 1rem);
  }

  .family-detail-dialog-panel {
    padding: 0.85rem;
  }

  .family-detail-list > div,
  .family-ordinance-list li {
    grid-template-columns: 1fr;
    gap: 0.12rem;
  }

  .family-detail-dialog-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .family-detail-dialog-footer form,
  .family-detail-dialog-footer button {
    width: 100%;
  }
}

/* Version 8.24 P1M.4 family privacy and current-age refinement */
.family-detail-age {
  display: inline-block;
  margin-left: 0.7rem;
  padding-left: 0.7rem;
  border-left: 1px solid var(--border-color);
  color: var(--text-muted);
  font-weight: 700;
}

/* Phase 3 independent My Family directory search and paging */
.family-directory-section[aria-busy="true"] {
  opacity: 0.62;
  pointer-events: none;
}

.family-directory-section {
  transition: opacity 120ms ease;
}

.family-section-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 0.65rem;
  align-items: end;
  margin: 0 0 0.85rem;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--blue-050);
}

.family-section-toolbar label {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  color: var(--blue-950);
  font-size: 0.8rem;
  font-weight: 750;
}

.family-section-toolbar input[type="search"] {
  width: 100%;
  min-width: 0;
}

.family-section-empty {
  padding: 0.8rem;
  border: 1px dashed var(--line);
  border-radius: 9px;
  background: #fff;
  color: var(--muted);
}

.family-section-empty p {
  margin: 0;
}

.family-section-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.7rem;
  margin-top: 0.85rem;
}

.family-section-pagination span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
  .family-directory-section {
    transition: none;
  }
}

@media (max-width: 600px) {
  .family-section-toolbar {
    grid-template-columns: 1fr 1fr;
  }

  .family-section-toolbar label {
    grid-column: 1 / -1;
  }

  .family-section-toolbar .button {
    width: 100%;
  }

  .family-section-pagination {
    justify-content: space-between;
  }
}


/* Version 8.24 P1M.5 context-preserving authorization UX */
.self-review-notice {
  margin-bottom: 1rem;
}
.pending-change-status-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
  max-width: 18rem;
}
.pending-change-review-restriction {
  color: var(--gold-700, #8a6500);
  font-weight: 700;
  line-height: 1.25;
  text-align: right;
}
.access-denied-actions {
  margin-top: 1.25rem;
}
@media (max-width: 720px) {
  .pending-change-status-stack {
    align-items: flex-start;
    max-width: none;
  }
  .pending-change-review-restriction {
    text-align: left;
  }
}

/* Version 8.27 P1U Library reading layout and constrained rich-text authoring */
.book-layout {
  display: block;
  padding-top: 1rem;
}
.book-header,
.authenticated-session .book-header {
  position: static;
  top: auto;
  max-width: 980px;
  padding: 1rem 0 1.6rem;
}
.book-header h1 {
  max-width: 900px;
}
.book-summary {
  max-width: 900px;
  margin-top: 1.15rem;
  color: var(--text);
  font-size: 1rem;
  line-height: 1.7;
}
.book-summary p {
  margin: 0 0 1rem;
}
.book-summary p:last-child {
  margin-bottom: 0;
}
.book-summary-admin p {
  margin: 0 0 0.85rem;
}
.book-summary-admin p:last-child {
  margin-bottom: 0;
}
.book-index {
  margin-top: 0.65rem;
}
.reader-toolbar,
.authenticated-session .reader-toolbar {
  position: static;
  top: auto;
  z-index: auto;
  margin-bottom: 1rem;
  background: var(--paper);
  backdrop-filter: none;
}
.library-prose .library-heading,
.library-formatted-preview .library-heading {
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  line-height: 1.3;
}
.library-prose .library-heading-level-2,
.library-formatted-preview .library-heading-level-2 {
  margin: 2.1rem 0 0.8rem;
  font-size: clamp(1.45rem, 2.5vw, 1.9rem);
}
.library-prose .library-heading-level-3,
.library-formatted-preview .library-heading-level-3 {
  margin: 1.7rem 0 0.65rem;
  font-size: clamp(1.18rem, 2vw, 1.45rem);
}
.library-prose > .library-heading:first-child,
.library-formatted-preview > .library-heading:first-child {
  margin-top: 0;
}
.library-prose u,
.library-formatted-preview u {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.14em;
}
.library-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.35rem 0 0.45rem;
  padding: 0.45rem;
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
  background: #f7f9fb;
}
.library-editor-button {
  min-height: 34px;
  padding: 0.35rem 0.6rem;
  border: 1px solid #b8c5d1;
  border-radius: 5px;
  background: var(--paper);
  color: var(--blue-950);
  font: inherit;
  font-size: 0.84rem;
  font-weight: 750;
  cursor: pointer;
}
.library-editor-button:hover,
.library-editor-button:focus-visible {
  border-color: var(--blue-700);
  background: var(--blue-100);
}
.library-editor-toolbar + textarea[data-library-rich-editor] {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.library-formatting-help {
  display: block;
  margin-top: 0.45rem;
}
.library-formatted-preview {
  white-space: normal;
}
.library-formatted-preview p,
.submission-summary-prose p {
  margin: 0 0 1rem;
}
.library-formatted-preview p:last-child,
.submission-summary-prose p:last-child {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .book-header,
  .authenticated-session .book-header {
    padding-top: 0.5rem;
  }
  .reader-toolbar {
    margin-bottom: 0.65rem;
  }
  .library-editor-button {
    flex: 1 1 auto;
  }
}

/* Version 8.28 P1V Library hierarchical contents index */
.book-index-back-link {
  display: inline-flex;
  margin-bottom: 0.7rem;
  color: var(--blue-800);
  font-size: 0.88rem;
  font-weight: 750;
  text-decoration: none;
}
.book-index-back-link:hover,
.book-index-back-link:focus-visible {
  text-decoration: underline;
}
.compact-index-list a {
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 0.95rem 0.25rem;
}
.book-index-parent .index-title {
  gap: 0.18rem;
}
.book-index-parent .index-title strong {
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.05rem;
}
.book-index-parent .index-title small {
  font-size: 0.8rem;
}

/* Version 8.32.13 P1Z9E Teachings contents keep each maintained category with its direct reader links. */
.teaching-index-category {
  scroll-margin-top: calc(var(--site-header-height, 0px) + 1rem);
}
.teaching-index-category h3 {
  margin-bottom: 0.55rem;
}
.teaching-index-list {
  margin-left: clamp(0.65rem, 3vw, 1.35rem);
  padding-left: clamp(0.65rem, 2.5vw, 1rem);
  border-left: 2px solid var(--blue-200);
}
.teaching-index-list a {
  padding-right: 0.25rem;
}
/* Version 8.28.2 P1V.2: date labels are per-entry metadata, never hierarchy. */
.compact-index-list .book-index-dated a {
  grid-template-columns: 9.5rem minmax(0, 1fr) auto;
}
.compact-index-list .book-index-dated .index-number {
  text-align: left;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .compact-index-list .book-index-dated a {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 0.2rem;
  }

  .compact-index-list .book-index-dated .index-number,
  .compact-index-list .book-index-dated .index-title {
    grid-column: 1;
  }

  .compact-index-list .book-index-dated .index-number {
    font-size: 0.8rem;
  }

  .compact-index-list .book-index-dated a > span[aria-hidden="true"] {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
  }
}

/* Version 8.29 P1W Library list authoring */
.library-prose .library-list,
.library-formatted-preview .library-list {
  margin: 0 0 1rem 1.35rem;
  padding-left: 1.25rem;
}
.library-prose .library-list li,
.library-formatted-preview .library-list li {
  margin: 0.32rem 0;
  padding-left: 0.15rem;
}
.library-prose .library-numbered-list,
.library-formatted-preview .library-numbered-list {
  list-style-type: decimal;
}
.library-prose .library-bulleted-list,
.library-formatted-preview .library-bulleted-list {
  list-style-type: disc;
}

/* Version 8.32.6 P1Z5 Library blockquote authoring */
.library-prose .library-blockquote,
.library-formatted-preview .library-blockquote,
.submission-prose .library-blockquote {
  margin: 1.45rem 0;
  padding: 0.85rem 1rem 0.85rem 1.15rem;
  border-inline-start: 4px solid var(--blue-700);
  border-radius: 0 6px 6px 0;
  background: #f4f7fa;
  color: #2b3d52;
}
.library-prose .library-blockquote p,
.library-formatted-preview .library-blockquote p,
.submission-prose .library-blockquote p {
  margin: 0;
}



/* ============================================================
   Version 8.30 P1X — Library navigation, reading experience, and Listen
   ============================================================ */
:root {
  --site-header-height: 86px;
  --library-sticky-z: 88;
  --library-reading-measure: 760px;
}

.site-header {
  background: rgba(248, 246, 240, 0.985);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.site-header.is-scrolled {
  border-bottom-color: rgba(31, 79, 143, 0.14);
  box-shadow: 0 6px 20px rgba(11, 36, 66, 0.075);
}

/* Authenticated public pages keep the public header and add the member rail. */
.public-nav-signout { margin: 0; }
.public-nav-signout button {
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.member-public-site-shell .workspace-frame {
  min-height: calc(100vh - var(--site-header-height));
  background: var(--paper);
}
.member-public-site-shell .workspace-sidebar {
  top: var(--site-header-height);
  height: calc(100vh - var(--site-header-height));
}
.member-public-site-shell .workspace-main { background: var(--paper); }

/* Full-bleed book artwork must stay inside the authenticated member column. */
.member-public-site-shell .workspace-main .book-page .book-hero-banner {
  width: 100%;
  margin-inline: 0;
  padding-inline: max(1rem, calc((100% - 1160px) / 2));
}

/* Automated finance workspace */
.finance-information-banner { margin-bottom: 1rem; }
.finance-transactions-table { min-width: 1120px; }
.finance-transactions-table th:nth-child(1) { width: 25%; }
.finance-transactions-table th:nth-child(2) { width: 10%; }
.finance-transactions-table th:nth-child(3) { width: 27%; }
.finance-transactions-table th:nth-child(4) { width: 38%; }
.finance-row-needs-attention { background: #fffaf0; }
.finance-resolution-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.35rem;
}
.finance-annotation-form { align-items: stretch; }
.finance-autosave-status {
  flex-basis: 100%;
  color: var(--muted);
  font-size: 0.76rem;
}
.finance-autosave-status.is-error { color: #a33a2b; }
.finance-fact-details { margin-top: 0.35rem; }
.finance-fact-details summary {
  color: var(--blue-800);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.finance-provider-evidence,
.finance-provider-version-history,
.finance-provider-version {
  display: grid;
  gap: .28rem;
}
.finance-provider-evidence { margin-top: .5rem; }
.finance-provider-version-history { margin-top: .35rem; }
.finance-provider-version-history > summary {
  color: var(--blue-800);
  cursor: pointer;
  font-size: .78rem;
  font-weight: 700;
}
.finance-provider-version-history > p {
  margin: .45rem 0 0;
  color: var(--muted);
  font-size: .78rem;
}
.finance-provider-version {
  min-width: 0;
  margin-top: .45rem;
  padding: .5rem;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: #fff;
  overflow-wrap: anywhere;
}
.finance-link-reason {
  display: block;
  margin-top: 0.55rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--line);
}
.financial-disbursement-link { display: grid; gap: 0.25rem; }
.finance-reconciliation-metrics .metric-card {
  color: inherit;
  text-decoration: none;
}
.finance-reconciliation-metrics .metric-card.is-active {
  border-color: var(--blue-800);
  box-shadow: inset 0 0 0 1px var(--blue-800), var(--shadow-soft);
}
.finance-period-controls { margin-top: 1rem; }

@media (max-width: 900px) {
  .member-public-site-shell .workspace-frame { min-height: auto; }
}

.library-breadcrumbs,
.reader-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  margin: 0 0 0.65rem;
  padding: 0.15rem 0;
  overflow-x: auto;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
  white-space: nowrap;
  scrollbar-width: none;
}
.library-breadcrumbs::-webkit-scrollbar,
.reader-breadcrumbs::-webkit-scrollbar { display: none; }
.library-breadcrumbs a,
.reader-breadcrumbs a {
  color: var(--blue-800);
  font-weight: 700;
  text-decoration: none;
}
.library-breadcrumbs a:hover,
.library-breadcrumbs a:focus-visible,
.reader-breadcrumbs a:hover,
.reader-breadcrumbs a:focus-visible { text-decoration: underline; }
.library-breadcrumbs span[aria-current="page"],
.reader-breadcrumbs span[aria-current="page"] { color: var(--blue-950); font-weight: 700; }

.library-section-nav,
.library-context-bar {
  position: sticky;
  top: calc(var(--site-header-height, 0px) - 1px);
  z-index: var(--library-sticky-z);
}
.library-section-nav {
  border-top: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 252, 254, 0.985);
  box-shadow: 0 4px 14px rgba(11, 36, 66, 0.045);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.library-section-nav .container {
  min-height: 46px;
  gap: 0.45rem;
}
.library-section-nav a {
  padding: 0.48rem 0.66rem;
  border-radius: 999px;
}
.library-section-nav a:hover,
.library-section-nav a:focus-visible {
  background: var(--blue-100);
  text-decoration: none;
}

.library-command-header {
  padding: clamp(1.6rem, 4vw, 3rem) 0 clamp(1.35rem, 3vw, 2.1rem);
  background:
    radial-gradient(circle at 82% 20%, rgba(31, 79, 143, 0.08), transparent 32%),
    var(--paper);
}
.library-command-inner {
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 0.65fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}
.library-command-header h1 {
  font-size: clamp(2.6rem, 5vw, 4.5rem);
}
.library-command-inner > div:first-child > p:last-child {
  max-width: 650px;
  font-size: 1.02rem;
  line-height: 1.65;
}
.library-command-search {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 10px 28px rgba(11, 36, 66, 0.055);
}
.library-command-search > p {
  margin: 0.55rem 0 0;
  color: var(--muted);
  font-size: 0.8rem;
}
.library-search-compact {
  display: block;
}
.library-search-compact label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--blue-950);
  font-size: 0.82rem;
  font-weight: 800;
}
.library-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
}
.library-search-compact input {
  min-height: 46px;
  border-radius: 9px;
}
.library-search-compact button {
  min-height: 46px;
  border-radius: 9px;
}
.library-catalog {
  padding-top: 1.5rem;
}
.library-catalog-section {
  grid-template-columns: minmax(190px, 0.24fr) minmax(0, 0.76fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  padding: 1.6rem 0;
}
.library-book-row {
  padding: 0.82rem 0.45rem;
  border-radius: 7px;
  transition: background 160ms ease, transform 160ms ease;
}
.library-book-row:hover,
.library-book-row:focus-visible {
  background: var(--blue-050);
  transform: translateX(2px);
}
.library-protected {
  margin: 0;
  padding: 2rem 0 2.5rem;
  border-top: 1px solid var(--line);
  background: #f4f7fb;
  color: var(--text);
}
.library-protected + .library-protected {
  border-top-color: rgba(31, 79, 143, 0.16);
  background: #edf3fa;
}
.library-protected h2,
.library-protected h3,
.protected-catalog-section .library-book-row { color: var(--blue-950); }
.library-protected-heading p,
.protected-catalog-section > header span,
.protected-catalog-section .library-book-row small { color: var(--muted); }
.protected-catalog-section,
.protected-catalog-section .library-book-list,
.protected-catalog-section .library-book-row { border-color: var(--line); }
.library-access-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0.2rem 0.55rem;
  border: 1px solid rgba(31, 79, 143, 0.18);
  border-radius: 999px;
  background: #fff;
  color: var(--blue-900);
}

.library-context-bar {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 0 0 10px 10px;
  background: rgba(255, 255, 255, 0.985);
  box-shadow: 0 7px 18px rgba(11, 36, 66, 0.065);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.library-context-identity {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.8rem;
  white-space: nowrap;
}
.library-context-identity a {
  color: var(--blue-800);
  font-weight: 700;
  text-decoration: none;
}
.library-context-identity strong,
.library-context-identity span:last-child {
  overflow: hidden;
  color: var(--blue-950);
  text-overflow: ellipsis;
}
.library-context-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.library-context-actions > a,
.library-context-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0.35rem 0.58rem;
  border-radius: 6px;
  color: var(--blue-900);
  font-size: 0.82rem;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.library-context-actions > a:hover,
.library-context-actions > a:focus-visible {
  background: var(--blue-100);
}
.library-context-actions > .library-context-primary {
  background: var(--blue-900);
  color: #fff;
}
.library-context-actions > .library-context-primary:hover,
.library-context-actions > .library-context-primary:focus-visible {
  background: var(--blue-950);
}

.book-container {
  max-width: 1240px;
  padding-top: 0.85rem;
}
.book-layout {
  display: block;
  padding-top: 1.15rem;
}
.book-header,
.authenticated-session .book-header {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(320px, 1.12fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  max-width: none;
  padding: 1.5rem 0 2rem;
  border-bottom: 1px solid var(--line);
}
.book-title-block h1 {
  max-width: 720px;
  margin: 0.15rem 0 0.65rem;
  font-size: clamp(2.35rem, 4.8vw, 4.25rem);
  line-height: 1.02;
}
.book-title-block .reading-byline {
  margin-bottom: 0;
  color: var(--muted);
}
.book-reading-actions {
  margin-top: 1.35rem;
}
.book-summary {
  max-width: none;
  margin: 0;
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--blue-700);
  background: #f7f9fc;
  font-size: 0.96rem;
  line-height: 1.68;
}
.book-summary > .eyebrow {
  margin-bottom: 0.45rem;
}
.book-index {
  max-width: 980px;
  margin: 1.5rem auto 0;
}
.book-index-heading {
  gap: 1rem;
  padding-bottom: 0.85rem;
}
.book-index-list li {
  border-bottom-color: rgba(105, 126, 146, 0.22);
}
.compact-index-list a,
.book-index-list a {
  padding-block: 0.8rem;
  border-radius: 7px;
}
.compact-index-list a:hover,
.compact-index-list a:focus-visible,
.book-index-list a:hover,
.book-index-list a:focus-visible {
  background: var(--blue-050);
}
.book-index-parent .index-title strong {
  font-size: 1.08rem;
}
.book-index-parent .index-title small {
  margin-top: 0.08rem;
  color: var(--muted);
}
.book-index-back-link {
  min-height: 32px;
  align-items: center;
  padding: 0.25rem 0.45rem;
  border-radius: 6px;
}
.book-index-back-link:hover,
.book-index-back-link:focus-visible {
  background: var(--blue-050);
  text-decoration: none;
}
#book-index-heading,
#book-index-search {
  scroll-margin-top: calc(var(--site-header-height, 0px) + 4.5rem);
}

.reader-shell {
  max-width: 1160px;
  padding-top: 0.75rem;
  padding-bottom: 3.5rem;
}
.reader-toolbar,
.authenticated-session .reader-toolbar {
  top: calc(var(--site-header-height, 0px) - 1px);
  z-index: var(--library-sticky-z);
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 0;
  margin-bottom: 1.25rem;
  padding: 0.48rem 0.65rem;
  border-radius: 0 0 10px 10px;
  background: rgba(255, 255, 255, 0.985);
  box-shadow: 0 7px 18px rgba(11, 36, 66, 0.065);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.reader-toolbar-actions {
  gap: 0.18rem;
}
.reader-toolbar-actions > a,
.reader-toolbar-disabled,
.reader-listen-toggle {
  min-height: 34px;
  padding: 0.35rem 0.5rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--blue-900);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 750;
}
.reader-toolbar-actions > a:hover,
.reader-toolbar-actions > a:focus-visible,
.reader-listen-toggle:hover,
.reader-listen-toggle:focus-visible {
  background: var(--blue-100);
}
.reader-listen-controls {
  display: flex;
  align-items: center;
  gap: 0.22rem;
  margin-left: 0.15rem;
  padding-left: 0.35rem;
  border-left: 1px solid var(--line);
}
.reader-listen-toggle[aria-pressed="true"] {
  background: var(--blue-900);
  color: #fff;
}
.reader-listen-position {
  min-width: 150px;
  display: inline-grid;
  grid-template-columns: minmax(76px, 1fr) auto;
  align-items: center;
  gap: 0.32rem;
  color: var(--blue-900);
  font-size: 0.72rem;
  font-weight: 750;
  white-space: nowrap;
}
.reader-listen-position input {
  width: 100%;
  min-width: 0;
  accent-color: var(--blue-800);
  cursor: pointer;
}
.reader-listen-position output {
  min-width: 2.7rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.reader-listen-rate select {
  min-height: 32px;
  padding: 0.2rem 1.65rem 0.2rem 0.45rem;
  border: 1px solid #c3ced8;
  border-radius: 6px;
  background-color: #fff;
  color: var(--blue-950);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
}
.reader-listen-settings {
  position: relative;
}
.reader-listen-settings > summary {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.45rem;
  border-radius: 6px;
  color: var(--blue-900);
  font-size: 0.78rem;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.reader-listen-settings > summary::-webkit-details-marker { display: none; }
.reader-listen-settings > summary:hover,
.reader-listen-settings > summary:focus-visible { background: var(--blue-100); }
.reader-listen-settings-panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 110;
  width: min(320px, calc(100vw - 2rem));
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(11, 36, 66, 0.14);
}
.reader-listen-settings-panel label {
  display: grid;
  gap: 0.3rem;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}
.reader-listen-settings-panel select {
  width: 100%;
  min-height: 38px;
  padding: 0.4rem 0.55rem;
  border: 1px solid #c3ced8;
  border-radius: 7px;
  background: #fff;
  font: inherit;
}
.reader-listen-settings-panel button {
  width: 100%;
  min-height: 36px;
  margin-top: 0.6rem;
  border: 1px solid #c3ced8;
  border-radius: 7px;
  background: #f7f9fb;
  color: var(--blue-950);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 750;
  cursor: pointer;
}
.reader-listen-settings-panel p {
  margin: 0.55rem 0 0;
  color: var(--muted);
  font-size: 0.74rem;
}
.scripture-reader {
  max-width: var(--library-reading-measure);
  margin: 0 auto;
  padding: clamp(1.6rem, 4vw, 3rem) clamp(1rem, 4vw, 2.5rem) 3.25rem;
  background: #fff;
  border: 1px solid rgba(105, 126, 146, 0.18);
  box-shadow: 0 14px 42px rgba(11, 36, 66, 0.045);
}
.reader-header {
  margin-bottom: 1.9rem;
  padding-bottom: 1.25rem;
}
.reader-work-title {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
}
.reader-header h1 {
  max-width: 690px;
  font-size: clamp(2.2rem, 5vw, 3.65rem);
  line-height: 1.08;
}
.library-prose {
  font-size: clamp(1.02rem, 1.2vw, 1.1rem);
  line-height: 1.82;
}
.library-prose p {
  margin-bottom: 1.12em;
}
.library-prose .library-heading-level-2 {
  margin-top: 2.35rem;
}
.library-prose .library-heading-level-3 {
  margin-top: 1.85rem;
}
.library-prose .library-paragraph,
.library-prose .library-list,
.library-prose .library-blockquote {
  scroll-margin-top: calc(var(--site-header-height, 0px) + 5rem);
}
.library-prose .is-speaking {
  background: #fff7dc;
  box-shadow: 0 0 0 0.35rem #fff7dc;
  transition: background 180ms ease, box-shadow 180ms ease;
}
.reader-pagination {
  max-width: var(--library-reading-measure);
  margin: 1.1rem auto 0;
}

.library-search-page {
  background: #f7f9fb;
}
.library-search-page .reading-container {
  padding-top: 1rem;
  padding-bottom: 3rem;
}
.library-search-page .reading-header {
  max-width: 760px;
}
.library-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  max-width: 860px;
  gap: 0.5rem;
}
.library-search-form input {
  min-height: 48px;
  border-radius: 9px;
}
.library-search-form .button {
  min-height: 48px;
}

@media (max-width: 900px) {
  .library-command-inner {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
  .library-command-search { max-width: 720px; }
  .book-header,
  .authenticated-session .book-header {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .book-summary {
    border-left: 0;
    border-top: 3px solid var(--blue-700);
  }
  .library-context-identity {
    display: none;
  }
  .library-context-bar {
    justify-content: flex-end;
  }
}

@media (max-width: 760px) {
  :root { --site-header-height: 74px; }

  .library-catalog-section {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
  .library-catalog-section > header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
  }
  .library-context-actions {
    width: 100%;
    justify-content: space-between;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .library-context-actions::-webkit-scrollbar { display: none; }

  .reader-toolbar,
  .authenticated-session .reader-toolbar {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
  .reader-toolbar-context { display: none; }
  .reader-toolbar-actions {
    display: flex;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .reader-toolbar-actions::-webkit-scrollbar { display: none; }
  .reader-toolbar-actions > a,
  .reader-toolbar-disabled,
  .reader-listen-toggle { flex: 0 0 auto; }
  .reader-listen-controls { margin-left: auto; }
  .reader-listen-settings-panel {
    position: fixed;
    top: calc(var(--site-header-height, 0px) + 3.5rem);
    right: 1rem;
  }
  .scripture-reader {
    border-inline: 0;
    box-shadow: none;
  }
  .library-search-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .library-search-row {
    grid-template-columns: 1fr;
  }
  .library-search-row button { width: 100%; }
  .book-title-block h1 {
    font-size: clamp(2.15rem, 11vw, 3.2rem);
  }
  .library-context-actions > a {
    font-size: 0.76rem;
    padding-inline: 0.42rem;
  }
  .reader-toolbar-actions > a,
  .reader-toolbar-disabled,
  .reader-listen-toggle {
    font-size: 0.76rem;
  }
  .reader-listen-rate select {
    padding-right: 1.45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .library-book-row,
  .library-prose .is-speaking {
    transition: none;
  }
}


/* Version 8.31 P1Y Ask the Library natural-language source locator */
.library-locator-header {
  max-width: 54rem;
}

.library-locator-form {
  display: grid;
  gap: 0.55rem;
  padding: 1rem 0 1.25rem;
  border-bottom: 1px solid var(--line);
}

.library-locator-form > label {
  color: var(--blue-950);
  font-weight: 800;
}

.library-locator-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
}

.library-locator-search-row input {
  min-height: 3.25rem;
  font-size: 1rem;
}

.library-locator-search-row .button {
  min-height: 3.25rem;
  white-space: nowrap;
}

.library-locator-form .field-help {
  margin: 0;
  max-width: 54rem;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.55;
}

.library-locator-summary > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}

.library-search-scope {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.2rem 0.6rem;
  border: 1px solid var(--blue-200);
  border-radius: 999px;
  background: var(--blue-050);
  color: var(--blue-900);
  font-size: 0.78rem;
  font-weight: 800;
}

.library-locator-result {
  display: grid;
  gap: 0.55rem;
}

.library-locator-result-topline,
.library-locator-result-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.library-locator-result-topline .eyebrow {
  margin: 0;
}

.library-match-confidence {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 1.7rem;
  padding: 0.18rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-subtle, #f7f8f9);
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.library-match-confidence--good {
  border-color: #9cb7ce;
  background: #eef5fa;
  color: var(--blue-900);
}

.library-match-confidence--strong {
  border-color: #7fa18a;
  background: #eff7f1;
  color: #315a3d;
}

.library-locator-result-footer {
  padding-top: 0.25rem;
  color: var(--muted);
  font-size: 0.82rem;
}

.library-locator-result-footer a {
  color: var(--blue-900);
  font-weight: 800;
  text-decoration: none;
}

.library-locator-result-footer a:hover,
.library-locator-result-footer a:focus-visible {
  text-decoration: underline;
}

.library-locator-empty {
  margin-top: 1rem;
}

@media (max-width: 700px) {
  .library-locator-search-row {
    grid-template-columns: 1fr;
  }

  .library-locator-search-row .button {
    width: 100%;
  }

  .library-locator-result-topline,
  .library-locator-result-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* ============================================================
   Version 8.32 P1Z — Library Study App polish
   Compact Option B layout, reduced repetition, persistent reader navigation
   ============================================================ */

body:has(.library-home),
body:has(.book-page),
body:has(.reader-page),
body:has(.library-search-page) {
  --library-sticky-z: 94;
  --library-reading-measure: 740px;
}

body:has(.library-home) .header-inner,
body:has(.book-page) .header-inner,
body:has(.reader-page) .header-inner,
body:has(.library-search-page) .header-inner {
  min-height: 68px;
}

.library-command-header--compact {
  padding: 1.25rem 0 1.1rem;
  background: var(--paper);
}

.library-command-header--compact .library-command-inner {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: clamp(1.5rem, 4vw, 3rem);
}

.library-command-title h1,
.library-command-header--compact h1 {
  margin: 0;
  font-size: clamp(2.35rem, 4vw, 3.35rem);
  line-height: 1;
}

.library-command-title p {
  max-width: 620px;
  margin: 0.55rem 0 0;
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

.library-command-header--compact .library-command-search {
  max-width: 420px;
  justify-self: end;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.library-command-header--compact .library-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.25rem;
  padding: 0.25rem;
  border: 1px solid #c7d3de;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(11, 36, 66, 0.055);
}

.library-command-header--compact .library-search-compact input {
  min-height: 40px;
  padding-inline: 0.85rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.library-command-header--compact .library-search-compact input:focus {
  outline: 2px solid rgba(31, 79, 143, 0.2);
  outline-offset: 1px;
}

.library-command-header--compact .library-search-compact button {
  min-height: 40px;
  padding-inline: 1rem;
  border-radius: 999px;
}

.library-section-nav .container {
  min-height: 40px;
}

.library-section-nav-label {
  font-size: 0.68rem;
}

.library-section-nav a {
  padding: 0.38rem 0.58rem;
  font-size: 0.8rem;
}

.library-tier {
  margin: 0;
  padding: 1.55rem 0 1.9rem;
  border-top: 1px solid var(--line);
}

.library-tier-public {
  background: #fbfaf6;
}

.library-tier.library-protected {
  padding: 1.55rem 0 1.9rem;
}

.library-member-access {
  background: #f4f7fb;
}

.library-endowed-access {
  background: #edf3fa;
}

.library-tier-heading {
  margin: 0 0 0.45rem;
}

.library-tier-heading h2 {
  margin: 0;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.55rem, 2.4vw, 1.9rem);
  line-height: 1.15;
}

.library-tier-empty {
  margin: 0.6rem 0 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.library-tier .library-catalog-section {
  grid-template-columns: minmax(150px, 0.22fr) minmax(0, 0.78fr);
  gap: clamp(1rem, 3vw, 2.25rem);
  padding: 1rem 0;
}

.library-tier .library-catalog-section > header h3 {
  margin: 0;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
}

.library-tier .library-catalog-section > header span {
  font-size: 0.76rem;
}

.library-tier .library-book-row {
  padding: 0.7rem 0.4rem;
}

/* Work and group contents */
.book-container {
  max-width: 1160px;
  padding-top: 0.6rem;
}

.book-layout {
  padding-top: 0.6rem;
}

.book-header,
.authenticated-session .book-header {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(1.4rem, 4vw, 3rem);
  padding: 1rem 0 1.35rem;
}

.book-title-block h1 {
  max-width: 680px;
  margin: 0.08rem 0 0.5rem;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.02;
}

.book-parent-title {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 750;
}

.book-reading-actions {
  margin-top: 1rem;
}

.book-reading-actions .button {
  min-height: 40px;
}

.book-summary {
  padding: 0.85rem 1rem;
  border-left-width: 2px;
  font-size: 0.9rem;
  line-height: 1.6;
}

.book-index {
  max-width: 900px;
  margin: 1rem auto 0;
}

.book-index-heading {
  padding-bottom: 0.65rem;
}

.book-index-heading h2 {
  margin-top: 0.1rem;
  font-size: clamp(1.6rem, 2.8vw, 2rem);
}

.book-index-heading > div > p:last-child {
  margin-top: 0.25rem;
  font-size: 0.8rem;
}

.book-index-filter input {
  min-height: 40px;
}

.compact-index-list a,
.book-index-list a {
  padding-block: 0.68rem;
}

.book-index-parent .index-title strong,
.book-index-list .index-title strong {
  font-size: 1rem;
}

.book-index-parent .index-title small,
.book-index-list .index-title small {
  font-size: 0.75rem;
}

/* Older authenticated-session CSS has a higher-specificity static rule.
   This rule deliberately outranks it so the reader controls remain available
   from the first paragraph through the end of the chapter. */
.reader-toolbar.library-context-bar,
.authenticated-session .reader-toolbar.library-context-bar {
  position: sticky;
  top: calc(var(--site-header-height, 0px) - 1px);
  z-index: var(--library-sticky-z);
}

.reader-page,
.reader-shell {
  overflow: visible;
}

.reader-shell {
  max-width: 1040px;
  padding-top: 0.45rem;
  padding-bottom: 2.75rem;
}

.reader-toolbar,
.authenticated-session .reader-toolbar {
  margin-bottom: 0.75rem;
  padding: 0.38rem 0.55rem;
  border-radius: 0 0 8px 8px;
}

.reader-toolbar-context span {
  font-size: 0.68rem;
}

.reader-toolbar-context strong {
  font-size: 0.8rem;
}

.reader-toolbar-actions > a,
.reader-toolbar-disabled,
.reader-listen-toggle {
  min-height: 32px;
  padding: 0.28rem 0.44rem;
  font-size: 0.76rem;
}

.reader-listen-rate select {
  min-height: 32px;
}

.scripture-reader {
  max-width: var(--library-reading-measure);
  padding: clamp(1.7rem, 3vw, 2.35rem) clamp(1.25rem, 4vw, 2.8rem) 2.7rem;
}

.reader-header {
  margin-bottom: 1.3rem;
  padding-bottom: 0.95rem;
}

.reader-work-title {
  margin-bottom: 0.35rem;
  font-size: 0.78rem;
}

.reader-location {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
}

.reader-header h1 {
  margin-top: 0.2rem;
  font-size: clamp(2rem, 4vw, 2.7rem);
  line-height: 1.08;
}

.library-prose {
  font-size: clamp(1rem, 1.1vw, 1.07rem);
  line-height: 1.78;
}

.library-prose .library-paragraph,
.library-prose .library-list,
.library-prose .library-blockquote {
  scroll-margin-top: calc(var(--site-header-height, 0px) + 4.25rem);
}

.reader-pagination {
  margin-top: 0.8rem;
}

/* Library-only footer compaction */
body:has(.library-home) .site-footer,
body:has(.book-page) .site-footer,
body:has(.reader-page) .site-footer,
body:has(.library-search-page) .site-footer {
  padding: 2.5rem 0 1.1rem;
}

body:has(.library-home) .footer-seal,
body:has(.book-page) .footer-seal,
body:has(.reader-page) .footer-seal,
body:has(.library-search-page) .footer-seal {
  width: 108px;
  height: 108px;
}

body:has(.library-home) .footer-church-name,
body:has(.book-page) .footer-church-name,
body:has(.reader-page) .footer-church-name,
body:has(.library-search-page) .footer-church-name {
  margin-top: 0.9rem;
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);
}

body:has(.library-home) .footer-links,
body:has(.book-page) .footer-links,
body:has(.reader-page) .footer-links,
body:has(.library-search-page) .footer-links {
  margin-top: 1.2rem;
}

body:has(.library-home) .footer-status,
body:has(.book-page) .footer-status,
body:has(.reader-page) .footer-status,
body:has(.library-search-page) .footer-status {
  margin-top: 1.45rem;
  padding-top: 1rem;
}

body:has(.library-home) .footer-bottom,
body:has(.book-page) .footer-bottom,
body:has(.reader-page) .footer-bottom,
body:has(.library-search-page) .footer-bottom {
  margin-top: 1rem;
  padding-top: 0.85rem;
}

@media (max-width: 900px) {
  .library-command-header--compact .library-command-inner {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .library-command-header--compact .library-command-search {
    justify-self: start;
    max-width: 620px;
  }

  .book-header,
  .authenticated-session .book-header {
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }

  .book-summary {
    border-top: 2px solid var(--blue-700);
    border-left: 0;
  }
}

@media (max-width: 760px) {
  body:has(.library-home) .header-inner,
  body:has(.book-page) .header-inner,
  body:has(.reader-page) .header-inner,
  body:has(.library-search-page) .header-inner {
    min-height: 64px;
  }

  .library-tier .library-catalog-section {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .library-command-title h1,
  .library-command-header--compact h1 {
    font-size: 2.45rem;
  }

  .book-title-block h1 {
    font-size: clamp(2rem, 9vw, 2.75rem);
  }

  .scripture-reader {
    padding-inline: 1rem;
  }
}

@media (max-width: 520px) {
  .library-command-header--compact .library-search-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .library-command-header--compact .library-search-compact button {
    width: auto;
  }

  .reader-toolbar-actions > a,
  .reader-toolbar-disabled,
  .reader-listen-toggle {
    font-size: 0.72rem;
  }

  .reader-header h1 {
    font-size: 2rem;
  }
}

/* ============================================================
   Version 8.32.4 P1Z3 — Centered Library navigation and reader transport
   ============================================================ */

.library-study-app .library-command-inner {
  grid-template-columns: 1fr;
  justify-items: center;
  max-width: 900px;
  text-align: center;
}

.library-study-app .library-command-title p {
  margin-inline: auto;
}

.library-study-app .library-command-header--compact .library-command-search {
  justify-self: center;
  max-width: 620px;
}

.library-study-app .library-section-nav .container {
  justify-content: center;
}

.library-study-app .library-tier[id] {
  scroll-margin-top: calc(var(--site-header-height, 0px) + 3.25rem);
}

.library-study-app .library-catalog-container {
  max-width: 980px;
}

.library-study-app .library-tier-heading,
.library-study-app .library-tier-empty {
  text-align: center;
}

.library-study-app .library-tier-heading {
  margin-bottom: 0.9rem;
}

.library-tier-book-list {
  width: min(100%, 900px);
  margin-inline: auto;
  border-top: 1px solid var(--line);
}

.library-tier-book-list .library-book-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
  color: var(--blue-950);
  text-align: left;
}

.library-tier-book-list .library-book-row > span:first-child {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.library-tier-book-list .library-book-row small {
  color: var(--muted);
}

.book-page .book-header,
.authenticated-session .book-page .book-header {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}

.book-page .book-title-block h1 {
  margin-inline: auto;
}

.book-page .book-reading-actions {
  justify-content: center;
}

.book-page .book-summary {
  width: min(100%, 760px);
  margin: 0.25rem auto 0;
  border-top: 2px solid var(--blue-700);
  border-left: 0;
  text-align: center;
}

.book-page .book-index-heading {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}

.book-page .book-index-heading > div {
  justify-self: center;
}

.book-page .book-index-filter {
  width: min(100%, 520px);
  margin-inline: auto;
}

.book-context-bar {
  margin-top: 0;
}

.reader-toolbar-context a {
  color: var(--blue-800);
  font-weight: 700;
  text-decoration: none;
}

.reader-toolbar-context a:hover,
.reader-toolbar-context a:focus-visible {
  text-decoration: underline;
}

.reader-listen-skip {
  min-height: 32px;
  padding: 0.28rem 0.44rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--blue-900);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
}

.reader-listen-skip:hover,
.reader-listen-skip:focus-visible {
  background: var(--blue-100);
}

.reader-listen-skip:disabled {
  color: #97a1ab;
  cursor: default;
}

.reader-listen-skip:disabled:hover {
  background: transparent;
}

.reader-listen-help {
  line-height: 1.45;
}

@media (max-width: 900px) {
  .book-page .book-summary {
    border-top: 2px solid var(--blue-700);
    border-left: 0;
  }
}

@media (max-width: 760px) {
  .library-study-app .library-section-nav .container {
    justify-content: flex-start;
  }

  .library-study-app .library-tier[id] {
    scroll-margin-top: calc(var(--site-header-height, 0px) + 3.5rem);
  }

  .reader-toolbar,
  .authenticated-session .reader-toolbar {
    padding-inline: 0.4rem;
  }

  .reader-toolbar-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    width: 100%;
    gap: 0.2rem;
    overflow: visible;
  }

  .reader-toolbar-actions > a,
  .reader-toolbar-disabled {
    width: 100%;
    min-width: 0;
  }

  .reader-toolbar-actions > :first-child {
    justify-self: stretch;
  }

  .reader-toolbar-actions > :nth-child(2) {
    justify-self: center;
  }

  .reader-toolbar-actions > :nth-child(3) {
    justify-self: stretch;
  }

  .reader-listen-controls {
    grid-column: 1 / -1;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem;
    margin: 0.15rem 0 0;
    padding: 0.35rem 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .reader-listen-position {
    flex: 1 1 180px;
    min-width: min(100%, 180px);
  }

  .reader-listen-settings {
    position: static;
  }

  .reader-listen-settings-panel {
    position: fixed;
    top: calc(var(--site-header-height, 0px) + 6.25rem);
    left: 50%;
    right: auto;
    width: min(360px, calc(100vw - 1rem));
    max-height: calc(100vh - var(--site-header-height, 0px) - 7rem);
    overflow-y: auto;
    transform: translateX(-50%);
  }
}

@media (max-width: 520px) {
  .library-study-app .library-section-nav-label {
    display: none;
  }

  .library-study-app .library-section-nav .container {
    justify-content: center;
  }

  .reader-listen-controls {
    gap: 0.18rem;
  }

  .reader-listen-skip,
  .reader-listen-toggle,
  .reader-listen-settings > summary {
    font-size: 0.72rem;
  }

  .reader-listen-rate select {
    min-height: 32px;
    font-size: 0.72rem;
  }

  .reader-listen-position {
    flex-basis: 100%;
    min-width: 0;
  }
}



/* ============================================================
   Version 8.32.5 P1Z4 — Cinematic Library catalogue and book thumbnails
   ============================================================ */

.library-cinematic-catalog {
  background: #fbfaf6;
}

.library-cinematic-catalog .library-cinematic-hero {
  position: relative;
  overflow: hidden;
  padding: 1.45rem 0 1.35rem;
  background:
    linear-gradient(90deg, rgba(251, 250, 246, 0.78), rgba(255, 255, 255, 0.94) 25%, rgba(255, 255, 255, 0.94) 75%, rgba(251, 250, 246, 0.78)),
    url("/images/library/library-banner.webp") center / cover no-repeat;
}

.library-cinematic-catalog .library-cinematic-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.02));
}

.library-cinematic-catalog .library-command-inner {
  position: relative;
  z-index: 1;
  grid-template-columns: 1fr;
  justify-items: center;
  max-width: 900px;
  text-align: center;
}

.library-cinematic-catalog .library-command-header h1 {
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 4rem);
  line-height: 0.98;
}

.library-cinematic-catalog .library-command-title p {
  margin: 0.4rem auto 0;
  color: #68798a;
  font-size: 0.94rem;
}

.library-cinematic-catalog .library-command-search {
  width: min(100%, 720px);
  margin-top: 1.15rem;
}

.library-cinematic-catalog .library-search-compact {
  display: block;
}

.library-cinematic-catalog .library-search-row {
  display: flex;
  width: 100%;
  padding: 0.28rem;
  border: 1px solid #c7d4e2;
  border-radius: 999px;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 6px 18px rgba(13,43,80,0.07);
}

.library-cinematic-catalog .library-search-compact input {
  flex: 1;
  min-width: 0;
  min-height: 42px;
  padding: 0.55rem 0.8rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.library-cinematic-catalog .library-search-compact button {
  min-height: 42px;
  padding: 0.55rem 1.35rem;
  border-radius: 999px;
}

.library-cinematic-catalog .library-section-nav {
  background: rgba(248,250,252,0.96);
  border-bottom-color: #c7d4e2;
  backdrop-filter: blur(12px);
}

.library-cinematic-catalog .library-section-nav .container {
  justify-content: center;
  gap: 1.6rem;
}

.library-cinematic-catalog .library-section-nav a {
  position: relative;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  color: #6b7a8a;
  font-weight: 800;
}

.library-cinematic-catalog .library-section-nav a:hover,
.library-cinematic-catalog .library-section-nav a:focus-visible {
  color: var(--blue-950);
}

.library-cinematic-shell {
  width: min(calc(100% - 2rem), 1180px);
  max-width: 1180px;
  padding-top: 0.25rem;
  padding-bottom: 4rem;
}

.library-cinematic-collection {
  padding: 2rem 0 1.8rem;
  scroll-margin-top: calc(var(--site-header-height, 0px) + 3.4rem);
  border-bottom: 1px solid #e8e4dc;
}

.library-cinematic-collection:last-child {
  border-bottom: 0;
}

.library-cinematic-collection-heading {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-bottom: 1.15rem;
}

.library-cinematic-collection-heading h2 {
  margin: 0;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 2.6vw, 2.25rem);
  line-height: 1;
  letter-spacing: -0.025em;
}

.library-cinematic-access-label,
.library-cinematic-count {
  color: #788899;
  font-size: 0.78rem;
  font-weight: 700;
}

.library-cinematic-heading-separator {
  width: 1px;
  height: 1rem;
  background: #d4dce5;
}

.library-cinematic-empty {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 1rem 1.1rem;
  border: 1px dashed #d5dce4;
  border-radius: 10px;
  background: rgba(255,255,255,0.52);
  color: #7b8792;
}

.library-cinematic-empty p {
  margin: 0;
  font-size: 0.86rem;
}

.library-media-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.45rem 1rem;
}

.library-media-card {
  min-width: 0;
  display: block;
  color: var(--blue-950);
  text-decoration: none;
  outline: none;
}

.library-media-art {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(16,42,71,0.10);
  border-radius: 9px;
  background: #e9e6de;
  box-shadow: 0 8px 22px rgba(13,43,80,0.09);
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.library-media-art > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 250ms ease, filter 250ms ease;
}

.library-media-art::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 52%, rgba(4,18,33,0.10) 72%, rgba(4,18,33,0.32));
}

.library-media-card:hover .library-media-art,
.library-media-card:focus-visible .library-media-art {
  transform: translateY(-3px) scale(1.012);
  border-color: rgba(164,122,38,0.40);
  box-shadow: 0 15px 34px rgba(13,43,80,0.16);
}

.library-media-card:hover .library-media-art > img,
.library-media-card:focus-visible .library-media-art > img {
  transform: scale(1.025);
  filter: brightness(1.025);
}

.library-media-open {
  position: absolute;
  right: 0.7rem;
  bottom: 0.55rem;
  z-index: 4;
  color: #fff;
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35);
  opacity: 0;
  transform: translateY(3px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.library-media-card:hover .library-media-open,
.library-media-card:focus-visible .library-media-open {
  opacity: 0.96;
  transform: none;
}

.library-media-info {
  min-width: 0;
  padding: 0.58rem 0.18rem 0;
}

.library-media-info h3 {
  margin: 0;
  color: var(--blue-950);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.08rem;
  line-height: 1.16;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.library-media-info p {
  margin: 0.3rem 0 0;
  color: #68798a;
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.library-media-info p strong {
  color: #627487;
  font-weight: 650;
}

/* Premium no-image fallback: typography only, no pattern or illustration. */
.library-media-fallback {
  background: linear-gradient(145deg, #0b2b50 0%, #103861 58%, #153f68 100%);
  color: #fff;
}

.library-media-fallback::after {
  background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(0,0,0,0.10));
}

.library-media-card:hover .library-media-fallback,
.library-media-card:focus-visible .library-media-fallback {
  background: linear-gradient(145deg, #0b2b50 0%, #12406f 58%, #174873 100%);
}

.library-media-fallback-content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0.9rem 1rem;
}

.library-media-fallback-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.library-media-fallback-top span:first-child {
  color: #d7ba73;
}

.library-media-fallback-top span {
  color: rgba(255,255,255,0.48);
  font-size: 0.54rem;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.library-media-fallback-title {
  max-width: 88%;
}

.library-media-fallback-title strong {
  display: block;
  color: #fffdf8;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.05rem, 1.55vw, 1.45rem);
  font-weight: 650;
  line-height: 1.03;
  letter-spacing: -0.025em;
}

.library-media-fallback-title i {
  display: block;
  width: 2.2rem;
  height: 2px;
  margin-top: 0.6rem;
  background: #c7a052;
}

/* Book-image management for publishers and contributors. */
.library-thumbnail-editor {
  display: grid;
  gap: 1rem;
}

.library-thumbnail-editor--admin {
  margin: 0.35rem 0 0.8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}

.library-thumbnail-editor .form-section-heading {
  margin-bottom: 0;
}

.library-thumbnail-editor .form-section-heading h2 {
  margin: 0;
  font-size: 1.2rem;
}

.library-thumbnail-editor .form-section-heading p {
  margin: 0.25rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.library-thumbnail-editor-preview {
  width: min(100%, 420px);
}

.library-thumbnail-editor-preview .library-media-art {
  width: 100%;
}

.library-thumbnail-upload-form {
  display: grid;
  gap: 0.5rem;
}

.library-thumbnail-upload-form input[type="file"],
.library-thumbnail-editor--admin input[type="file"] {
  width: 100%;
}

.library-thumbnail-remove-option {
  margin-top: 0.2rem;
}

.library-thumbnail-remove-form {
  padding-top: 0.85rem;
  border-top: 1px solid var(--line);
}

@media (max-width: 1040px) {
  .library-media-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .library-cinematic-catalog .library-cinematic-hero {
    padding: 1.2rem 0 1.1rem;
  }

  .library-cinematic-catalog .library-section-nav .container {
    justify-content: flex-start;
  }

  .library-cinematic-shell {
    width: min(calc(100% - 1.25rem), 740px);
  }

  .library-cinematic-collection {
    padding: 1.7rem 0 1.5rem;
    scroll-margin-top: calc(var(--site-header-height, 0px) + 3.55rem);
  }

  .library-media-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 0.75rem;
  }

  .library-media-info h3 {
    font-size: 1rem;
  }

  .library-media-fallback-title strong {
    font-size: clamp(0.95rem, 4vw, 1.3rem);
  }
}

@media (max-width: 520px) {
  .library-cinematic-catalog .library-section-nav-label {
    display: none;
  }

  .library-cinematic-catalog .library-section-nav .container {
    justify-content: center;
    gap: 1.15rem;
  }

  .library-cinematic-catalog .library-command-header h1 {
    font-size: 2.55rem;
  }

  .library-cinematic-catalog .library-search-row {
    padding: 0.22rem;
  }

  .library-cinematic-catalog .library-search-compact button {
    padding-inline: 1rem;
  }

  .library-cinematic-collection-heading {
    gap: 0.55rem;
  }

  .library-cinematic-collection-heading h2 {
    width: 100%;
    font-size: 1.7rem;
  }

  .library-media-grid {
    gap: 1rem 0.6rem;
  }

  .library-media-info h3 {
    font-size: 0.94rem;
  }

  .library-media-info p {
    font-size: 0.68rem;
  }

  .library-media-fallback-content {
    padding: 0.7rem 0.75rem;
  }

  .library-media-fallback-top span {
    font-size: 0.47rem;
  }

  .library-media-fallback-title strong {
    font-size: clamp(0.82rem, 3.8vw, 1.05rem);
  }
}


/* ============================================================
   Version 8.32.7 P1Z6 — Managed washed Library and book banners
   Version 8.32.7.1 P1Z6A — Library banner cache + centered responsive layout
   ============================================================ */

/* Main Library hero: dynamic persistent banner with a strong white wash. */
.library-cinematic-catalog .library-cinematic-hero {
  isolation: isolate;
  min-height: 264px;
  padding: 1.4rem 0 1.3rem;
  background: #fbfaf6;
}

.library-cinematic-catalog .library-cinematic-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background-image: url("/library/banner?v=83271");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  filter: saturate(0.55) contrast(0.82) brightness(1.08);
  transform: scale(1.01);
}

.library-cinematic-catalog .library-cinematic-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.84);
}

.library-cinematic-catalog .library-command-inner {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(calc(100% - 2rem), 960px);
  max-width: none;
  min-height: 218px;
  margin-inline: auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  text-align: center;
}

.library-cinematic-catalog .library-command-title {
  display: grid;
  width: 100%;
  justify-items: center;
}

.library-cinematic-catalog .library-command-title h1 {
  margin-inline: auto;
}

.library-cinematic-catalog .library-command-title p {
  max-width: 680px;
  margin: 0.45rem auto 0;
}

.library-cinematic-catalog .library-command-header--compact .library-command-search,
.library-cinematic-catalog .library-command-search {
  width: min(100%, 680px);
  max-width: none;
  margin: 1.15rem auto 0;
  justify-self: auto;
}

.library-banner-admin-action {
  position: absolute;
  top: 0;
  right: 0;
}

.library-banner-admin-action a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border: 1px solid rgba(13, 43, 80, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--blue-900);
  font-size: 0.72rem;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(13, 43, 80, 0.06);
}

.library-banner-admin-action a:hover,
.library-banner-admin-action a:focus-visible {
  background: #fff;
  border-color: rgba(13, 43, 80, 0.34);
}

/* Book landing hero: reuse the existing uploaded 16:9 book thumbnail as a washed full-width banner. */
.book-page .book-hero-banner,
.authenticated-session .book-page .book-hero-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding: clamp(1.9rem, 4vw, 3rem) max(1rem, calc((100vw - 1160px) / 2)) clamp(1.8rem, 3vw, 2.6rem);
  border-top: 1px solid rgba(105, 126, 146, 0.14);
  border-bottom: 1px solid rgba(105, 126, 146, 0.22);
  background: #f7f4ee;
}

.book-hero-banner::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: rgba(250, 248, 243, 0.82);
}

.book-hero-art {
  position: absolute;
  z-index: 0;
  inset: 0;
  background-position: center 44%;
  background-size: cover;
  background-repeat: no-repeat;
  filter: saturate(0.52) contrast(0.78) brightness(1.08);
  transform: scale(1.015);
}

.book-hero-banner > :not(.book-hero-art) {
  position: relative;
  z-index: 2;
}

.book-page .book-hero-banner .book-title-block,
.book-page .book-hero-banner .book-summary {
  margin-inline: auto;
}

.book-page .book-hero-banner .book-title-block {
  width: min(100%, 900px);
}

.book-page .book-hero-banner .book-summary {
  width: min(100%, 760px);
  background: rgba(255, 255, 255, 0.56);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* Publisher/Super Administrator banner-management preview. */
.library-banner-editor {
  display: grid;
  gap: 1rem;
}

.library-banner-editor-preview {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 190px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7f4ee;
}

.library-banner-editor-preview > img {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.55) contrast(0.82) brightness(1.08);
}

.library-banner-editor-wash {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(255, 255, 255, 0.84);
}

.library-banner-editor-copy {
  position: relative;
  z-index: 2;
  min-height: 190px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 0.4rem;
  padding: 1.5rem;
  color: var(--blue-950);
  text-align: center;
}

.library-banner-editor-copy strong {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
}

.library-banner-editor-copy span {
  color: #68798a;
  font-size: 0.84rem;
}

.library-banner-upload-form {
  display: grid;
  gap: 0.5rem;
}

.library-banner-upload-form input[type="file"] {
  width: 100%;
}

.library-banner-remove-form {
  padding-top: 0.85rem;
  border-top: 1px solid var(--line);
}

/* Catalogue titles are publication titles, not labels: always show the complete work name. */
.library-cinematic-catalog .library-media-info h3 {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .library-cinematic-catalog .library-cinematic-hero {
    min-height: 238px;
  }

  .library-cinematic-catalog .library-command-inner {
    width: min(calc(100% - 1.25rem), 680px);
    min-height: 198px;
  }

  .library-banner-admin-action {
    position: static;
    margin-top: 0.75rem;
  }

  .book-page .book-hero-banner,
  .authenticated-session .book-page .book-hero-banner {
    padding-inline: 1rem;
  }
}

/* P1Z6A responsive composition: keep the Library visually centered and bounded. */
.library-cinematic-catalog .library-command-inner {
  width: min(calc(100% - 2rem), 1180px);
  min-height: 218px;
}

.library-cinematic-catalog .library-command-title {
  width: min(100%, 560px);
}

.library-hero-tools {
  position: absolute;
  top: 1rem;
  right: 0;
  width: min(320px, 30vw);
  display: grid;
  justify-items: end;
  gap: 0.75rem;
}

.library-hero-tools .library-banner-admin-action {
  position: static;
}

.library-cinematic-catalog .library-command-header--compact .library-command-search,
.library-cinematic-catalog .library-hero-tools .library-command-search {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.library-search-toggle {
  display: none;
}

.library-search-panel,
.library-search-panel .library-search-compact {
  width: 100%;
}

.library-cinematic-catalog .library-cinematic-shell {
  width: min(calc(100% - 2rem), 1040px);
  max-width: 1040px;
  margin-inline: auto;
}

.library-cinematic-catalog .library-cinematic-collection-heading {
  justify-content: center;
  text-align: center;
}

.library-cinematic-catalog .library-media-grid {
  grid-template-columns: repeat(auto-fit, minmax(210px, 240px));
  justify-content: center;
}

/* Contents remain left aligned, but inside a centered reading-oriented measure. */
.book-page .book-index {
  width: min(100%, 800px);
  max-width: 800px;
  margin-inline: auto;
}

.book-page .book-index-heading {
  justify-items: start;
  text-align: left;
}

.book-page .book-index-heading > div {
  width: 100%;
  justify-self: stretch;
}

.book-page .book-index-filter {
  width: min(100%, 480px);
  margin-inline: 0;
  justify-self: start;
}

.book-page .book-index-list,
.book-page .index-group {
  width: 100%;
}

.book-context-bar {
  width: min(100%, 980px);
  margin-inline: auto;
}

.reader-toolbar.library-context-bar,
.authenticated-session .reader-toolbar.library-context-bar {
  width: min(100%, 940px);
  margin-inline: auto;
}

@media (max-width: 1080px) {
  .library-cinematic-catalog .library-command-inner {
    width: min(calc(100% - 2rem), 760px);
    min-height: auto;
    padding-block: 1rem;
  }

  .library-cinematic-catalog .library-command-title {
    width: min(100%, 620px);
  }

  .library-hero-tools {
    position: static;
    width: min(100%, 520px);
    margin-top: 1rem;
    justify-items: center;
  }

  .library-hero-tools .library-banner-admin-action {
    order: 2;
  }

  .library-hero-tools .library-command-search {
    order: 1;
  }
}

@media (max-width: 760px) {
  .library-cinematic-catalog .library-command-inner {
    width: min(calc(100% - 1.25rem), 680px);
    min-height: 198px;
  }

  .library-cinematic-catalog .library-command-title {
    width: 100%;
  }

  .library-hero-tools {
    width: 100%;
    margin-top: 0.85rem;
    gap: 0.55rem;
  }

  .library-search-disclosure {
    display: grid;
    justify-items: center;
  }

  .library-search-toggle {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 1rem;
    border: 1px solid rgba(13, 43, 80, 0.20);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--blue-900);
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    box-shadow: 0 4px 14px rgba(13, 43, 80, 0.06);
  }

  .library-search-toggle::-webkit-details-marker {
    display: none;
  }

  .library-search-disclosure[open] .library-search-toggle {
    background: var(--blue-900);
    color: #fff;
  }

  .library-search-panel {
    width: min(100%, 520px);
    margin-top: 0.55rem;
  }

  .library-cinematic-catalog .library-cinematic-shell {
    width: min(calc(100% - 1.25rem), 760px);
  }

  .library-cinematic-catalog .library-media-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .book-page .book-index {
    width: min(100%, 680px);
  }

  .book-context-bar,
  .reader-toolbar.library-context-bar,
  .authenticated-session .reader-toolbar.library-context-bar {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .library-cinematic-catalog .library-media-grid {
    gap: 1rem 0.65rem;
  }

  .book-page .book-index {
    width: 100%;
  }
}

/* P1Z6A r2 approved catalogue hierarchy from the final HTML mockup. */
.library-cinematic-catalog .library-cinematic-collection-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  text-align: center;
}

.library-cinematic-catalog .library-cinematic-collection-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 1rem;
  color: #788899;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.2;
}

.library-cinematic-catalog .library-cinematic-heading-separator {
  width: auto;
  height: auto;
  background: none;
}

.library-cinematic-catalog .library-cinematic-heading-separator::before {
  content: "•";
  color: #aab5c1;
}

.library-cinematic-catalog .library-media-info {
  text-align: center;
}

.library-cinematic-catalog .library-media-info h3 {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  text-align: center;
}


/* Version 8.32.8 / P1Z.7 - public-site restructure and SEO foundation */
.public-page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 7vw, 6.5rem) 0;
  background:
    radial-gradient(circle at 82% 25%, rgba(201, 220, 239, 0.72), transparent 35%),
    linear-gradient(135deg, #f8f6f0 0%, #edf4fa 100%);
  border-bottom: 1px solid var(--line);
}

.public-page-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(460px, 1.22fr);
  gap: clamp(2.25rem, 5vw, 5rem);
  align-items: center;
}

.public-page-hero--text-only .public-page-hero-layout {
  grid-template-columns: minmax(0, 820px);
}

.public-page-hero-copy .eyebrow {
  margin-bottom: 0.8rem;
}

.public-page-hero-copy .hero-lead {
  max-width: 650px;
}

.public-page-hero-art {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(11, 36, 66, 0.10);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 20px 54px rgba(11, 36, 66, 0.16);
}

.public-page-hero-art img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
}

.public-page-hero--who .public-page-hero-art img,
.public-page-hero--relationship .public-page-hero-art img {
  object-position: 50% 50%;
}

.public-page-hero--beliefs .public-page-hero-art img {
  object-position: 50% 48%;
}

.public-page-hero--contact .public-page-hero-art img {
  object-position: 50% 44%;
}

.public-overview-section {
  background: var(--paper);
}

.public-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 2.25rem;
}

.public-overview-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.7rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--blue-050);
  box-shadow: var(--shadow-soft);
}

.public-overview-card h3 {
  margin-bottom: 0.65rem;
}

.public-overview-card p {
  flex: 1;
  color: var(--muted);
}

.public-overview-card .library-link {
  margin-top: 0.35rem;
}

.public-home-begin {
  background: var(--blue-050);
}

.public-contact-teaser .container {
  display: block;
}

.public-contact-teaser .section-heading {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.membership-admission-note {
  margin: 1.5rem 0 2rem;
  padding: 1.15rem 1.25rem;
  border-left: 4px solid var(--gold-500);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.membership-admission-note strong {
  display: block;
  margin-bottom: 0.35rem;
}

.beliefs-zion-visual {
  width: min(1180px, calc(100% - 2rem));
  margin: clamp(2.4rem, 5vw, 4.5rem) auto;
}

.beliefs-zion-visual-frame {
  overflow: hidden;
  border-radius: 22px;
  background: var(--blue-050);
  box-shadow: var(--shadow-soft);
}

.beliefs-zion-visual-frame img {
  display: block;
  width: 100%;
  height: auto;
}

.history-story-flow {
  width: min(1160px, calc(100% - 2rem));
  margin: clamp(2.5rem, 5vw, 4rem) auto;
  display: grid;
  gap: clamp(2.3rem, 5vw, 4.2rem);
}

.history-story-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(1.6rem, 4vw, 3.2rem);
  align-items: center;
}

.history-story-panel.is-reversed {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.history-story-panel.is-reversed .history-story-image {
  order: 2;
}

.history-story-panel.is-reversed .history-story-copy {
  order: 1;
}

.history-story-image {
  overflow: hidden;
  border-radius: 22px;
  background: var(--blue-050);
  box-shadow: var(--shadow-soft);
}

.history-story-image img {
  display: block;
  width: 100%;
  height: auto;
}

.history-story-copy {
  padding: clamp(0.3rem, 1vw, 1rem);
}

.history-story-copy .small-label {
  margin-bottom: 0.55rem;
}

.history-story-copy h2 {
  margin: 0 0 0.8rem;
  font-size: clamp(1.7rem, 2.8vw, 2.45rem);
  line-height: 1.08;
}

.history-story-copy p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.72;
}

.history-testimony {
  align-items: start;
}

.history-testimony-reader {
  grid-column: 1 / -1;
  margin-top: clamp(0.45rem, 1.4vw, 1.15rem);
  padding: clamp(1.25rem, 3vw, 2.8rem);
  border: 1px solid rgba(181, 139, 55, 0.3);
  border-radius: 24px;
  background: linear-gradient(135deg, #fffdf7 0%, #f6f8fc 100%);
  box-shadow: var(--shadow-soft);
}

.history-testimony-reader-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(11, 36, 66, 0.14);
}

.history-testimony-reader-header h3 {
  margin: 0;
  color: var(--blue-900);
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  line-height: 1.16;
}

.history-testimony-reading-time {
  margin: 0.55rem 0 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.history-testimony-reader-nav,
.history-testimony-reader-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.history-testimony-reader-nav {
  justify-content: flex-end;
}

.history-testimony-reader-nav a,
.history-testimony-continue {
  color: var(--blue-800);
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.history-testimony-reader-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(11, 36, 66, 0.12);
}

.history-testimony-reader-controls > p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 700;
}

.history-testimony-reader-actions .button {
  min-height: 2.35rem;
  padding: 0.42rem 0.74rem;
  font-size: 0.84rem;
}

.history-testimony-reader-actions .button.is-active {
  border-color: var(--blue-800);
  background: var(--blue-800);
  color: #fff;
}

.history-testimony-prose {
  width: min(100%, 72ch);
  margin: clamp(1.35rem, 3vw, 2.25rem) auto 0;
  color: var(--ink);
  font-size: 1.06rem;
  line-height: 1.86;
}

.history-testimony-reader[data-reader-size="large"] .history-testimony-prose {
  width: min(100%, 66ch);
  font-size: 1.22rem;
  line-height: 1.9;
}

.history-testimony-reader[data-reader-style="serif"] .history-testimony-prose {
  font-family: Georgia, "Times New Roman", serif;
}

.history-testimony-prose p {
  margin: 0 0 1.15rem;
}

.history-testimony-quote {
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  margin: 0.75rem 0 1rem;
  padding: 0.5rem 0.75rem;
  border-left: 4px solid var(--gold-500);
  border-radius: 0 8px 8px 0;
  background: var(--blue-050);
  color: var(--ink);
}

.history-testimony-quote p {
  margin: 0;
}

.history-testimony-continue {
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
  margin: 1rem auto 0;
}

@media (max-width: 900px) {
  .public-page-hero-layout {
    grid-template-columns: 1fr;
  }

  .public-page-hero-art {
    max-width: 760px;
  }
}

@media (max-width: 820px) {
  .public-overview-grid,
  .history-story-panel,
  .history-story-panel.is-reversed {
    grid-template-columns: 1fr;
  }

  .history-story-panel.is-reversed .history-story-image,
  .history-story-panel.is-reversed .history-story-copy {
    order: initial;
  }

  .history-testimony-reader-header,
  .history-testimony-reader-controls {
    align-items: flex-start;
    flex-direction: column;
  }

  .history-testimony-reader-nav {
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  .public-page-hero-art img {
    aspect-ratio: 4 / 3;
  }

  .history-testimony-reader {
    border-radius: 18px;
  }

  .history-testimony-reader-actions {
    width: 100%;
  }

  .history-testimony-reader-actions .button {
    flex: 1 1 11rem;
  }
}

@media print {
  html[data-history-printing="true"] .site-header,
  html[data-history-printing="true"] .site-footer,
  html[data-history-printing="true"] .public-page-hero,
  html[data-history-printing="true"] .history-testimony > .history-story-image,
  html[data-history-printing="true"] .history-testimony > .history-story-copy,
  html[data-history-printing="true"] .history-testimony-reader-header,
  html[data-history-printing="true"] .history-testimony-reader-controls,
  html[data-history-printing="true"] .history-testimony-continue,
  html[data-history-printing="true"] .history-story-panel:not(.history-testimony),
  html[data-history-printing="true"] .history-section {
    display: none !important;
  }

  html[data-history-printing="true"] .history-story-flow,
  html[data-history-printing="true"] .history-testimony,
  html[data-history-printing="true"] .history-testimony-reader {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: #fff;
    box-shadow: none;
  }

  html[data-history-printing="true"] .history-testimony-prose {
    width: 100%;
    margin: 0;
    color: #000;
  }
}

/* Public History chronology */
html:has(main[data-history-page]),
body:has(main[data-history-page]) {
  overflow-x: clip;
}

.history-public-hero {
  padding-block: clamp(4.5rem, 8vw, 7rem);
}

.history-public-hero .public-page-hero-copy {
  max-width: 760px;
}

.history-chronology {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.history-chronology ol {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-block: 0;
  padding-block: 1.15rem;
  list-style: none;
}

.history-chronology li {
  min-width: 0;
  border-left: 1px solid var(--line);
}

.history-chronology li:first-child {
  border-left: 0;
}

.history-chronology a {
  display: grid;
  gap: 0.2rem;
  min-height: 100%;
  padding: 0.45rem clamp(0.75rem, 1.5vw, 1.25rem);
  color: var(--blue-900);
  text-decoration: none;
}

.history-chronology a:hover .history-chronology-title,
.history-chronology a:focus-visible .history-chronology-title {
  color: var(--gold-600);
}

.history-chronology a:focus-visible {
  border-radius: 8px;
  outline: 3px solid rgba(39, 94, 154, 0.28);
  outline-offset: -2px;
}

.history-chronology-date {
  color: var(--gold-600);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.history-chronology-title {
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
  font-weight: 700;
  line-height: 1.2;
  transition: color 160ms ease;
}

.history-chronicle {
  background: var(--paper);
}

.history-era {
  padding-block: clamp(3.75rem, 7vw, 6.5rem);
  scroll-margin-top: 1rem;
  border-bottom: 1px solid var(--line);
}

.history-era--tinted {
  background: var(--blue-050);
}

.history-era-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.history-era-layout--reversed {
  grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
}

.history-era-layout--reversed .history-era-image {
  order: 2;
}

.history-era-layout--reversed .history-era-copy {
  order: 1;
}

.history-era-image {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(11, 36, 66, 0.1);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.history-era-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.history-era-image--glory img {
  object-position: 50% 30%;
}

.history-era-copy {
  max-width: 620px;
}

.history-era-copy .small-label {
  margin-bottom: 0.7rem;
}

.history-era-copy h2 {
  margin: 0 0 1rem;
  color: var(--blue-900);
  font-size: clamp(2rem, 3.4vw, 3.2rem);
  line-height: 1.05;
}

.history-era-copy p {
  color: var(--muted);
  font-size: clamp(1rem, 1.25vw, 1.1rem);
  line-height: 1.75;
}

.history-era-copy p:last-child {
  margin-bottom: 0;
}

.history-witness-summary {
  margin-top: 1.15rem;
  padding-left: 1.1rem;
  border-left: 3px solid var(--gold-500);
  color: var(--ink) !important;
}

.history-witness-disclosure {
  grid-column: 1 / -1;
  order: 3;
  margin-top: clamp(0.25rem, 1.5vw, 1rem);
  overflow: hidden;
  border: 1px solid rgba(181, 139, 55, 0.34);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(11, 36, 66, 0.08);
}

.history-witness-disclosure summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3rem;
  gap: 0.25rem 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  color: var(--blue-900);
  cursor: pointer;
  list-style: none;
}

.history-witness-disclosure summary::-webkit-details-marker {
  display: none;
}

.history-witness-disclosure summary::after {
  content: "+";
  display: grid;
  grid-column: 2;
  grid-row: 1 / 4;
  place-items: center;
  width: 2.65rem;
  height: 2.65rem;
  align-self: center;
  border: 1px solid rgba(11, 36, 66, 0.18);
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1;
}

.history-witness-disclosure[open] summary::after {
  content: "−";
}

.history-witness-disclosure summary:hover {
  background: #fffdf7;
}

.history-witness-disclosure summary:focus-visible {
  outline: 3px solid rgba(39, 94, 154, 0.32);
  outline-offset: -4px;
}

.history-witness-summary-label,
.history-witness-summary-title,
.history-witness-summary-note {
  grid-column: 1;
}

.history-witness-summary-label {
  color: var(--gold-600);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.history-witness-summary-title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  font-weight: 700;
  line-height: 1.2;
}

.history-witness-summary-note {
  color: var(--muted);
  font-size: 0.92rem;
}

.history-witness-document {
  padding: clamp(1.5rem, 4vw, 3.4rem);
  border-top: 1px solid var(--line);
  background: linear-gradient(180deg, #fffdf8 0%, #fff 13rem);
}

.history-witness-document-header {
  width: min(100%, 72ch);
  margin: 0 auto clamp(1.75rem, 4vw, 3rem);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}

.history-witness-document-header h3 {
  margin: 0 0 0.65rem;
  color: var(--blue-900);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  line-height: 1.12;
}

.history-witness-document-header p:last-child {
  margin-bottom: 0;
  color: var(--muted);
}

.history-witness-document .history-testimony-prose {
  width: min(100%, 72ch);
  margin: 0 auto;
  font-size: 1.04rem;
  line-height: 1.84;
}

.history-conclusion {
  padding-block: clamp(4.5rem, 8vw, 7rem);
  color: rgba(255, 255, 255, 0.82);
  background:
    radial-gradient(circle at 82% 20%, rgba(201, 162, 77, 0.2), transparent 30%),
    linear-gradient(145deg, var(--blue-900), var(--blue-950));
}

.history-conclusion-copy {
  max-width: 820px;
  text-align: center;
}

.history-conclusion .eyebrow {
  color: var(--gold-300);
}

.history-conclusion h2 {
  margin-bottom: 1rem;
  color: #fff;
  font-size: clamp(2.2rem, 4vw, 3.6rem);
}

.history-conclusion p:last-child {
  margin: 0;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.75;
}

@media (max-width: 900px) {
  .history-chronology {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .history-chronology ol {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(180px, 42vw);
    width: max-content;
    min-width: 100%;
  }

  .history-era-layout,
  .history-era-layout--reversed {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .history-era-layout--reversed .history-era-image,
  .history-era-layout--reversed .history-era-copy {
    order: initial;
  }

  .history-era-copy {
    max-width: 760px;
  }

  .history-witness-disclosure {
    order: initial;
  }
}

@media (max-width: 620px) {
  .history-public-hero {
    padding-block: 3.75rem;
  }

  .history-chronology ol {
    grid-auto-columns: minmax(170px, 72vw);
  }

  .history-era {
    padding-block: 3.25rem;
  }

  .history-era-image img {
    aspect-ratio: 4 / 3;
  }

  .history-witness-disclosure {
    border-radius: 14px;
  }

  .history-witness-disclosure summary {
    grid-template-columns: minmax(0, 1fr) 2.5rem;
    padding: 1.15rem;
  }

  .history-witness-disclosure summary::after {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1.5rem;
  }

  .history-witness-document {
    padding: 1.25rem;
  }

  .history-witness-document .history-testimony-prose {
    font-size: 1rem;
    line-height: 1.75;
  }
}

/* Complete public History narrative */
.history-intro {
  padding-block: clamp(2rem, 4vw, 3.5rem);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 88% 12%, rgba(123, 170, 214, 0.2), transparent 34%),
    linear-gradient(135deg, #fbfaf6 0%, #f4f8fc 100%);
}

.history-intro-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 4.75rem);
  align-items: center;
}

.history-intro-art {
  width: min(100%, 390px);
  margin: 0;
  overflow: hidden;
  justify-self: center;
  border: 1px solid rgba(11, 36, 66, 0.12);
  border-radius: 22px;
  background: var(--blue-950);
  box-shadow: var(--shadow-soft);
}

.history-intro-art img {
  display: block;
  width: 100%;
  height: clamp(330px, 31vw, 430px);
  object-fit: cover;
  object-position: 50% 27%;
}

.history-intro-copy {
  max-width: 760px;
}

.history-intro-copy .eyebrow {
  margin-bottom: 0.6rem;
}

.history-intro-copy h1 {
  max-width: 720px;
  margin: 0 0 0.85rem;
  color: var(--blue-900);
  font-family: var(--font-display);
  font-size: clamp(2.7rem, 4.5vw, 4.4rem);
  line-height: 0.98;
}

.history-intro-lead {
  max-width: 68ch;
  margin-bottom: 1.45rem;
  color: var(--ink);
  font-size: clamp(1rem, 1.25vw, 1.12rem);
  line-height: 1.62;
}

.history-intro-timeline ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0 0 0 0.45rem;
  list-style: none;
}

.history-intro-timeline li {
  position: relative;
  min-width: 0;
  border-left: 1px solid rgba(181, 139, 55, 0.5);
}

.history-intro-timeline li:last-child {
  border-left-color: transparent;
}

.history-intro-timeline a {
  position: relative;
  display: grid;
  grid-template-columns: minmax(105px, 0.42fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: baseline;
  padding: 0.32rem 0.65rem 0.58rem 1rem;
  border-radius: 8px;
  color: var(--blue-900);
  text-decoration: none;
}

.history-intro-timeline a::before {
  content: "";
  position: absolute;
  top: 0.72rem;
  left: -0.74rem;
  width: 0.58rem;
  height: 0.58rem;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 1px rgba(181, 139, 55, 0.45);
}

.history-intro-timeline a:hover,
.history-intro-timeline a:focus-visible {
  background: rgba(255, 255, 255, 0.72);
}

.history-intro-timeline a:hover .history-chronology-title,
.history-intro-timeline a:focus-visible .history-chronology-title {
  color: var(--gold-600);
}

.history-intro-timeline a:focus-visible {
  outline: 3px solid rgba(39, 94, 154, 0.28);
  outline-offset: 1px;
}

.history-intro-timeline .history-chronology-date {
  font-size: 0.68rem;
}

.history-intro-timeline .history-chronology-title {
  font-size: 1rem;
}

.history-era {
  padding-block: clamp(3.5rem, 6vw, 5.75rem);
  scroll-margin-top: 5.5rem;
}

.history-era-layout,
.history-era-layout--image-left {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.75rem);
  align-items: center;
}

.history-era-layout--image-left .history-era-image {
  order: 1;
}

.history-era-layout--image-left .history-era-copy {
  order: 2;
}

.history-era-image {
  align-self: stretch;
}

.history-era-image img {
  height: 100%;
  min-height: 330px;
  aspect-ratio: 16 / 10;
}

.history-era-copy p:not(.small-label) {
  max-width: 62ch;
  color: var(--ink);
  font-size: clamp(1rem, 1.12vw, 1.08rem);
  line-height: 1.72;
}

.history-read-more {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  min-height: 44px;
  margin-top: 0.35rem;
  padding: 0.62rem 0.85rem;
  border: 1px solid rgba(39, 94, 154, 0.26);
  border-radius: 8px;
  color: var(--blue-900);
  background: #fff;
  font-weight: 800;
  text-decoration: none;
}

.history-read-more:hover,
.history-read-more:focus-visible {
  border-color: var(--gold-500);
  color: var(--gold-700);
  box-shadow: 0 6px 18px rgba(11, 36, 66, 0.08);
}

.history-unavailable {
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
  background: var(--paper);
}

.history-unavailable .history-conclusion-copy {
  color: var(--ink);
}

.history-conclusion {
  padding-block: clamp(3.75rem, 6vw, 5.5rem);
}

@media (max-width: 1000px) {
  .history-intro-layout {
    grid-template-columns: minmax(250px, 0.78fr) minmax(0, 1.22fr);
    gap: 2.25rem;
  }

  .history-intro-art img {
    height: clamp(330px, 40vw, 410px);
  }
}

@media (max-width: 820px) {
  .history-intro-layout,
  .history-era-layout,
  .history-era-layout--image-left {
    grid-template-columns: 1fr;
  }

  .history-intro-art {
    width: 100%;
    max-width: none;
  }

  .history-intro-art img {
    height: min(58vw, 390px);
    min-height: 300px;
    object-position: 50% 24%;
  }

  .history-intro-copy {
    max-width: none;
  }

  .history-intro-timeline ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1rem;
    padding-left: 0;
  }

  .history-intro-timeline li,
  .history-intro-timeline li:last-child {
    border-left-color: rgba(181, 139, 55, 0.5);
  }

  .history-intro-timeline a {
    grid-template-columns: 1fr;
    gap: 0.1rem;
    padding-left: 1rem;
  }

  .history-era-layout--image-left .history-era-copy,
  .history-era-layout--image-left .history-era-image,
  .history-era-copy,
  .history-era-image {
    order: initial;
  }

  .history-era-copy {
    max-width: none;
  }

  .history-era-image img {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 540px) {
  .history-intro {
    padding-block: 1.5rem 2.25rem;
  }

  .history-intro-layout {
    gap: 1.75rem;
  }

  .history-intro-art {
    border-radius: 16px;
  }

  .history-intro-art img {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .history-intro-copy h1 {
    font-size: clamp(2.45rem, 13vw, 3.35rem);
  }

  .history-intro-timeline ol {
    grid-template-columns: 1fr;
  }

  .history-intro-timeline a {
    grid-template-columns: minmax(100px, 0.42fr) minmax(0, 1fr);
    gap: 0.65rem;
  }

  .history-era {
    padding-block: 3rem;
  }

  .history-era-image {
    border-radius: 16px;
  }

  .history-era-image img {
    aspect-ratio: 4 / 3;
  }

}

/* Phase 4 interactive family diagram */
.family-diagram-section {
  display: grid;
  gap: 1rem;
}

.family-diagram-heading {
  align-items: start;
  flex-wrap: wrap;
}

.family-diagram-heading > div {
  flex: 1 1 28rem;
  min-width: min(100%, 28rem);
}

.family-diagram-heading .count-badge {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  height: auto;
  min-height: 2.2rem;
  padding: 0.35rem 0.65rem;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}

.family-diagram-heading .eyebrow {
  margin-bottom: 0.25rem;
}

.family-diagram-enhanced {
  display: grid;
  gap: 0.8rem;
}

.family-diagram-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}

.family-diagram-toolbar-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.family-diagram-toolbar-group:first-child .button {
  min-width: 2.55rem;
  padding-inline: 0.65rem;
  font-size: 1.05rem;
}

.family-diagram-focus-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0.5rem;
  padding: 0.65rem;
  border: 1px solid #d7e1e8;
  border-radius: 14px;
  background: var(--blue-050);
}

.family-diagram-focus-controls .button {
  min-width: 0;
  white-space: normal;
}

.family-diagram-focus-controls .button[aria-pressed="true"] {
  border-color: var(--blue-700);
  background: var(--blue-700);
  color: #fff;
}

.family-diagram-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.2rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.family-diagram-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.family-diagram-legend-line {
  display: inline-block;
  width: 2.2rem;
  border-top: 3px solid #2f7b55;
}

.family-diagram-legend-line.is-spiritual {
  border-color: var(--gold-500);
  border-top-width: 4px;
}

.family-diagram-legend-line.is-civil {
  border-color: var(--blue-700);
  border-top-style: dashed;
}

.family-diagram-instructions,
.family-diagram-status {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.family-diagram-status {
  min-height: 1.4em;
  color: var(--blue-700);
  font-weight: 650;
}

.family-diagram-viewport {
  position: relative;
  min-height: 540px;
  overflow: hidden;
  border: 1px solid #c9d7e2;
  border-radius: 18px;
  background:
    radial-gradient(circle at center, rgba(30, 91, 136, 0.055) 1px, transparent 1px),
    linear-gradient(180deg, #fbfdff 0%, #f4f8fb 100%);
  background-size: 22px 22px, auto;
  cursor: grab;
  touch-action: none;
}

.family-diagram-viewport:focus-visible {
  outline: 3px solid var(--gold-500);
  outline-offset: 3px;
}

.family-diagram-viewport.is-dragging {
  cursor: grabbing;
}

.family-diagram-surface {
  position: absolute;
  inset: 0 auto auto 0;
  transform-origin: 0 0;
  will-change: transform;
}

.family-diagram-edges,
.family-diagram-nodes {
  position: absolute;
  inset: 0;
}

.family-diagram-edge {
  stroke: #2f7b55;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}

.family-diagram-edge.is-spiritual-spouse {
  stroke: var(--gold-500);
  stroke-width: 4;
}

.family-diagram-edge.is-civil-spouse {
  stroke: var(--blue-700);
  stroke-dasharray: 9 7;
}

.family-diagram-node {
  position: absolute;
  width: 206px;
  min-height: 126px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.28rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid #b9cbd8;
  border-radius: 15px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  box-shadow: 0 9px 24px rgba(18, 50, 73, 0.11);
}

.family-diagram-node strong {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.03rem;
  line-height: 1.18;
}

.family-diagram-node span,
.family-diagram-node small {
  color: var(--muted);
  font-size: 0.83rem;
  line-height: 1.25;
}

.family-diagram-node-control {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--blue-700);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 750;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: 0.16em;
  cursor: pointer;
}

.family-diagram-node-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.55rem;
  margin-top: 0.15rem;
}

.family-diagram-node.is-root {
  border-color: var(--gold-500);
  background: linear-gradient(145deg, #fffdf7, #fff7df);
  box-shadow: 0 10px 28px rgba(126, 91, 12, 0.17);
}

.family-diagram-node.has-control:hover {
  border-color: var(--blue-700);
}

.family-diagram-node-control:focus-visible {
  outline: 3px solid var(--gold-500);
  outline-offset: 3px;
}

.family-diagram-fallback {
  border-top: 1px solid #d7e1e8;
  padding-top: 0.8rem;
}

.family-diagram-fallback summary {
  cursor: pointer;
  color: var(--blue-700);
  font-weight: 750;
}

.family-diagram-fallback p {
  margin: 0.65rem 0;
  color: var(--muted);
}

.family-diagram-fallback ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.family-diagram-fallback li {
  display: grid;
  gap: 0.15rem;
  padding: 0.7rem 0.8rem;
  border-radius: 10px;
  background: var(--blue-050);
}

.family-diagram-fallback li span {
  color: var(--muted);
  font-size: 0.88rem;
}

@media (max-width: 760px) {
  .family-diagram-toolbar {
    align-items: stretch;
  }

  .family-diagram-toolbar-group {
    width: 100%;
  }

  .family-diagram-toolbar-group .button {
    flex: 1 1 auto;
  }

  .family-diagram-focus-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .family-diagram-viewport {
    min-height: 440px;
  }
}

@media (max-width: 430px) {
  .family-diagram-focus-controls {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .family-diagram-node.has-control { transition: none; }
}

/* Phase 5 transaction-backed finance correction */
.finance-subnavigation {
  position: sticky;
  top: 58px;
  z-index: 180;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.65rem clamp(0.75rem, 2vw, 1.25rem);
  border-bottom: 1px solid #d9e2ea;
  background: rgba(247, 249, 251, 0.98);
  backdrop-filter: blur(12px);
}

.finance-subnavigation a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.68rem;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--blue-900);
  font-size: 0.82rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
}

.finance-subnavigation a:hover,
.finance-subnavigation a:focus-visible {
  border-color: var(--blue-200);
  background: #fff;
}

.finance-subnavigation a.is-active {
  border-color: var(--blue-700);
  background: var(--blue-700);
  color: #fff;
}

.finance-form-container,
.finance-detail-container { max-width: 1180px; }

.finance-record-form {
  display: grid;
  gap: 1.25rem;
  padding: clamp(1rem, 2vw, 1.5rem);
}

.finance-form-section {
  display: grid;
  gap: 0.8rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--line);
}

.finance-form-section:last-of-type { border-bottom: 0; }
.finance-form-section .portal-section-heading { margin-bottom: 0.1rem; }
.finance-form-section .portal-section-heading h2 { margin-bottom: 0; font-size: 1.2rem; }
.optional-label { color: var(--muted); font-size: 0.78rem; font-weight: 500; }

.finance-transaction-summary {
  display: grid;
  grid-template-columns: minmax(110px, 0.65fr) minmax(130px, 0.7fr) minmax(220px, 1.8fr);
  gap: 0.65rem;
  padding: 0.85rem;
  border: 1px solid var(--blue-200);
  border-radius: 9px;
  background: var(--blue-050);
}

.finance-transaction-summary div { min-width: 0; }
.finance-transaction-summary span,
.finance-transaction-summary strong { display: block; }
.finance-transaction-summary span { color: var(--muted); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.finance-transaction-summary strong { margin-top: 0.15rem; overflow-wrap: anywhere; color: var(--blue-950); }

.finance-member-picker { position: relative; }
.finance-picker-results {
  position: absolute;
  z-index: 60;
  top: calc(100% - 1.15rem);
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid var(--blue-200);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(15, 44, 75, 0.16);
}

.finance-picker-results button {
  width: 100%;
  display: grid;
  gap: 0.08rem;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--blue-950);
  text-align: left;
  cursor: pointer;
}

.finance-picker-results button:hover,
.finance-picker-results button:focus-visible { background: var(--blue-050); outline: 2px solid var(--blue-500); }
.finance-picker-results button small { color: var(--muted); }
.finance-picker-results p { margin: 0; padding: 0.55rem 0.65rem; color: var(--muted); }
.finance-amount-confirmation { margin-top: 0.45rem; }
.finance-no-transactions { margin-bottom: 1rem; }

.finance-ledger-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(145px, 1fr));
  align-items: end;
}

.finance-ledger-filters .filter-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.finance-ledger-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.finance-ledger-table td small { display: block; margin-top: 0.15rem; }

.finance-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  gap: 1rem;
  align-items: start;
}

.finance-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
}

.finance-detail-list.single-column { grid-template-columns: 1fr; }
.finance-detail-list > div { min-width: 0; padding: 0.75rem 0; border-bottom: 1px solid var(--line); }
.finance-detail-list > div:nth-last-child(-n + 2) { border-bottom-color: transparent; }
.finance-detail-list > div:nth-child(odd) { padding-right: 0.8rem; }
.finance-detail-list > div.span-two { grid-column: 1 / -1; padding-right: 0; }
.finance-detail-list dt { color: var(--muted); font-size: 0.75rem; font-weight: 750; text-transform: uppercase; letter-spacing: 0.05em; }
.finance-detail-list dd { margin: 0.15rem 0 0; overflow-wrap: anywhere; color: var(--blue-950); }
.finance-detail-list dd small { display: block; color: var(--muted); }
.finance-receipts-panel { margin-top: 1rem; }

.finance-receipt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 240px));
  gap: 1rem;
}

.finance-receipt-card { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.finance-receipt-card.is-superseded { opacity: 0.68; }
.finance-receipt-thumbnail { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e9eef3; }
.finance-receipt-thumbnail img,
.finance-receipt-thumbnail iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: cover; pointer-events: none; }
.finance-receipt-open { position: absolute; inset: 0; display: grid; place-items: end center; padding: 0.65rem; border: 0; background: linear-gradient(transparent 45%, rgba(7, 29, 54, 0.78)); color: #fff; font: inherit; font-weight: 750; cursor: zoom-in; }
.finance-receipt-open:focus-visible { outline: 3px solid var(--gold-500); outline-offset: -4px; }
.finance-receipt-meta,
.finance-receipt-pending { display: grid; gap: 0.28rem; padding: 0.75rem; }
.finance-receipt-meta strong,
.finance-receipt-pending strong { overflow-wrap: anywhere; }
.finance-receipt-meta small,
.finance-receipt-pending small { color: var(--muted); }
.finance-receipt-pending .status-pill { width: fit-content; }

.finance-receipt-dialog {
  width: min(94vw, 1200px);
  height: min(92vh, 900px);
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(4, 19, 36, 0.38);
}

.finance-receipt-dialog::backdrop { background: rgba(4, 16, 30, 0.72); }
.finance-receipt-dialog-header { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.65rem 0.85rem; border-bottom: 1px solid var(--line); }
.finance-receipt-dialog-header h2 { margin: 0; overflow: hidden; font-size: 1.05rem; text-overflow: ellipsis; white-space: nowrap; }
.finance-receipt-toolbar { min-height: 48px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.45rem; border-bottom: 1px solid var(--line); background: #f6f8fa; }
.finance-receipt-toolbar output { min-width: 54px; color: var(--muted); font-size: 0.82rem; font-weight: 700; text-align: center; }
.finance-receipt-stage { height: calc(100% - 105px); overflow: auto; display: grid; place-items: start center; padding: 1rem; background: #303942; }
.finance-receipt-stage img { max-width: 100%; height: auto; transform-origin: top center; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35); }
.finance-receipt-stage iframe { width: 100%; min-height: 100%; border: 0; background: #fff; transform-origin: top center; }
.finance-void-disclosure { margin-top: 1rem; }

@media (max-width: 1100px) {
  .finance-ledger-filters { grid-template-columns: repeat(3, minmax(145px, 1fr)); }
}

@media (max-width: 760px) {
  .finance-subnavigation { top: 58px; padding: 0.5rem; }
  .finance-subnavigation a { flex: 1 1 140px; justify-content: center; text-align: center; }
  .finance-ledger-filters,
  .finance-detail-grid,
  .finance-detail-list,
  .finance-transaction-summary { grid-template-columns: 1fr; }
  .finance-detail-list > div,
  .finance-detail-list > div:nth-child(odd) { padding-right: 0; }
  .finance-detail-list > div:nth-last-child(-n + 2) { border-bottom-color: var(--line); }
  .finance-receipt-grid { grid-template-columns: 1fr; }
  .finance-receipt-dialog { width: 100vw; height: 100vh; max-width: none; max-height: none; border-radius: 0; }
}
