/* ============================================================
   SALETTE MC — Pages Shared Stylesheet
   Styles shared across all sub-pages
   ============================================================ */

/* ── Page Hero ── */
.page-hero {
  position: relative;
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  padding-top: 72px; /* nav height */
  overflow: hidden;
}

.page-hero__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 0%, rgba(138,106,63,0.08) 0%, transparent 55%),
    var(--brushed-metal);
}

.page-hero__content {
  position: relative;
  padding-block: clamp(3rem, 8vh, 5rem) clamp(2.5rem, 6vh, 4rem);
}

.page-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  font-weight: 300;
  color: var(--white);
  line-height: 1.1;
  margin-top: var(--space-sm);
  margin-bottom: var(--space-sm);
}

.page-hero__title em {
  font-style: italic;
  color: var(--gold-light);
}

.page-hero__sub {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--text-xl);
  color: rgba(255,255,255,0.86);
  max-width: 52ch;
  font-weight: 300;
}

/* ── Breadcrumb ── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  margin-bottom: var(--space-sm);
}

.breadcrumb a { color: var(--gold-light); }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { color: rgba(255,255,255,0.72); }

.page-hero .eyebrow {
  color: var(--gold-light);
}

/* ── Gallery Page ── */
.gallery-page__grid {
  columns: 3;
  column-gap: 8px;
}

.gallery-page__item {
  break-inside: avoid;
  margin-bottom: 8px;
  overflow: hidden;
  background: var(--divider);
}

.gallery-page__item img {
  width: 100%;
  display: block;
  transition: transform 0.5s var(--ease);
}

.gallery-page__item:hover img { transform: scale(1.04); }

.gallery-page__placeholder {
  width: 100%;
  aspect-ratio: 1;
  background: linear-gradient(135deg, var(--gold-pale), var(--divider));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: var(--gold);
  transition: transform 0.5s var(--ease);
}

.gallery-page__item:hover .gallery-page__placeholder {
  transform: scale(1.04);
}

@media (max-width: 768px) {
  .gallery-page__grid { columns: 2; }
}
@media (max-width: 480px) {
  .gallery-page__grid { columns: 1; }
}

/* ── Commandments Page ── */
.commandments-intro { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); margin-bottom:var(--space-xl); overflow:hidden; color:var(--white); background:var(--brushed-metal),linear-gradient(135deg,#30475a,#101a23); border:1px solid rgba(200,178,141,.3); box-shadow:0 24px 64px rgba(16,26,35,.18); }
.commandments-intro__mosaic-panel { display:flex; flex-direction:column; justify-content:center; gap:1.25rem; padding:clamp(2rem,5vw,4rem); border-left:1px solid rgba(255,255,255,.1); background:radial-gradient(circle at 20% 15%,rgba(200,178,141,.18),transparent 42%); }
.commandments-intro__mosaic { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.55rem; }
.commandments-intro__mosaic a { display:grid; aspect-ratio:1; place-items:center; border:1px solid rgba(200,178,141,.32); color:rgba(255,255,255,.84); font-family:var(--font-display); font-size:var(--text-lg); transition:transform var(--duration) var(--ease),background var(--duration) var(--ease),color var(--duration) var(--ease); }
.commandments-intro__mosaic a:nth-child(4),.commandments-intro__mosaic a:nth-child(8) { color:var(--white); background:var(--gold); border-color:var(--gold); }
.commandments-intro__mosaic a:hover,.commandments-intro__mosaic a:focus-visible { color:var(--charcoal); background:var(--gold-light); outline:none; transform:translateY(-4px); }
.commandments-intro__content { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,6vw,4.5rem); }
.commandments-intro__content .eyebrow { color:var(--gold-light); }
.commandments-intro__content h2 { margin-top:.5rem; color:var(--white); font-family:var(--font-display); font-size:clamp(2.4rem,5vw,4rem); font-weight:300; line-height:1.05; }
.commandments-intro__content h2 em { color:var(--gold-light); font-weight:300; }
.commandments-intro__content > p { max-width:55ch; margin-top:1rem; color:rgba(255,255,255,.82); line-height:1.75; }
.commandments-intro__content blockquote { margin-top:1.5rem; padding:1.1rem 1.25rem; border-left:2px solid var(--gold-light); background:rgba(255,255,255,.055); }
.commandments-intro__content blockquote p { color:rgba(255,255,255,.86); font-family:var(--font-display); font-size:var(--text-lg); font-style:italic; line-height:1.45; }
.commandments-intro__content blockquote cite { display:block; margin-top:.6rem; color:rgba(255,255,255,.62); font-size:var(--text-xs); font-style:normal; letter-spacing:.08em; text-transform:uppercase; }
.commandments-intro__hint { color:rgba(255,255,255,.62); font-size:var(--text-xs); font-style:normal; line-height:1.6; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:800px) { .commandments-intro { grid-template-columns:1fr; } .commandments-intro__mosaic-panel { padding:2rem; border-top:1px solid rgba(255,255,255,.1); border-left:0; } }
@media (max-width:560px) { .commandments-intro__mosaic-panel { gap:1rem; padding:1.25rem; } .commandments-intro__mosaic { gap:.35rem; } .commandments-intro__mosaic a { font-size:var(--text-base); } .commandments-intro__content { padding:1.5rem; } }

.commandment-full {
  display: grid;
  gap: 1px;
  background: var(--divider);
  border: 1px solid var(--divider);
  margin-top: var(--space-lg);
}

.commandment-full__item {
  background: var(--white);
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: stretch;
  transition: background var(--duration) var(--ease);
  scroll-margin-top: 96px;
}

.commandment-full__item:target {
  background: var(--gold-pale);
  box-shadow: inset 4px 0 0 var(--gold);
}

.commandment-full__item:hover { background: var(--ivory); }

.commandment-full__num {
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.014) 0 1px, rgba(0,0,0,0.018) 1px 2px, transparent 2px 4px),
    linear-gradient(105deg, #30475A 0%, #101A23 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  color: var(--gold-light);
  font-weight: 300;
  padding: 1.5rem 0.5rem;
}

.commandment-full__body {
  padding: 1.5rem clamp(1.25rem, 3vw, 2rem);
}

.commandment-full__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 400;
  margin-bottom: 0.4rem;
}

.commandment-full__text {
  font-size: var(--text-sm);
  color: var(--slate);
  line-height: 1.75;
  font-weight: 300;
}

.commandment-full__verse {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Pastors Page */
.pastors-intro { max-width: 720px; margin-bottom: var(--space-xl); }
.pastors-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.25rem,3vw,2rem); }
.pastor-card { position:relative; background:var(--white); border:1px solid var(--divider); overflow:hidden; transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease),border-color var(--duration) var(--ease); }
.pastor-card:hover { transform:translateY(-6px); border-color:var(--gold-light); box-shadow:0 20px 45px rgba(28,28,28,.1); }
.pastor-card__image { aspect-ratio:1; overflow:hidden; background:var(--gold-pale); }
.pastor-card__image img { width:100%; height:100%; object-fit:cover; filter:saturate(.86); transition:transform .5s var(--ease),filter .5s var(--ease); }
.pastor-card__portrait--cyriac { object-position:58% center; }
.pastor-card__portrait--tj { object-position:64% center; }
.pastor-card:hover .pastor-card__image img { transform:scale(1.035); filter:saturate(1); }
.pastor-card__content { padding:1.35rem 1.5rem 1.6rem; border-top:1px solid var(--divider); }
.pastor-card__label { display:block; margin-bottom:.25rem; color:var(--gold); font-size:var(--text-xs); font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.pastor-card h2 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; line-height:1.2; }
.pastor-card p { margin-top:.6rem; color:var(--slate); font-size:var(--text-sm); line-height:1.65; }
.pastor-card--founder { grid-column:span 2; display:grid; grid-template-columns:minmax(220px,.8fr) 1fr; background:var(--gold-pale); }
.pastor-card--founder .pastor-card__image { aspect-ratio:auto; min-height:280px; }
.pastor-card--founder .pastor-card__content { display:flex; flex-direction:column; justify-content:center; border-top:0; border-left:1px solid var(--divider); padding:clamp(2rem,5vw,4rem); }
.pastor-card--founder h2 { font-size:var(--text-3xl); }
@media (max-width:900px) { .pastors-grid{grid-template-columns:repeat(2,1fr)} .pastor-card--founder{grid-column:1/-1} }
@media (max-width:600px) { .pastors-grid{grid-template-columns:1fr} .pastor-card--founder{display:block;grid-column:auto} .pastor-card--founder .pastor-card__image{aspect-ratio:1;min-height:0} .pastor-card--founder .pastor-card__content{border-left:0;border-top:1px solid var(--divider);padding:1.5rem} }

/* ── Leadership Page full grid ── */
.kids-guide { display:grid; grid-template-columns:1fr; gap:clamp(1rem,3vw,2rem); align-items:center; padding:clamp(1.5rem,4vw,2.5rem); background:var(--gold-pale); border:1px solid var(--divider); }
.kids-guide__icon { width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:var(--gold); color:var(--white); font-family:var(--font-display); font-size:2rem; }
.kids-guide__logo { width:40px; height:52px; object-fit:contain; filter:drop-shadow(0 4px 8px rgba(92,66,28,.18)); }
.kids-guide__brand { display:flex; align-items:center; gap:.75rem; }
.kids-guide__brand .eyebrow { margin:0; font-size:var(--text-lg); }
.kids-guide .eyebrow { margin-bottom:.35rem; font-size:var(--text-sm); }
.kids-guide__title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; line-height:1.2; }
.kids-guide__text { max-width:65ch; margin-top:.5rem; color:var(--slate); font-size:var(--text-sm); }

.kids-reflection-btn { display:inline-flex; align-items:center; gap:.55rem; margin-left:1rem; padding:.45rem .75rem; border:1px solid var(--gold); color:var(--gold); font-size:var(--text-xs); font-weight:600; letter-spacing:.08em; text-transform:uppercase; transition:background var(--duration) var(--ease),color var(--duration) var(--ease); }
.kids-reflection-btn:hover,.kids-reflection-btn:focus-visible { background:var(--gold); color:var(--white); outline:none; }

.reflection-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:clamp(1rem,4vw,2.5rem); visibility:hidden; opacity:0; transition:opacity 220ms var(--ease),visibility 220ms var(--ease); }
.reflection-modal.is-open { visibility:visible; opacity:1; }
.reflection-modal__backdrop { position:absolute; inset:0; background:rgba(15,14,11,.78); backdrop-filter:blur(7px); }
.reflection-modal__panel { position:relative; width:min(780px,100%); max-height:min(84vh,760px); overflow-y:auto; background:var(--white); box-shadow:0 24px 80px rgba(0,0,0,.28); transform:translateY(18px); transition:transform 260ms var(--ease); }
.reflection-modal.is-open .reflection-modal__panel { transform:translateY(0); }
.reflection-modal__close { position:sticky; top:.75rem; float:right; z-index:1; width:42px; height:42px; margin:.75rem .75rem -3rem 0; border-radius:50%; background:var(--charcoal); color:var(--white); font-size:1.5rem; }
.reflection-modal__heading { padding:clamp(2rem,6vw,4rem); padding-bottom:clamp(1.5rem,4vw,2.5rem); background:var(--ivory); border-bottom:1px solid var(--divider); }
.reflection-modal__number { display:block; font-family:var(--font-display); color:var(--gold); font-size:var(--text-xl); }
.reflection-modal__title { max-width:18ch; font-family:var(--font-display); font-size:var(--text-3xl); font-weight:400; line-height:1.08; }
.reflection-modal__byline { margin-top:.75rem; color:var(--muted); font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; }
.reflection-modal__content { display:grid; gap:1px; background:var(--divider); }
.reflection-section { padding:clamp(1.5rem,4vw,2.5rem); background:var(--white); }
.reflection-section--daily { background:var(--gold-pale); }
.reflection-section h3 { margin-bottom:.5rem; font-family:var(--font-display); font-size:var(--text-xl); font-weight:600; }
.reflection-section p { color:var(--slate); font-size:var(--text-sm); line-height:1.8; }
.reflection-modal__hint { padding:1rem; color:var(--muted); font-size:var(--text-xs); text-align:center; }
body.reflection-open { overflow:hidden; }

@media (max-width:600px) {
  .kids-guide { grid-template-columns:1fr; }
  .kids-guide__icon { width:46px; height:46px; }
  .kids-guide__logo { width:34px; height:44px; }
  .kids-reflection-btn { display:flex; width:max-content; margin:.75rem 0 0; }
  .reflection-modal { padding:0; align-items:end; }
  .reflection-modal__panel { width:100%; max-height:90svh; }
}

.leadership-full__section {
  margin-bottom: var(--space-xl);
}

.leadership-full__label {
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--divider);
  margin-bottom: var(--space-lg);
}

.leadership-full__section .leadership__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.25rem,3vw,2rem); }
.leadership-full__section .person-card { overflow:hidden; padding-bottom:1.6rem; border:1px solid var(--divider); background:var(--white); text-align:left; transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease),border-color var(--duration) var(--ease); }
.leadership-full__section .person-card:hover { transform:translateY(-6px); border-color:var(--gold-light); box-shadow:0 20px 45px rgba(28,28,28,.1); }
.leadership-full__section .person-card__image { aspect-ratio:1; overflow:hidden; border-bottom:1px solid var(--divider); background:var(--gold-pale); }
.leadership-full__section .person-card__photo { display:block; width:100%; height:100%; margin:0; border:0; border-radius:0; object-fit:cover; filter:saturate(.9); transition:transform .5s var(--ease),filter .5s var(--ease); }
.leadership-full__section .person-card__image--contained .person-card__photo { object-fit:cover; object-position:center top; }
.leadership-full__section .person-card:hover .person-card__photo { transform:scale(1.035); filter:saturate(1); }
.leadership-full__section .person-card__name,.leadership-full__section .person-card__role { margin-inline:1.5rem; }
.leadership-full__section .person-card__name { margin-top:1.35rem; margin-bottom:.25rem; font-size:var(--text-xl); font-weight:500; line-height:1.2; }
.leadership-full__section .person-card__role { color:var(--gold); font-size:var(--text-xs); font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
@media (max-width:900px) { .leadership-full__section .leadership__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .leadership-full__section .leadership__grid { grid-template-columns:1fr; } }

/* Members Page */
.members-main { background:var(--ivory); }
.members-hero { min-height:auto; align-items:flex-start; }
.members-hero .page-hero__bg { opacity:.96; }
.members-hero .page-hero__content { padding-block:clamp(1.5rem,3vw,2.25rem) clamp(2rem,4vw,3rem); }
.members-hero .page-hero__title { margin-top:.5rem; margin-bottom:.5rem; }
.member-login__card { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr); border:1px solid var(--divider); background:var(--white); box-shadow:0 22px 70px rgba(16,26,35,.08); }
.member-login__intro { padding:clamp(2rem,6vw,5rem); background:linear-gradient(145deg,var(--gold-pale),var(--ivory)); }
.member-login__intro p { max-width:48ch; margin-top:1rem; color:var(--slate); line-height:1.8; }
.member-public-link { display:inline-block; margin-top:1.5rem; color:var(--gold); font-size:var(--text-sm); font-weight:600; letter-spacing:.04em; border-bottom:1px solid var(--gold-light); }
.member-public-link:hover,.member-public-link:focus-visible { color:var(--charcoal); border-color:var(--charcoal); outline:none; }
.member-login__form { display:grid; align-content:center; gap:1.1rem; padding:clamp(2rem,6vw,5rem); }
.member-login__form .btn { width:100%; margin-top:.25rem; }
.password-field { position:relative; }
.password-field input { width:100%; padding-right:3.25rem; }
.password-toggle { position:absolute; top:50%; right:.75rem; display:grid; width:2rem; height:2rem; place-items:center; color:var(--gold); transform:translateY(-50%); }
.password-toggle:hover,.password-toggle:focus-visible { color:var(--charcoal); outline:1px solid var(--gold-light); outline-offset:2px; }
.password-icon { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.password-icon[hidden] { display:none; }
.member-status { min-height:1.4em; color:var(--muted); font-size:var(--text-sm); line-height:1.5; }
.member-status--error { color:#9d372c; }
.member-status--dashboard { margin:1rem 0; }
/* No message = no reserved height, so content sits up rather than leaving a gap.
   Scoped by parent because the status JS rewrites away the --dashboard modifier
   when it clears the message. */
.member-dashboard .member-status:empty,
.finance-content .member-status:empty { min-height:0; margin:0; }
.member-dashboard__header { display:flex; align-items:start; justify-content:space-between; gap:2rem; margin-bottom:var(--space-md); }
.member-dashboard__header > div { width:100%; }
.nav__signout { margin-left:auto; padding:.55rem 1rem; border:1px solid var(--gold-light); color:var(--gold-light); font-size:var(--text-xs); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.nav__signout:hover,.nav__signout:focus-visible { color:var(--charcoal); background:var(--gold-light); outline:none; }
.nav.scrolled .nav__signout { color:var(--gold); border-color:var(--gold); }
.nav.scrolled .nav__signout:hover,.nav.scrolled .nav__signout:focus-visible { color:var(--white); background:var(--gold); }
.member-dashboard__header .section-subtitle { margin-top:.35rem; }
.member-corner-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:var(--space-md); border:1px solid var(--divider); background:var(--white); box-shadow:0 14px 34px rgba(16,26,35,.06); }
.member-corner-nav[hidden] { display:none; }
.member-corner-nav:has(.member-corner-nav__admin:not([hidden])) { grid-template-columns:repeat(5,minmax(0,1fr)); }
.member-corner-nav a { display:grid; align-content:start; gap:.35rem; min-height:150px; padding:clamp(1.25rem,3vw,2rem); border-right:1px solid var(--divider); transition:color var(--duration) var(--ease),background var(--duration) var(--ease); }
.member-corner-nav a[hidden] { display:none; }
.member-corner-nav a:last-child { border-right:0; }
.member-corner-nav__finance:has(+ .member-corner-nav__admin[hidden]) { border-right:0; }
.member-corner-nav a:hover,.member-corner-nav a:focus-visible { color:var(--white); background:var(--charcoal); outline:none; }
.member-corner-nav span { color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.12em; }
.member-corner-nav strong { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:500; line-height:1.1; }
.member-corner-nav small { color:var(--muted); font-size:var(--text-xs); line-height:1.5; }
.member-corner-nav a:hover small,.member-corner-nav a:focus-visible small { color:rgba(255,255,255,.7); }
.members-hero .member-corner-nav { width:min(100%,760px); margin-top:1.5rem; border-color:rgba(255,255,255,.2); background:rgba(8,15,21,.36); box-shadow:none; backdrop-filter:blur(5px); }
.members-hero .member-corner-nav a { min-width:0; min-height:auto; padding:.85rem .7rem; border-color:rgba(255,255,255,.16); color:var(--white); text-align:center; }
.members-hero .member-corner-nav a:hover,.members-hero .member-corner-nav a:focus-visible { background:rgba(255,255,255,.12); }
.members-hero .member-corner-nav span { color:var(--gold-light); }
.members-hero .member-corner-nav strong { color:var(--gold-light); font-size:clamp(1.25rem,2.2vw,1.75rem); letter-spacing:-.02em; white-space:nowrap; }
.members-hero .member-corner-nav small { color:rgba(255,255,255,.68); }
.members-hero .member-corner-nav .member-corner-nav__admin { background:rgba(232,201,122,.14); }

/* Member Corner tabs relocated into the sticky top bar */
.nav .member-corner-nav { display:flex; align-items:center; gap:clamp(.75rem,2.5vw,2.25rem); flex:1 1 auto; min-width:0; margin:0 clamp(.75rem,3vw,2.5rem); border:0; background:transparent; box-shadow:none; backdrop-filter:none; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.nav .member-corner-nav::-webkit-scrollbar { display:none; }
.nav .member-corner-nav[hidden] { display:none; }
.nav .member-corner-nav a { display:inline-flex; align-items:center; gap:0; min-width:0; min-height:0; padding:.35rem 0; border:0; color:var(--charcoal); white-space:nowrap; transition:color var(--duration) var(--ease); }
.nav .member-corner-nav a[hidden] { display:none; }
.nav .member-corner-nav a:hover,.nav .member-corner-nav a:focus-visible { background:transparent; color:var(--gold); outline:none; }
.nav .member-corner-nav strong { font-family:inherit; font-size:var(--text-sm); font-weight:500; letter-spacing:.06em; line-height:1; text-transform:uppercase; color:inherit; }
.nav .member-corner-nav__admin strong { color:var(--gold); }

.member-events,.newsletter-feature,.celebrations-grid { scroll-margin-top:7rem; }
.admin-dashboard { display:grid; grid-template-columns:1fr; gap:clamp(1rem,3vw,2rem); margin-bottom:var(--space-xl); }
.admin-dashboard[hidden] { display:none; }
.admin-tool-chooser { margin-bottom:clamp(1.25rem,3vw,2rem); }
.admin-tool-chooser__prompt { margin-bottom:.85rem; color:var(--slate); font-family:var(--font-display); font-size:var(--text-xl); }
.admin-tool-chooser__options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.admin-tool-choice { display:grid; gap:.35rem; min-height:110px; padding:1.25rem; border:1px solid var(--divider); color:var(--charcoal); background:var(--white); text-align:left; cursor:pointer; transition:transform var(--duration) var(--ease),border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),background var(--duration) var(--ease); }
.admin-tool-choice:hover,.admin-tool-choice:focus-visible { transform:translateY(-3px); border-color:var(--gold); box-shadow:0 12px 30px rgba(16,26,35,.1); }
.admin-tool-choice.is-selected { border-color:var(--gold); background:var(--gold-pale); box-shadow:inset 0 -3px 0 var(--gold); }
.admin-tool-choice strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; line-height:1.25; }
.admin-tool-choice .eyebrow { margin:0; color:var(--gold-dark); }
.admin-dashboard > [hidden] { display:none; }
.admin-tools { position:relative; display:flex; min-height:100%; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:1.25rem; margin:0; overflow:hidden; padding:clamp(1.5rem,4vw,2.5rem); color:var(--white); background:var(--brushed-metal),linear-gradient(135deg,#263b4c,#101a23 78%); box-shadow:0 18px 44px rgba(16,26,35,.2); }
.admin-tools::after { content:""; position:absolute; right:-55px; bottom:-70px; width:180px; height:180px; border:1px solid rgba(232,201,122,.2); border-radius:50%; box-shadow:0 0 0 28px rgba(232,201,122,.04),0 0 0 58px rgba(232,201,122,.025); pointer-events:none; }
.admin-tools h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; }
.admin-tools p { color:rgba(255,255,255,.72); font-size:var(--text-sm); line-height:1.7; }
.admin-tools .eyebrow { color:var(--gold-light); }
.admin-tools .btn { position:relative; z-index:1; border-color:var(--gold-light); color:var(--charcoal); background:var(--gold-light); }
.newsletter-admin { padding:clamp(1.5rem,4vw,2.5rem); color:var(--white); background:var(--brushed-metal),linear-gradient(135deg,#263b4c,#101a23 78%); box-shadow:0 18px 44px rgba(16,26,35,.2); }
.newsletter-admin__header { margin-bottom:1.5rem; }
.newsletter-admin__header h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; }
.newsletter-admin__header p { color:rgba(255,255,255,.72); }
.newsletter-admin .eyebrow { color:var(--gold-light); }
.newsletter-admin__form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:end; }
.newsletter-admin__wide { grid-column:1/-1; }
.newsletter-admin .form-field label { color:rgba(255,255,255,.78); }
.newsletter-admin .form-field input { border-color:rgba(255,255,255,.2); color:var(--white); background:rgba(255,255,255,.08); }
.newsletter-admin .form-field input:focus { border-color:var(--gold-light); }
.newsletter-admin .form-field input[type="file"]::file-selector-button { margin-right:.8rem; padding:.45rem .7rem; border:0; color:var(--charcoal); background:var(--gold-light); font:inherit; cursor:pointer; }
.newsletter-admin__publish { display:flex; align-items:center; gap:.65rem; color:rgba(255,255,255,.82); font-size:var(--text-sm); }
.newsletter-admin__publish input { width:1rem; height:1rem; accent-color:var(--gold); }
.newsletter-admin__list { display:grid; gap:.75rem; margin-top:1rem; }
.newsletter-admin__item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid rgba(255,255,255,.13); background:rgba(255,255,255,.055); }
.newsletter-admin__item h4 { font-size:var(--text-base); }
.newsletter-admin__item p { color:rgba(255,255,255,.62); font-size:var(--text-sm); }
.newsletter-admin__actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.newsletter-admin__actions .btn { display:grid; width:7rem; height:2.75rem; padding:.4rem .75rem; place-items:center; border-color:rgba(232,201,122,.6); color:var(--gold-light); font-size:.68rem; line-height:1.1; text-align:center; }
.newsletter-admin__actions .btn:hover,.newsletter-admin__actions .btn:focus-visible { color:var(--charcoal); background:var(--gold-light); }
.newsletter-admin__actions .newsletter-admin__delete { width:2.75rem; border-color:#d66; color:#ff8a80; font-size:1.25rem; }
.newsletter-admin__actions .newsletter-admin__delete:hover,.newsletter-admin__actions .newsletter-admin__delete:focus-visible { border-color:#b42318; color:var(--white); background:#b42318; }
.newsletter-admin .member-status { color:rgba(255,255,255,.72); }
.newsletter-admin .member-status--error { color:#ffb5aa; }
.newsletter-admin .member-empty { color:rgba(255,255,255,.62); }
.family-admin { padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--divider); background:var(--white); box-shadow:0 18px 44px rgba(16,26,35,.08); }
.family-admin__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.family-admin__header h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; }
.family-admin__header p { max-width:60ch; margin-top:.35rem; color:var(--slate); line-height:1.65; }
.family-admin__form { display:grid; grid-template-columns:1fr 1fr minmax(130px,.35fr) minmax(130px,.35fr); gap:1rem; align-items:end; margin-bottom:1.5rem; padding:1.25rem; border:1px solid var(--divider); background:var(--gold-pale); }
.family-admin__form[hidden] { display:none; }
.family-admin__form-actions { display:flex; gap:.6rem; grid-column:1/-1; }
.family-admin__summary { margin-bottom:.75rem; color:var(--muted); font-size:var(--text-sm); }
.family-admin__list { display:grid; gap:.65rem; }
.family-admin__item { display:grid; grid-template-columns:52px minmax(0,1fr) auto auto auto; align-items:center; gap:1rem; padding:1rem; border:1px solid var(--divider); background:var(--ivory); }
.family-admin__item.is-inactive { opacity:.68; background:#f0eee9; }
.family-admin__number { color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.08em; }
.family-admin__details { display:grid; gap:.15rem; min-width:0; }
.family-admin__details strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; }
.family-admin__details small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.family-admin__status { padding:.35rem .6rem; border:1px solid currentColor; border-radius:999px; font-size:.65rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.family-admin__status.is-active { color:#42694c; background:#edf5ef; }
.family-admin__status.is-inactive { color:#98483f; background:#f8eeec; }
.family-admin__count { display:grid; min-width:72px; justify-items:center; color:var(--slate); font-size:var(--text-xs); }
.family-admin__count strong { color:var(--charcoal); font-family:var(--font-display); font-size:var(--text-xl); }
.family-admin__actions { display:flex; gap:.5rem; }
.family-admin__edit { display:grid; width:2.75rem; height:2.75rem; padding:.7rem; place-items:center; border:1px solid var(--gold); color:var(--charcoal); background:transparent; cursor:pointer; transition:color var(--duration) var(--ease),background var(--duration) var(--ease); }
.family-admin__edit:hover,.family-admin__edit:focus-visible { color:var(--white); background:var(--charcoal); }
.family-admin__edit svg { width:100%; height:100%; fill:currentColor; }
.family-admin__item--editing { display:block; padding:1.25rem; opacity:1; background:var(--gold-pale); }
.family-admin__inline-form { display:grid; grid-template-columns:1fr 1fr minmax(90px,.3fr) minmax(120px,.35fr) auto; gap:.85rem; align-items:end; }
.family-admin__inline-field { display:grid; gap:.35rem; color:var(--slate); font-size:var(--text-xs); font-weight:600; letter-spacing:.04em; }
.family-admin__inline-field input,.family-admin__inline-field select { width:100%; min-height:2.75rem; padding:.65rem .7rem; border:1px solid var(--divider); color:var(--charcoal); background:var(--white); font:inherit; }
.family-admin__inline-field input:focus,.family-admin__inline-field select:focus { border-color:var(--gold); outline:none; }
.family-admin__inline-actions { display:flex; gap:.5rem; }
.family-admin__inline-actions .btn { min-height:2.75rem; padding:.65rem .8rem; }
.family-admin__inline-actions .btn:disabled { opacity:.38; cursor:not-allowed; }
.past-events-admin { padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--divider); background:var(--white); box-shadow:0 18px 44px rgba(16,26,35,.08); }
.past-events-admin h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; }
.past-events-admin > p { margin-top:.35rem; color:var(--slate); }
.past-events-admin__list { display:grid; gap:.65rem; margin-top:1.5rem; }
.past-events-admin__item { border:1px solid var(--divider); background:var(--ivory); }
.past-events-admin__item summary { display:grid; grid-template-columns:1fr auto; align-items:center; gap:1rem; padding:1rem; cursor:pointer; list-style:none; }
.past-events-admin__item summary::-webkit-details-marker { display:none; }
.past-events-admin__item summary::before { content:"+"; grid-column:3; color:var(--gold); font-size:var(--text-xl); }
.past-events-admin__item[open] summary::before { content:"-"; }
.past-events-admin__item time { color:var(--gold-dark); font-size:var(--text-sm); font-weight:700; }
.past-events-admin__item summary strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; }
.past-events-admin__families { display:grid; gap:.45rem; padding:0 1rem 1rem; border-top:1px solid var(--divider); }
.past-events-admin__families > div { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--divider); }
.past-events-admin__families > div:last-child { border-bottom:0; }
.past-events-admin__families p { padding-top:1rem; color:var(--muted); font-size:var(--text-sm); }
.celebration-report { display:none; }
.newsletter-feature { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2rem; padding:clamp(2rem,6vw,4.5rem); color:var(--white); background:var(--brushed-metal),linear-gradient(125deg,#30475a,#101a23); box-shadow:0 22px 60px rgba(16,26,35,.16); }
.newsletter-feature .eyebrow { color:var(--gold-light); }
.newsletter-feature h3 { margin:.35rem 0 .65rem; font-family:var(--font-display); font-size:clamp(2rem,5vw,3.8rem); font-weight:400; line-height:1.05; }
.newsletter-feature p { max-width:60ch; color:rgba(255,255,255,.84); line-height:1.7; }
.newsletter-feature__archive-note { margin-top:.9rem; color:var(--gold-light) !important; font-size:var(--text-sm); font-weight:600; }
.newsletter-feature__actions { display:grid; gap:.7rem; justify-items:stretch; min-width:11rem; }
.newsletter-feature__actions .btn { justify-content:center; }
.newsletter-feature__archive { border-color:var(--gold-light); color:var(--charcoal); background:var(--gold-light); box-shadow:0 8px 22px rgba(0,0,0,.18); }
.newsletter-feature__archive:hover,.newsletter-feature__archive:focus-visible { color:var(--white); border-color:var(--gold-light); background:#715331; }
.newsletter-feature__archive-inline { margin-top:1rem; }
.celebrations-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1rem,3vw,2rem); margin-top:clamp(1rem,3vw,2rem); }
.celebration-panel { border:1px solid var(--divider); background:var(--white); }
.celebration-panel__header { display:flex; align-items:center; gap:1.25rem; padding:clamp(1.5rem,4vw,2.25rem); border-bottom:1px solid var(--divider); background:var(--gold-pale); }
.celebration-panel__number { display:grid; flex:0 0 auto; width:58px; height:58px; place-items:center; border-radius:50%; color:var(--white); background:var(--charcoal); font-family:var(--font-display); font-size:var(--text-xl); }
.celebration-panel__logo { flex:0 0 auto; width:58px; height:68px; object-fit:contain; filter:drop-shadow(0 4px 7px rgba(92,66,28,.18)); }
.celebration-panel h3,.newsletter-archive h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; line-height:1.15; }
.celebration-list { display:grid; }
.celebration-list__title { padding:.8rem 1.5rem; border-top:1px solid var(--divider); border-bottom:1px solid var(--divider); color:var(--gold); background:var(--ivory); font-size:var(--text-xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.celebration-item { display:grid; grid-template-columns:90px 1fr; align-items:center; gap:1rem; padding:1rem 1.5rem; border-bottom:1px solid var(--divider); }
.celebration-item:last-child { border-bottom:0; }
.celebration-item time,.newsletter-card time { color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.celebration-item strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; }
.member-events { margin-block:clamp(1.5rem,4vw,3rem); background:var(--white); }
.member-events__header { display:flex; align-items:center; justify-content:flex-start; gap:1.25rem; padding:clamp(1.5rem,4vw,2.25rem); border-bottom:1px solid var(--divider); background:var(--gold-pale); }
.member-events__header h3,.member-event h4 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; line-height:1.15; }
.member-events__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; align-items:stretch; gap:clamp(1rem,3vw,2rem); padding-top:clamp(1rem,3vw,2rem); }
.member-event { display:flex; flex-direction:column; height:100%; padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--divider); background:var(--white); box-shadow:0 10px 28px rgba(16,26,35,.05); }
.member-event.is-rsvp-active { border-color:var(--gold); background:var(--gold-pale); box-shadow:0 16px 38px rgba(138,106,63,.18); }
.member-event__heading { display:flex; align-items:flex-start; justify-content:flex-start; gap:1rem; margin-bottom:.85rem; }
.member-event__heading h4 { color:var(--charcoal); text-align:left; }
.member-event__heading-text { display:grid; justify-items:start; gap:.4rem; min-width:0; }
.member-event__heading .tag { flex:0 0 auto; }
.member-event__date { display:grid; flex:0 0 auto; width:54px; height:54px; place-items:center; align-content:center; color:var(--charcoal); background:#f2ede4; }
.member-event.is-rsvp-active .member-event__date { color:var(--white); background:var(--gold); }
.member-event__date strong { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:600; line-height:.8; }
.member-event__date span { margin-top:.25rem; font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.member-event__meta { display:grid; gap:.45rem; margin-bottom:.85rem; color:var(--slate); font-size:var(--text-sm); }
.member-event__meta-row { display:flex; align-items:flex-start; gap:.55rem; }
.member-event__meta-row svg { flex:0 0 auto; width:1rem; height:1rem; margin-top:.1rem; fill:none; stroke:var(--gold); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.member-event__details { display:grid; grid-template-columns:max-content 1fr; gap:.35rem 1rem; font-size:var(--text-sm); }
.member-event__details:empty { display:none; }
.member-event__details dt { color:var(--gold); font-weight:600; }
.member-event__details dd { color:var(--slate); }
.member-rsvp-section { margin-top:auto; padding-top:1.25rem; border-top:1px solid var(--divider); font-family:var(--font-body); }
.member-rsvp-controls { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.member-event__heading .tag,.member-rsvp-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:82px; min-height:36px; padding:.55rem .85rem; font-family:var(--font-body); font-size:var(--text-xs); font-weight:600; line-height:1; letter-spacing:.12em; text-transform:uppercase; }
.member-rsvp-total { color:var(--charcoal); font-size:var(--text-sm); font-weight:600; }
.member-rsvp-responses-toggle { margin-left:auto; color:var(--gold); font-size:var(--text-xs); font-weight:600; letter-spacing:.04em; }
.member-rsvp-responses-toggle[hidden] { display:none; }
.member-rsvp-responses-toggle:hover,.member-rsvp-responses-toggle:focus-visible { color:var(--charcoal); outline:none; text-decoration:underline; }
.member-rsvp-share { position:relative; display:grid; width:2rem; height:2rem; place-items:center; color:var(--gold); }
.member-rsvp-share svg { width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.member-rsvp-share:hover,.member-rsvp-share:focus-visible { color:var(--charcoal); outline:1px solid var(--gold-light); outline-offset:2px; }
.member-rsvp-share::after { content:attr(data-tooltip); position:absolute; bottom:calc(100% + .55rem); left:50%; z-index:2; width:max-content; max-width:180px; padding:.35rem .5rem; color:var(--white); background:var(--charcoal); font-size:var(--text-xs); line-height:1.2; opacity:0; pointer-events:none; transform:translate(-50%,4px); transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease); }
.member-rsvp-share:hover::after,.member-rsvp-share:focus-visible::after { opacity:1; transform:translate(-50%,0); }
.member-rsvp { display:grid; grid-template-columns:1fr; gap:.7rem; margin-top:.75rem; padding:1rem; border:1px solid var(--divider); background:#fbf8f2; font-family:var(--font-body); }
.member-rsvp[hidden] { display:none; }
.member-rsvp h5 { grid-column:1/-1; color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.member-rsvp__intro { color:var(--slate); font-size:var(--text-sm); line-height:1.5; }
.member-rsvp select,.member-rsvp input { width:100%; min-width:0; padding:.7rem .8rem; border:1px solid var(--divider); background:var(--white); color:var(--charcoal); font:inherit; font-size:var(--text-sm); }
.member-rsvp__question { color:var(--gold); font-size:.68rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.member-rsvp__current { padding:.7rem .8rem; border-left:3px solid var(--gold); color:var(--charcoal); background:var(--gold-pale); font-size:var(--text-sm); font-weight:600; line-height:1.45; }
.member-rsvp__current[hidden] { display:none; }
.member-rsvp__choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.member-rsvp__choices.is-disabled { opacity:.45; pointer-events:none; }
.member-rsvp__choice { padding:.65rem; border:1px solid var(--divider); color:var(--slate); background:var(--white); font-size:var(--text-xs); font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.member-rsvp__choice--attending.is-selected { border-color:var(--gold); color:var(--white); background:var(--gold); }
.member-rsvp__choice--not-attending.is-selected { border-color:var(--charcoal); color:var(--white); background:var(--charcoal); }
.member-rsvp__attendance-steppers { display:grid; gap:.6rem; }
.member-rsvp__stepper { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.75rem; min-width:0; color:var(--charcoal); }
.member-rsvp__question[hidden],.member-rsvp__choices[hidden],.member-rsvp__attendance-steppers[hidden],.member-rsvp__stepper[hidden],.member-rsvp__combined-total[hidden],.member-rsvp select[hidden],.member-rsvp input[hidden],.member-rsvp .btn[hidden] { display:none; }
.member-rsvp__count-label { display:grid; gap:.1rem; font-size:var(--text-sm); }
.member-rsvp__count-label strong { font-weight:600; }
.member-rsvp__count-label small { color:var(--muted); font-size:.7rem; font-weight:400; }
.member-rsvp__stepper-controls { display:grid; grid-template-columns:2.25rem 2.6rem 2.25rem; min-height:2.35rem; border:1px solid var(--divider); }
.member-rsvp__stepper-controls output { display:grid; place-items:center; color:var(--charcoal); background:var(--gold-pale); font-family:var(--font-body); font-size:var(--text-sm); font-weight:700; }
.member-rsvp__stepper-button { min-height:2.25rem; color:var(--white); background:var(--charcoal); font-size:var(--text-lg); font-weight:700; }
.member-rsvp__stepper-button:hover,.member-rsvp__stepper-button:focus-visible { color:var(--charcoal); background:var(--gold-light); outline:2px solid var(--charcoal); outline-offset:-2px; }
.member-rsvp__stepper-button:disabled { color:#80786e; background:#d8d3cc; box-shadow:inset 0 0 0 1px #b5aea5; cursor:not-allowed; opacity:1; }
.member-rsvp__combined-total { display:flex; align-items:center; justify-content:space-between; margin:.1rem 0; padding:.65rem .8rem; border:1px solid var(--divider); color:var(--charcoal); background:#f2ede4; font-size:var(--text-sm); }
.member-rsvp__combined-total strong { color:var(--gold); font-family:var(--font-body); font-size:var(--text-lg); font-weight:700; }
.member-rsvp optgroup[label="Already responded"] { color:var(--muted); }
.member-rsvp option.family-option--responded { color:var(--muted); }
.member-rsvp .btn { justify-content:center; padding:.7rem .8rem; }
.member-rsvp__submit { width:100%; border-color:var(--gold); color:var(--white); background:var(--gold); }
.member-rsvp__submit:hover,.member-rsvp__submit:focus-visible { color:var(--white); background:#715331; }
.member-rsvp__status { align-self:center; min-height:1.4em; color:var(--slate); font-size:var(--text-xs); }
.member-rsvp-responses { display:grid; gap:.45rem; margin-top:1rem; }
.member-rsvp-responses[hidden] { display:none; }
.member-rsvp-responses:empty { display:none; }
.member-rsvp-responses h5 { color:var(--muted); font-size:var(--text-xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.member-rsvp-response { display:grid; grid-template-columns:minmax(0,1fr) 7.5rem; align-items:center; padding:.55rem 0 .55rem .7rem; color:var(--slate); background:#f1f0ed; font-size:var(--text-xs); }
.member-rsvp-response strong { font-weight:600; }
.member-rsvp-response span { align-self:stretch; display:grid; place-items:center; border-left:1px solid var(--divider); color:var(--charcoal); font-weight:700; text-align:center; }
.member-rsvp-responses__muted-title { margin-top:.65rem; opacity:.58; }
.member-rsvp-response--muted { grid-template-columns:1fr; color:#8f887f; background:#f7f5f1; opacity:.55; }
.member-rsvp-response--muted strong { font-weight:500; }
.member-empty { padding:1.5rem; color:var(--muted); font-size:var(--text-sm); line-height:1.7; }
.newsletter-archive { margin-top:var(--space-xl); }
.newsletter-archive__header { margin-bottom:var(--space-lg); }
.newsletter-archive__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.newsletter-card { display:grid; align-content:start; gap:1rem; padding:1.5rem; border:1px solid var(--divider); background:var(--white); transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease); }
.newsletter-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(16,26,35,.08); }
.newsletter-card h4 { min-height:2.4em; font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; line-height:1.2; }
.newsletter-card .btn { justify-self:start; }
.finance-page { background:var(--ivory); }
.finance-main { min-height:42vh; }
.finance-access { display:grid; place-items:center; min-height:28vh; color:var(--slate); text-align:center; }
.finance-content[hidden],.finance-access[hidden] { display:none; }
.finance-content__header { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin-bottom:var(--space-lg); }
.finance-content__header p { max-width:55ch; margin-top:.5rem; color:var(--slate); line-height:1.7; }
.finance-empty { padding:clamp(2rem,6vw,4.5rem); border:1px solid var(--divider); background:var(--gold-pale); text-align:center; }
.finance-empty__icon { display:grid; width:64px; height:64px; margin:0 auto 1rem; place-items:center; border-radius:50%; color:var(--gold-light); background:var(--charcoal); font-family:var(--font-display); font-size:var(--text-xl); }
.finance-empty h2 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:500; }
.finance-empty p { max-width:48ch; margin:.5rem auto 1.25rem; color:var(--slate); line-height:1.7; }

.finance-tabs { display:flex; gap:.25rem; margin-bottom:var(--space-lg); border-bottom:1px solid var(--divider); }
.finance-tab { appearance:none; border:0; background:none; margin-bottom:-1px; padding:.85rem 1.4rem; font:inherit; font-size:var(--text-sm); font-weight:600; letter-spacing:.04em; color:var(--slate); cursor:pointer; border-bottom:2px solid transparent; transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease); }
.finance-tab:hover { color:var(--charcoal); }
.finance-tab.is-active { color:var(--gold); border-bottom-color:var(--gold); }
.finance-tab:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.finance-panel[hidden] { display:none; }
.finance-panel:focus { outline:none; }


.finance-health-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.finance-health-group + .finance-health-group { margin-top:1.15rem; }
.finance-health-group h4 { grid-column:1/-1; margin-bottom:.05rem; }
.finance-health-group--expense h4 { margin-bottom:.45rem; }
.finance-health-group--expense h4 { color:var(--gold); }
.finance-health-overall { grid-column:1/-1; margin-bottom:.4rem; }
.finance-health-overall__head { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.3rem; font-size:var(--text-sm); font-weight:600; }
.finance-health-overall__head span:last-child { color:var(--slate); font-variant-numeric:tabular-nums; }
.finance-health-overall__bar { height:.5rem; background:var(--ivory); }
.finance-health-overall .finance-health-overall__bar > span { background:#1F6E7C; }
.finance-health-overall--danger .finance-health-overall__bar > span { background:#A8321F; }
.finance-health-warning { margin-bottom:1rem; padding:.8rem 1rem; border-left:4px solid #b98936; color:#6f5424; background:#fff7e5; font-size:var(--text-sm); }
.finance-buffer-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.15rem; padding:.85rem 1rem; border:1px solid #527a5c; border-left:5px solid #527a5c; background:#edf5ef; }
.finance-buffer-card .eyebrow { display:flex; align-items:center; gap:.25rem; }
.finance-buffer-card h4 { margin-top:.2rem; font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; }
.finance-buffer-card > strong { color:#42694c; font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; font-variant-numeric:tabular-nums; }
.finance-info { position:relative; flex:0 0 auto; width:1.15rem; height:1.15rem; padding:0; border:1px solid #527a5c; border-radius:50%; color:#42694c; background:rgba(255,255,255,.65); font:700 .68rem/1 var(--font-body); vertical-align:middle; cursor:pointer; }
.finance-info > span { position:absolute; z-index:8; left:0; top:calc(100% + .5rem); width:min(17rem,72vw); padding:.75rem .85rem; border:1px solid rgba(185,137,54,.65); border-radius:.35rem; color:var(--white); background:rgba(82,67,42,.9); backdrop-filter:blur(8px); box-shadow:0 12px 28px rgba(16,26,35,.25); font:500 var(--text-sm)/1.5 var(--font-body); letter-spacing:0; text-align:left; text-transform:none; visibility:hidden; opacity:0; transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease); transform:translateY(-.25rem); }
.finance-info:hover > span,.finance-info:focus-visible > span,.finance-info.is-open > span { visibility:visible; opacity:1; }
.finance-info:hover > span,.finance-info:focus-visible > span,.finance-info.is-open > span { transform:translateY(0); }
.finance-info:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.finance-health-group h4,.finance-report-heading h4 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; }
.finance-health-row { position:relative; display:grid; gap:.5rem; padding:.8rem .9rem; border:1px solid var(--divider); border-left:5px solid #B0832E; background:var(--white); }
.finance-health-row--expense { border-color:var(--divider); border-left-color:#1F6E7C; background:var(--gold-pale); }
.finance-health-row--danger { border-left-color:#A8321F; }
.finance-health-row--goal { border-left-color:#B0832E; }
.finance-health-row__heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.finance-health-row__heading strong { font-size:var(--text-base); }
.finance-health-row__heading span { color:var(--charcoal); font-size:.8rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.finance-health-row__numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; font-variant-numeric:tabular-nums; }
.finance-health-row__numbers span { font-size:var(--text-sm); font-weight:600; }
.finance-health-row__numbers small { display:block; margin-bottom:.12rem; color:var(--slate); font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.finance-health-progress { overflow:hidden; height:.32rem; background:var(--gold-pale); border-radius:999px; }
.finance-health-progress span { display:block; height:100%; background:#527a5c; border-radius:inherit; }
/* Bullet bar: spend fills toward a fixed budget/goal marker; colours are set
   inline per status, so the only job here is layout. */
.finance-bullet { position:relative; height:1.25rem; margin-top:.15rem; }
.finance-bullet__band { position:absolute; inset:0 auto 0 0; background:var(--gold-pale); border-radius:3px; box-shadow:inset 0 0 0 1px rgba(28,28,28,.08); }
.finance-health-row--expense .finance-bullet__band { background:var(--white); }
.finance-bullet__bar { position:absolute; top:0; bottom:0; left:0; border-radius:3px; transition:width var(--duration) var(--ease); }
.finance-bullet__over { position:absolute; top:0; bottom:0; border-radius:0 3px 3px 0; }
.finance-bullet__marker { position:absolute; top:-3px; bottom:-3px; width:3px; border-radius:1px; background:var(--charcoal); }
.finance-expense-budget-input { min-height:1.7rem; padding:.2rem .35rem; border:1px solid var(--gold-light); color:var(--charcoal); background:rgba(255,255,255,.75); font:600 var(--text-sm)/1 var(--font-body); text-align:right; font-variant-numeric:tabular-nums; }
.finance-expense-budget-input:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
.finance-expense-budget-input:disabled { opacity:.55; }
.finance-health-row__assigned { display:block; }
.finance-health-row__assigned .finance-expense-budget-input { width:100%; max-width:6.5rem; margin-top:.1rem; }

.finance-monthly-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.finance-monthly-kpi { padding:1rem; border:1px solid var(--divider); background:var(--gold-pale); }
.finance-monthly-kpi small { display:block; color:var(--gold); font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.finance-monthly-kpi strong { display:block; margin-top:.35rem; font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; font-variant-numeric:tabular-nums; }
.finance-balance-chart { margin-bottom:1rem; padding:1rem; border:1px solid var(--divider); background:var(--white); }
.finance-report-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:.5rem; }
.finance-report-heading span { color:var(--slate); font-size:var(--text-xs); }
.finance-balance-chart svg { display:block; width:100%; height:auto; overflow:visible; }
.finance-chart-grid line { stroke:var(--divider); stroke-width:1; }
.finance-chart-grid text,.finance-chart-points text { fill:var(--slate); font-size:11px; }
.finance-chart-line { fill:none; stroke:var(--gold); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.finance-chart-points circle { fill:var(--white); stroke:var(--gold); stroke-width:3; }
.finance-monthly-row { border:1px solid var(--divider); background:var(--white); }
.finance-monthly-row + .finance-monthly-row { margin-top:.5rem; }
.finance-monthly-row > summary { display:grid; grid-template-columns:4rem repeat(5,minmax(0,1fr)) auto; align-items:center; gap:.7rem; padding:.8rem 1rem; cursor:pointer; list-style:none; }
.finance-monthly-row > summary::-webkit-details-marker { display:none; }
.finance-monthly-row > summary:hover { background:var(--gold-pale); }
.finance-monthly-row > summary span { text-align:right; font-size:var(--text-base); font-weight:600; font-variant-numeric:tabular-nums; }
.finance-monthly-row > summary small { display:block; margin-bottom:.12rem; color:var(--slate); font-size:.74rem; letter-spacing:.05em; text-transform:uppercase; }
.finance-monthly-row > summary .finance-monthly-row__month { text-align:left; color:var(--gold); font-family:var(--font-display); font-size:var(--text-lg); }
.finance-net { display:inline-block; margin-top:.1rem; padding:.18rem .55rem; border-radius:999px; font-weight:700; font-size:.8rem; line-height:1.35; white-space:nowrap; font-variant-numeric:tabular-nums; }
.finance-net--up { color:#1f7a44; background:#e7f3ec; }
.finance-net--down { color:#A8321F; background:#f8e7e3; }
.finance-net--even { color:var(--slate); background:var(--gold-pale); }
.finance-monthly-row[open] > summary .finance-month__chevron { transform:rotate(180deg); }
.finance-monthly-row__detail { padding:0 1rem 1rem; border-top:1px solid var(--divider); }
.finance-monthly-row__detail .finance-table { margin:1rem 0 0; }
.finance-report-note { margin-top:1rem; color:var(--slate); font-size:var(--text-xs); text-align:center; }

.finance-section__header { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin:var(--space-lg) 0 1rem; }
.finance-section__header h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; }

.finance-table { width:100%; border-collapse:collapse; margin-bottom:1rem; background:var(--white); border:1px solid var(--divider); }
.finance-table caption { padding:.75rem 1rem; text-align:left; color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; background:var(--ivory); border-bottom:1px solid var(--divider); }
.finance-table th, .finance-table td { padding:.65rem 1rem; text-align:left; border-bottom:1px solid var(--divider); font-size:var(--text-sm); }
.finance-table th { color:var(--gold); font-size:var(--text-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:var(--gold-pale); }
.finance-table td:nth-child(n+2), .finance-table th:nth-child(n+2) { text-align:right; }
.finance-table tfoot td { font-weight:700; background:var(--gold-pale); border-top:2px solid var(--gold); }
.finance-table tbody tr:last-child td { border-bottom:0; }
.finance-table td, .finance-table th { font-variant-numeric:tabular-nums; }
.finance-table thead th { position:sticky; top:var(--nav-h,72px); z-index:3; }
.finance-table tbody td:first-child { font-weight:600; color:var(--charcoal); }
.finance-table tbody tr:nth-child(even) td { background:rgba(138,106,63,.04); }
.finance-table tbody tr:hover td { background:rgba(138,106,63,.09); }

.finance-amount--negative { color:#9d372c; }
.finance-amount--positive { color:#42694c; }

.finance-grand-total { display:grid; gap:.35rem; padding:1.25rem; margin-top:1rem; border:1px solid var(--gold); background:var(--gold-pale); font-family:var(--font-display); }
.finance-grand-total__row { display:flex; justify-content:space-between; font-size:var(--text-lg); }
.finance-grand-total__row--total { padding-top:.5rem; border-top:1px solid var(--divider); font-size:var(--text-xl); }

.finance-status { display:inline-block; padding:.3rem .6rem; border:1px solid currentColor; border-radius:999px; font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.finance-status--paid { color:#42694c; background:#edf5ef; }
.finance-status--partial { color:#8A6A3F; background:var(--gold-pale); }
.finance-status--pending { color:#98483f; background:#f8eeec; }

.finance-paid-mark { color:#42694c; font-size:var(--text-xs); font-weight:600; letter-spacing:.04em; }
.finance-pay-link { display:inline-block; padding:.3rem .8rem; background:var(--gold); color:var(--white); font-size:var(--text-xs); font-weight:600; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--gold); transition:background var(--duration) var(--ease),color var(--duration) var(--ease); }
.finance-pay-link:hover,.finance-pay-link:focus-visible { background:transparent; color:var(--gold); outline:none; }
.finance-pending-hint { display:block; margin-top:.25rem; color:#98483f; font-size:.65rem; font-weight:600; }
.finance-pending-hint:empty { display:none; }

.finance-admin-form { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; align-items:end; margin-bottom:1rem; padding:1.25rem; border:1px solid var(--divider); background:var(--gold-pale); }
.finance-admin-form[hidden] { display:none; }
.finance-admin-form__actions { display:flex; gap:.6rem; grid-column:1/-1; }

.finance-table .btn { min-height:2.25rem; padding:.35rem .6rem; font-size:var(--text-xs); }
.finance-table select, .finance-table input[type="number"] { min-height:2.25rem; padding:.35rem .5rem; border:1px solid var(--divider); font:inherit; font-size:var(--text-xs); }
.finance-table .finance-col--order { width:4.5rem; padding-inline:.4rem; }
.finance-table .finance-col--editable-amount, .finance-table .finance-col--paid { width:7rem; padding-inline:.4rem; }
.finance-table .finance-col--order input { width:3.5rem; }
.finance-table .finance-col--editable-amount input, .finance-table .finance-col--paid input { width:6rem; }

/* Admin-only controls: hidden for everyone unless the finance content is flagged
   as admin. One rule guards every current and future .finance-admin-only element. */
.finance-content:not(.is-admin) .finance-admin-only { display:none !important; }

/* Collapsible payment sections (<details>) with a summary bar. */
.finance-section { margin-top:var(--space-lg); border:1px solid var(--divider); background:var(--white); box-shadow:0 5px 18px rgba(16,26,35,.05); }
.finance-collapse-bar { display:flex; align-items:center; gap:1rem; padding:1rem 1.15rem; border-left:4px solid var(--gold); background:var(--gold-pale); cursor:pointer; list-style:none; transition:background var(--duration) var(--ease),box-shadow var(--duration) var(--ease); }
.finance-collapse-bar::-webkit-details-marker { display:none; }
.finance-collapse-bar:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.finance-collapse-bar:hover { background:var(--ivory); box-shadow:inset 0 0 0 1px var(--gold-light); }
.finance-collapse-bar--compact { gap:.65rem; padding:.65rem .8rem; }
.finance-section__heading { flex:1 1 auto; min-width:0; }
.finance-section__heading h3 { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; transition:color var(--duration) var(--ease); }
.finance-collapse-bar--compact .finance-section__heading h3 { font-size:var(--text-xl); line-height:1.1; }
.finance-section__meta { display:flex; align-items:center; gap:.45rem; margin-bottom:.12rem; color:var(--gold); font-size:.72rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.finance-section__meta span + span { padding-left:.45rem; border-left:1px solid var(--gold-light); }
.finance-collapse-bar:hover .finance-section__heading h3 { color:var(--gold); }
.finance-section__summary { display:block; margin-top:.3rem; color:var(--slate); font-size:var(--text-sm); font-variant-numeric:tabular-nums; }
.finance-section__summary:empty { display:none; }
.finance-collapse-bar--compact .finance-section__summary { margin-top:.12rem; font-size:var(--text-sm); }
.finance-section__toggle-label { flex:0 0 auto; padding:.35rem .65rem; border:1px solid var(--gold); color:var(--gold); font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:var(--white); }
.finance-section__toggle-label::before { content:'View table'; }
.finance-section[open] > .finance-collapse-bar .finance-section__toggle-label::before { content:'Hide table'; }
.finance-section__chevron { flex:0 0 auto; color:var(--gold); font-size:1rem; line-height:1; transition:transform var(--duration) var(--ease); }
.finance-section[open] > .finance-collapse-bar .finance-section__chevron { transform:rotate(180deg); }
.finance-section__body { padding:1.25rem; border-top:1px solid var(--divider); }
.finance-section__toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; margin-bottom:1rem; }
.finance-section__toolbar:empty { display:none; }

.finance-ledger-search { flex:1 1 220px; min-height:2.5rem; padding:.5rem .85rem; border:1px solid var(--divider); background:var(--white); font:inherit; font-size:var(--text-sm); }
.finance-ledger-search:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
.finance-ledger-filter { flex:0 1 180px; min-height:2.5rem; padding:.5rem .7rem; border:1px solid var(--divider); background:var(--white); font:inherit; font-size:var(--text-sm); }
.finance-ledger-filter:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
.finance-ledger-empty { padding:1.25rem; color:var(--slate); font-size:var(--text-sm); background:var(--gold-pale); border:1px solid var(--divider); }
.finance-ledger-actions { white-space:nowrap; }
.finance-icon-button { width:2rem; height:2rem; margin-right:.25rem; padding:0; border:1px solid var(--divider); color:var(--charcoal); background:var(--white); font:inherit; font-size:1.15rem; line-height:1; cursor:pointer; }
.finance-icon-button:hover { color:var(--white); background:var(--charcoal); }
.finance-icon-button--danger { border-color:#b42318; color:#b42318; }
.finance-icon-button--danger:hover { border-color:#b42318; color:var(--white); background:#b42318; }
.finance-icon-button:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }

/* Per-month groups inside the ledger. */
.finance-month { margin-bottom:.6rem; border:1px solid var(--divider); background:var(--white); }
.finance-month__bar { display:flex; align-items:center; gap:.75rem; padding:.7rem 1rem; background:var(--gold-pale); cursor:pointer; list-style:none; }
.finance-month__bar::-webkit-details-marker { display:none; }
.finance-month__bar:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; }
.finance-month__name { flex:0 0 auto; font-family:var(--font-display); font-size:var(--text-lg); }
.finance-month__meta { flex:1 1 auto; color:var(--slate); font-size:var(--text-xs); font-variant-numeric:tabular-nums; }
.finance-month__chevron { flex:0 0 auto; color:var(--gold); font-size:.9rem; line-height:1; transition:transform var(--duration) var(--ease); }
.finance-month[open] > .finance-month__bar .finance-month__chevron { transform:rotate(180deg); }
.finance-month .finance-table { margin:0; border:0; border-top:1px solid var(--divider); }
.finance-month .finance-table thead th { position:static; }

@media (max-width:800px) {
  /* Keep the key columns (Family + totals/status); hide the breakdown columns */
  .finance-hide-sm, .finance-col--breakdown { display:none; }

  .finance-monthly-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  /* Phone: show Opening, the Net Change pill, and Closing (hide only Receipts &
     Payments) so the month reads Opening -> change -> Closing. */
  .finance-monthly-row > summary { grid-template-columns:auto auto minmax(0,1fr) auto auto; gap:.4rem; padding:.7rem .5rem; }
  .finance-monthly-row > summary span:nth-child(3),.finance-monthly-row > summary span:nth-child(4) { display:none; }
  .finance-monthly-row > summary span { font-size:.76rem; }
  .finance-monthly-row > summary small { font-size:.6rem; letter-spacing:0; }
  .finance-monthly-row > summary .finance-monthly-row__month { font-size:var(--text-base); }
  .finance-monthly-row > summary .finance-monthly-row__net { text-align:center; }
  .finance-net { font-size:.78rem; padding:.16rem .45rem; }
  .finance-health-group { grid-template-columns:1fr; }
  .finance-health-row__numbers { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
  .finance-expense-budget-input { width:100%; min-width:0; padding:.2rem .1rem; font-size:.72rem; }
  .finance-buffer-card { align-items:center; flex-direction:row; gap:.5rem; }
  .finance-buffer-card > strong { flex:0 0 auto; white-space:nowrap; font-size:var(--text-lg); }
  .finance-tabs { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .finance-tab { white-space:nowrap; padding-inline:1rem; }

  /* Trim the 6rem section padding under the hero (matches the member dashboard)
     and halve the stacked 4rem section gaps so the tracker is reachable with less
     scrolling, without feeling cramped. */
  .finance-main.section { padding-block:var(--space-md); }
  .finance-content__header,
  .finance-tabs { margin-bottom:var(--space-md); }
  .finance-section__header,
  .finance-section { margin-top:var(--space-md); }
  /* Reclaim vertical space on phones: drop the section description, the
     redundant "View table" pill (the chevron already signals state), and
     tighten section padding so members reach the numbers with less scrolling. */
  .finance-content__header p { display:none; }
  .finance-collapse-bar--compact .finance-section__toggle-label { display:none; }
  .finance-section__body { padding:1rem .85rem; }

  .member-corner-nav { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .member-corner-nav:has(.member-corner-nav__admin:not([hidden])) { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .member-corner-nav a { min-height:auto; border-right:1px solid var(--divider); border-bottom:0; }
  .member-corner-nav a:last-child { border-right:0; }

  /* In-bar tabs: one full-width strip below the brand row, items spread edge to
     edge so all of them (incl. Admin) stay on a single line without scrolling. */
  .nav__inner:has(.member-corner-nav:not([hidden])) { flex-wrap:wrap; height:auto; row-gap:.35rem; padding-block:.4rem; padding-inline:clamp(1rem,4vw,2rem); }
  .nav .member-corner-nav { order:3; flex-basis:100%; justify-content:space-between; gap:.5rem; margin:0; padding-top:.4rem; border-top:1px solid var(--divider); }
  .nav .member-corner-nav strong { font-size:var(--text-xs); letter-spacing:.04em; }
  body:has(.nav .member-corner-nav:not([hidden])) .members-hero { padding-top:104px; }
  .admin-dashboard { grid-template-columns:1fr; }
  .admin-tools { min-height:auto; }
  .member-login__card,.newsletter-feature,.celebrations-grid { grid-template-columns:1fr; }
  .newsletter-feature__actions { justify-items:start; min-width:0; }
  .newsletter-feature .btn { justify-self:start; }
  .newsletter-archive__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:560px) {
  .members-hero .page-hero__content { padding-block:1.15rem 1.5rem; }
  .members-hero .page-hero__title { margin-top:.3rem; margin-bottom:.3rem; }
  .member-dashboard.section { padding-block:2rem; }
  .member-dashboard__header { margin-bottom:.5rem; }
  .member-dashboard__header .eyebrow { margin-bottom:.45rem; }
  .member-dashboard__header .section-subtitle { margin-top:.25rem; }
  .member-status--dashboard { min-height:.5rem; margin:.35rem 0; }
  .member-corner-nav { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:1rem; box-shadow:0 8px 20px rgba(16,26,35,.05); }
  .member-corner-nav:has(.member-corner-nav__admin:not([hidden])) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .members-hero .member-corner-nav { margin-top:1rem; }
  .member-corner-nav a { gap:.15rem; padding:.75rem .45rem; border-bottom:1px solid var(--divider); text-align:center; }
  .member-corner-nav a:nth-child(2n) { border-right:0; }
  .member-corner-nav a:nth-last-child(-n+2) { border-bottom:0; }
  .member-corner-nav a.member-corner-nav__admin:not([hidden]) { grid-column:1/-1; border-right:0; border-bottom:0; }
  .member-corner-nav span { font-size:.6rem; }
  .member-corner-nav strong { font-size:var(--text-lg); }
  .member-corner-nav small { display:none; }
  .admin-dashboard { gap:1rem; margin-bottom:1.5rem; }
  .admin-tool-chooser__options { grid-template-columns:1fr; gap:.65rem; }
  .admin-tool-choice { min-height:auto; padding:1rem; }
  .admin-tools,.newsletter-admin { padding:1.25rem; }
  .family-admin { padding:1.25rem; }
  .family-admin__header { flex-direction:column; }
  .family-admin__header .btn { width:100%; justify-content:center; }
  .family-admin__form { grid-template-columns:1fr; }
  .family-admin__form-actions { grid-column:auto; }
  .family-admin__item { grid-template-columns:42px minmax(0,1fr) auto; gap:.65rem; }
  .family-admin__status { grid-column:2; justify-self:start; }
  .family-admin__count { grid-column:3; grid-row:1/3; }
  .family-admin__actions { grid-column:1/-1; }
  .family-admin__actions { justify-content:flex-end; }
  .family-admin__inline-form { grid-template-columns:1fr; }
  .family-admin__inline-actions { justify-content:flex-end; }
  .admin-tools { align-items:flex-start; flex-direction:column; }
  .admin-tools .btn { width:100%; justify-content:center; }
  .newsletter-admin__form { grid-template-columns:1fr; }
  .newsletter-admin__wide { grid-column:auto; }
  .newsletter-admin__item { align-items:flex-start; flex-direction:column; }
  .newsletter-feature { gap:1rem; padding:1.5rem; }
  .newsletter-feature h3 { font-size:var(--text-2xl); }
  .celebrations-grid { gap:1rem; margin-top:1rem; }
  .celebration-panel__header { align-items:flex-start; gap:.75rem; padding:1rem; }
  .celebration-panel__logo { width:44px; height:52px; }
  .celebration-item { grid-template-columns:72px 1fr; padding:1rem; }
  .member-events { margin-block:1.25rem; }
  .member-events__header { gap:.75rem; padding:1rem; }
  .member-events__list { grid-template-columns:1fr; grid-auto-rows:auto; align-items:start; gap:1rem; padding-top:1rem; }
  .member-event { height:auto; padding:1rem; }
  .member-rsvp-section { margin-top:1rem; }
  .member-event__heading .tag,.member-rsvp-toggle { min-width:76px; min-height:34px; padding:.5rem .7rem; font-size:.7rem; }
  .member-rsvp { grid-template-columns:1fr; }
  .member-rsvp-response { grid-template-columns:minmax(0,1fr) 7.5rem; }
  .newsletter-archive { margin-top:2rem; }
  .newsletter-archive__header { margin-bottom:1rem; }
  .newsletter-archive__grid { grid-template-columns:1fr; }
  .finance-content__header { align-items:start; flex-direction:column; }
  .finance-table { font-size:var(--text-xs); }
  .finance-table th, .finance-table td { padding:.5rem .6rem; }
  .finance-admin-form { grid-template-columns:1fr; }
  .finance-section__header { flex-direction:column; align-items:flex-start; gap:.5rem; }
}

@page { size:Letter portrait; margin:.55in; }
@media print {
  body.printing-celebrations > :not(.celebration-report) { display:none !important; }
  body.printing-celebrations .celebration-report { display:block; color:#1c1c1c; font-family:Arial,sans-serif; }
  body.printing-celebrations,.celebration-report { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .celebration-report__header { display:flex; align-items:center; gap:.25in; padding-bottom:.22in; border-bottom:2px solid #8a6a3f; }
  .celebration-report__header img { width:.55in; height:.7in; object-fit:contain; }
  .celebration-report__header p { color:#8a6a3f; font-size:9pt; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
  .celebration-report__header h1 { margin-top:.04in; font-family:Georgia,serif; font-size:24pt; font-weight:400; }
  .celebration-report__section { margin-top:.22in; break-inside:avoid; }
  .celebration-report__section h2 { padding:.08in .12in; color:#fff; background:#1c1c1c; font-family:Georgia,serif; font-size:15pt; font-weight:400; }
  .celebration-report__list { display:grid; grid-template-columns:1fr 1fr; border:1px solid #ddd5c5; border-top:0; }
  .celebration-report__list > div { display:grid; grid-template-columns:.85in 1fr; gap:.08in; padding:.08in .12in; border-bottom:1px solid #e8dfc8; font-size:10pt; }
  .celebration-report__list > div:nth-child(odd) { border-right:1px solid #e8dfc8; }
  .celebration-report__list strong { color:#8a6a3f; text-transform:uppercase; }
  .celebration-report__list > p { grid-column:1/-1; padding:.12in; color:#666; font-size:10pt; }
}
