/* Family Council — shared tokens. Matches the dashboard exactly. */
:root{
  --ground:#E7E8E2; --paper:#FBFBF8; --ink:#1B2129; --ink-soft:#4A5158;
  --muted:#767E75; --rule:#C9CBC2; --green:#2F5D50; --oxblood:#8C2F39;
  --ochre:#B07D2B; --sand:#D8D9D0;
  --display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{font-size:17px}                 /* larger base: this audience is 50+ */
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);
  line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:720px;margin:0 auto;padding:0 20px 120px}
.wide{max-width:1180px}

.eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:0 0 12px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,7vw,2.9rem);line-height:1.02;
  letter-spacing:-.02em;margin:0 0 10px}
h2{font-family:var(--display);font-weight:400;font-size:1.35rem;margin:0 0 8px;letter-spacing:-.01em}
.dek{color:var(--ink-soft);margin:0 0 4px;max-width:52ch}
.mast{padding:34px 0 22px;border-bottom:2px solid var(--ink);margin-bottom:22px}

.card{background:#fff;border:1px solid rgba(26,34,56,.06);border-radius:16px;padding:20px;
  margin-bottom:14px}
.kicker{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px}

/* controls — deliberately large tap targets */
button,.btn{font-family:var(--body);font-size:1rem;padding:14px 18px;border-radius:12px;
  border:1px solid var(--ink);background:var(--ink);color:var(--ground);cursor:pointer;
  min-height:50px;line-height:1.2}
button.ghost{background:transparent;color:var(--ink)}
button.quiet{background:transparent;color:var(--ink-soft);border-color:var(--rule)}
button.danger{background:transparent;color:var(--oxblood);border-color:var(--oxblood)}
button:disabled{opacity:.45;cursor:default}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--green);outline-offset:2px}
button.chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
  padding:9px 13px;min-height:0;background:transparent;color:var(--ink-soft);border-color:var(--rule)}
button.chip[aria-pressed=true]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}

label{display:block;font-size:.92rem;font-weight:600;margin:18px 0 6px}
.hint{font-weight:400;color:var(--muted);font-size:.82rem;display:block;margin-top:2px}
input[type=text],input[type=date],input[type=email],select,textarea{
  width:100%;font-family:var(--body);font-size:1rem;padding:13px;border:1px solid var(--rule);
  border-radius:12px;background:#fff;color:var(--ink);min-height:50px}
textarea{min-height:130px;resize:vertical;line-height:1.45}
.radio{display:flex;gap:11px;align-items:flex-start;padding:13px;border:1px solid var(--rule);
  border-radius:12px;background:#fff;margin-bottom:8px;cursor:pointer}
.radio input{margin-top:3px;width:19px;height:19px;flex:0 0 auto}
.radio span{font-size:.92rem}
.radio small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}

.tag{display:inline-block;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;
  text-transform:uppercase;padding:2px 6px;border:1px solid var(--rule);border-radius:2px;
  margin:0 5px 5px 0;color:var(--muted)}
.tag.saf{color:var(--oxblood);border-color:var(--oxblood)}
.tag.res{color:var(--green);border-color:var(--green)}
.tag.dup{color:var(--ochre);border-color:var(--ochre)}

.alert{border-left:3px solid var(--oxblood);background:var(--paper);padding:16px 18px;
  margin-bottom:18px;font-size:.92rem}
.alert b{display:block;font-size:.95rem;margin-bottom:4px}
.alert a{color:var(--oxblood)}
.ok{border-left-color:var(--green)}
.ok a{color:var(--green)}

.mono{font-family:var(--mono);font-size:.76rem;color:var(--muted)}
.rule{height:1px;background:var(--rule);border:0;margin:26px 0}
.center{text-align:center}
.spinner{color:var(--muted);font-size:.9rem;padding:26px 0;text-align:center}
[hidden]{display:none !important}

/* ---------- shared top nav ---------- */
.fcnav{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  padding:14px 0 18px;margin-bottom:6px;border-bottom:1px solid rgba(26,34,56,.08)}
.fcnav-main{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}
.fcnav a{font-family:var(--body);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;
  font-weight:600;color:var(--ink-soft);text-decoration:none;padding:8px 11px;border-radius:9px;
  transition:background .12s ease,color .12s ease}
.fcnav a:hover{background:rgba(26,34,56,.05);color:var(--ink)}
.fcnav a.here{background:var(--ink);color:#fff}
.fcnav a.here:hover{background:var(--ink);color:#fff}
.fcnav .spacer{flex:1}
.fcnav a.home{font-size:.9rem;padding-left:0}
/* Officers: the one admin link — set apart, pushed to the far right (holds even
   when it wraps to its own line), in its own colour. */
.fcnav a.officers{margin-left:auto;flex:0 0 auto;border:1px solid var(--green);color:var(--green)}
.fcnav a.officers:hover{background:var(--green);color:#fff}

/* ---------- thin sticky logo chrome (z-index below modals) ---------- */
:root{
  --fc-logo-h:51px;
  --fc-sticky-pad-y:8px;
  --fc-sticky-offset:calc(var(--fc-logo-h) + (var(--fc-sticky-pad-y) * 2) + 1px);
}
html{scroll-padding-top:var(--fc-sticky-offset)}
.fc-sticky{
  position:sticky;top:0;z-index:10;
  background:var(--paper);
  border-bottom:1px solid rgba(27,33,41,.08);
  box-shadow:0 4px 16px rgba(27,33,41,.07);
}
.fc-sticky-inner{
  max-width:1180px;margin:0 auto;
  padding:var(--fc-sticky-pad-y) 20px;
  min-height:var(--fc-logo-h);
  box-sizing:content-box;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.fc-sticky-inner.wide{max-width:1400px;padding-left:24px;padding-right:24px}
.fc-sticky-logo{display:block;line-height:0;flex:0 0 auto;text-decoration:none}
.fc-sticky-logo img{height:var(--fc-logo-h);width:auto;max-width:min(300px,58vw);display:block}
@media (max-width:600px){
  :root{--fc-logo-h:40px;--fc-sticky-pad-y:6px}
  .fc-sticky-inner{padding-left:14px;padding-right:14px}
  .fc-sticky-logo img{max-width:min(220px,48vw)}
}
