/* Minimal base. Everything else is a token or a component. */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--nx-surface); color: var(--nx-text); font: var(--nx-body); -webkit-font-smoothing: antialiased; }
a { color: var(--nx-signal); text-decoration: none; }
a:hover { color: var(--nx-text); text-decoration: underline; text-underline-offset: 3px; }
[data-theme="dark"] a:hover { color: var(--nx-paper); }
:focus-visible { outline: var(--nx-focus-ring); outline-offset: 2px; }
::selection { background: var(--nx-signal); color: var(--nx-white); }

/* Data is always mono and tabular. */
.nx-num { font: var(--nx-data-figure); font-variant-numeric: tabular-nums; }
.nx-label { font: var(--nx-data-label); letter-spacing: var(--nx-track-label); text-transform: uppercase; color: var(--nx-text-muted); }
.nx-measure { max-width: var(--nx-measure); }
