html, body {
  background: var(--app-bg);
}

:root {
  --app-fg-header: #fafafa;
  --app-bg-header: var(--c-teal);

  --app-fg-config: var(--c-blue);
  --app-fg-config-header: #fafafa;
  --app-bg-config-header: var(--c-teal);

  @media (prefers-color-scheme: dark) {
    /* --app-fg-header: var(--c-blue); */
    --app-bg-header: var(--c-blue);
    /* --app-bg-header: #e0e0e0; */

    --app-bg-config-header: var(--c-blue);

    /*
    --app-bg-config-header: #e0e0e0;
    --app-fg-config-header: var(--c-blue);
     */
  }
}

body {
  --header-height: 27px;
  --grid-hgap: 3px;
  --padding: 4px;
  --center-space: 100dvh;
  /* header + gridgap + padding*2 = 27 + 3 + 8 */
  --center-space-diff: 38px;

  margin: 0;
  color: var(--fg-white);
  font-family: var(--fontfamily-default);
  height: 100%;
  max-height: 100dvh;
  padding: var(--padding);

  display: grid;
  grid-gap: var(--grid-hgap) 0;
  grid-template-rows:
    var(--header-height)
    calc(var(--center-space) - var(--center-space-diff));
}

.navigation, .config {
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr;
}

.config, .navigation {
  height: 100%;
}

.loading {
  height: 100vh;

  @media (width >= 600px) {
    grid-template-columns: 300px 1fr 0px;
  }
  @media (width < 600px) {
    grid-template-columns: 0px 1fr 0px;
  }
}


.loading,
.layout-wide {
  width: 100%;

  .header {
    grid-column: span 3;
  }

  .main-content {
    min-height: 0;
  }

  .navigation, .config {
    overflow-y: auto;
  }
}

.layout-narrow {
  .main-content {
    width: 100%;
    order: 1;
  }

  .navigation, .config {
    display: none;
    overflow-y: auto;
    order: 2;
    border-top: var(--border-solid-grey);
    border-top-width: 1px;
    height: 50dvh;
    position: absolute;
    bottom: 4px;
    left: 4px;
    right: 4px;
  }
}

