/* Lancashire Knights Templar - Membership tool
   Brand: Templar red #a51c1c, serif display, square corners,
   wide uppercase letter-spacing on labels. Self-contained, no web fonts
   (keeps the CSP strict); falls back to a serif stack that matches the
   main site's Cormorant where that font is available on the device. */

:root{
  --c-red:#a51c1c;
  --c-red-dark:#7c1414;
  --c-ink:#1c1a17;
  --c-ink-soft:#6b655c;
  --c-cream:#f5efe3;
  --c-paper:#ffffff;
  --c-line:#e2dac9;
  --c-green:#2e6b34;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--c-cream);
  color:var(--c-ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
}

/* ---- Top bar ---- */
.topbar{background:var(--c-ink);color:var(--c-cream)}
.topbar__inner{
  max-width:1000px;margin:0 auto;padding:0 1.25rem;height:60px;
  display:flex;align-items:center;justify-content:space-between;
}
.topbar__brand{display:flex;align-items:center;gap:.6rem;color:var(--c-cream);text-decoration:none}
.topbar__brand-mark{color:var(--c-red);font-size:1.3rem;line-height:1}
.topbar__brand-text{
  font-family:var(--serif);font-size:1.25rem;letter-spacing:.04em;
}
.topbar__nav{display:flex;align-items:center;gap:1rem;font-size:.85rem}
.topbar__user{color:rgba(245,239,227,.75)}
.topbar__link{
  color:var(--c-cream);text-decoration:none;text-transform:uppercase;
  letter-spacing:.18em;font-size:.72rem;border-bottom:1px solid var(--c-red);padding-bottom:2px;
}
.topbar__link:hover{color:#fff}

/* ---- Sensitive banner ---- */
.sensitive-banner{
  background:var(--c-red);color:#fff;text-align:center;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;
  padding:.4rem 1rem;
}

/* ---- Layout ---- */
.wrap{max-width:1000px;margin:0 auto;padding:1.75rem 1.25rem 3rem}
.page-head{margin:0 0 1.25rem}
.page-head__title{font-family:var(--serif);font-size:2rem;margin:0 0 .15rem;color:var(--c-ink)}
.muted{color:var(--c-ink-soft)}
.small{font-size:.82rem}
.crumb{margin:0 0 1rem}
.crumb a{color:var(--c-red);text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* ---- Cards / panels ---- */
.card,.panel{
  background:var(--c-paper);border:1px solid var(--c-line);
  padding:1.5rem;margin:0 0 1.25rem;
}
.card--narrow{max-width:420px;margin:2.5rem auto}
.card__title,.panel__title{
  font-family:var(--serif);font-size:1.35rem;margin:0 0 .35rem;color:var(--c-ink);
}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media (max-width:760px){.cols{grid-template-columns:1fr}}

/* ---- Forms ---- */
.field{display:block;margin:0 0 1rem}
.field__label{
  display:block;text-transform:uppercase;letter-spacing:.22em;
  font-size:.7rem;color:var(--c-ink-soft);margin:0 0 .35rem;
}
.field__hint{display:block;font-size:.8rem;color:var(--c-ink-soft);margin:0 0 .4rem}
.field__input{
  width:100%;padding:.6rem .7rem;border:1px solid var(--c-line);
  background:#fff;color:var(--c-ink);font-size:.95rem;border-radius:0;
  font-family:var(--sans);
}
.field__input:focus{outline:2px solid var(--c-red);outline-offset:0;border-color:var(--c-red)}
.field__input--tall{min-height:14rem;line-height:1.55}
textarea.field__input{resize:vertical}

/* ---- Buttons (square corners) ---- */
.btn{
  display:inline-block;border:1px solid var(--c-ink);background:var(--c-ink);color:#fff;
  padding:.55rem 1.1rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;
  text-decoration:none;cursor:pointer;border-radius:0;line-height:1.2;
}
.btn:hover{opacity:.92}
.btn--primary{background:var(--c-red);border-color:var(--c-red)}
.btn--primary:hover{background:var(--c-red-dark);border-color:var(--c-red-dark);opacity:1}
.btn--dark{background:var(--c-ink);border-color:var(--c-ink)}
.btn--ghost{background:transparent;color:var(--c-ink)}
.btn--sm{padding:.35rem .7rem;font-size:.68rem}
.btn--block{width:100%;text-align:center;margin-top:.5rem}

/* ---- Search row ---- */
.search{display:flex;gap:.6rem;margin:0 0 1.25rem;align-items:stretch;flex-wrap:wrap}
.search .field__input{flex:1;min-width:200px}

/* ---- Table ---- */
.grid{width:100%;border-collapse:collapse;background:var(--c-paper);border:1px solid var(--c-line)}
.grid th,.grid td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--c-line);font-size:.9rem}
.grid th{
  text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--c-ink-soft);
  background:var(--c-cream);font-weight:600;
}
.grid tr:last-child td{border-bottom:none}
.grid__action{text-align:right;white-space:nowrap}

/* ---- Tags ---- */
.tag{
  display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;
  padding:.15rem .5rem;border:1px solid var(--c-line);color:var(--c-ink-soft);background:var(--c-cream);
}
.tag--green{color:#fff;background:var(--c-green);border-color:var(--c-green)}

/* ---- Facts list ---- */
.facts{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}
.facts dt{text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:var(--c-ink-soft);padding-top:.15rem}
.facts dd{margin:0;font-size:.95rem}

/* ---- Activity ---- */
.activity{list-style:none;margin:0;padding:0}
.activity li{padding:.4rem 0;border-bottom:1px solid var(--c-line);font-size:.85rem;display:flex;gap:.6rem;flex-wrap:wrap}
.activity li:last-child{border-bottom:none}
.activity__when{color:var(--c-ink-soft);min-width:7.5rem}
.activity__who{font-weight:600}
.activity__what{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--c-red);align-self:center}

/* ---- Flash ---- */
.flash{padding:.7rem .9rem;margin:0 0 1rem;border:1px solid var(--c-line);font-size:.9rem;border-left-width:4px}
.flash--success{border-left-color:var(--c-green);background:#f1f7f1}
.flash--error{border-left-color:var(--c-red);background:#fbf0f0}

/* ---- Footer ---- */
.sitefoot{border-top:1px solid var(--c-line);margin-top:2rem}
.sitefoot__inner{
  max-width:1000px;margin:0 auto;padding:1.25rem;color:var(--c-ink-soft);
  font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;text-align:center;
}
