:root[data-theme="dark"] { color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }

html, body { height: 100%; }

body {
  min-height: 100vh;
  min-height: 100dvh;

  font-family: var(--system-fonts);
  background: var(--page-bg);
  color: var(--page-text);
  overflow-x: hidden;

  /* Keeps content below fixed top + main navs */
  padding-top: calc(var(--top-nav-height) + var(--main-nav-height));
}

.base_body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 0;
}

.base_body > main {
  min-width: 0;
}

.base_body.no-sidebar {
  grid-template-columns: minmax(0, 1fr);
}

body.no-top-navbar {
  padding-top: var(--main-nav-height);
}