/* FitBuddy base reset. Minimal, sets the canvas, type defaults and link colours. */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg-canvas);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--fs-body-md);
  line-height: var(--lh-body-md);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  margin: 0;
  text-wrap: balance;
}

a {
  color: var(--text-link);
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color var(--t-hover);
}
a:hover { color: var(--text-link-hover); text-decoration: underline; }
a:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--r-xs); }

button, input, select, textarea { font: inherit; color: inherit; }
img, video, svg { display: block; max-width: 100%; }

::selection { background: color-mix(in oklab, var(--accent) 34%, transparent); }

:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* Utility: numbers always tabular */
.fb-tnum { font-variant-numeric: tabular-nums; }
/* Utility: visually hidden but announced */
.fb-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;
}
