/* Reset + base */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; border: 0 solid var(--border); }
html, body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 640px) { html, body { font-size: 15px; } }

a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; cursor: pointer; }
input { font: inherit; color: inherit; }
img, svg { display: block; max-width: 100%; }
ul { list-style: none; }

/* Utility */
.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;
}
.hidden { display: none !important; }
.font-display { font-family: var(--font-display); }
.text-primary { color: var(--primary); }
.text-primary-dark { color: var(--primary-dark); }
.text-fg-muted { color: var(--fg-muted); }
.text-destructive { color: var(--destructive); }

/* Page shell */
.page {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
