/* Base: reset, typography, focus, utilities. Values from tokens.css only. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--tier2) + 16px); }
body {
  margin: 0;
  background: var(--surface-0);
  color: var(--text-1);
  font: 400 var(--fs-body)/var(--lh-base) var(--font-body);
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4 { text-wrap: balance; margin: 0; font-weight: 600; }
p { text-wrap: pretty; margin: 0; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
table { border-collapse: separate; border-spacing: 0; }
[hidden][hidden] { display: none !important; }

:focus, :focus-visible { outline: 2px solid var(--color-brand); outline-offset: 3px; }
/* mouse users: no ring after a click (set by app.js on pointerdown); keyboard and programmatic focus keep it */
.is-pointer :focus:not(:focus-visible) { outline: none; }

.num { font-variant-numeric: tabular-nums; }
.visually-hidden, .sr-only {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
.skip-link {
  position: absolute; left: -999px; top: 8px; z-index: var(--z-skip);
  background: var(--color-brand); color: var(--color-ink);
  padding: .6rem 1rem; border-radius: var(--r-sm); font-weight: 600; text-decoration: none;
}
.skip-link:focus { left: 1rem; }

/* Icons: Phosphor, inline. The duotone layer carries style="fill:var(--icon-duo)". */
.icon { width: 1.2em; height: 1.2em; flex: none; fill: currentColor; }
.icon--missing { display: inline-block; width: 1em; height: 1em; background: var(--color-error); border-radius: 3px; }

/* "To be completed" marker for unknown legal data (TZ §8) */
.todo {
  display: inline-block; max-width: 100%; padding: .05em .4em; border-radius: 6px;
  background: var(--placeholder); color: var(--text-1);
  font-family: var(--font-body); font-size: .92em; font-weight: 600;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
