/* ============================================================
   footer.css - shared site footer (.ftr-*). Born part 53b.
   ============================================================ */
/* sticky footer: only pages that actually contain .ftr become a flex column;
   fixed/absolute modals and overlays are unaffected by body flex */
body:has(.ftr) { min-height: 100vh; display: flex; flex-direction: column; }
/* flex items shrink by default; elements with overflow (scrollable tab bars)
   can collapse to zero height on long pages. keep every direct child at its
   natural size - only the footer is allowed to be pushed by auto margin. */
body:has(.ftr) > *:not(.ftr) { flex-shrink: 0; }
.ftr { margin-top: auto; }

.ftr {
  display: flex; align-items: center; justify-content: center; gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid var(--color-border);
  color: var(--color-ink-muted); font-size: var(--text-sm);
  background: var(--color-bg);
}
.ftr a { color: inherit; text-decoration: none; }
.ftr a:hover { color: var(--color-primary); text-decoration: underline; }
.ftr__sep { opacity: .5; }
