* {
  box-sizing: border-box;
}

html {
  font-size: 16px;
}

@media screen and (max-device-width: 599px) {
  html.mobile {
    font-size: 32px;
  }
}

@media screen and (min-device-width: 600px) {
  html.mobile {
    font-size: 18px;
  }
}

body {
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  font-family:
    system-ui,
    -apple-system,
    'Open Sans',
    'Helvetica Neue',
    sans-serif;
  text-align: center;
  background-color: #dedede;
}

main {
  height: 100%;
}

a {
  text-decoration: none;
}

a:hover,
a:active {
  text-decoration: underline;
  text-decoration-color: gray;
  text-decoration-thickness: 1px;
}

nav,
header {
  min-width: 401px;
  width: 100dvw;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #3f3f46;
  color: white;
}

nav {
  padding: 0.75rem 0.5rem 0.625rem 0.5rem;
}

header {
  border-top: 1px solid #3f3f46;
  padding: 0 0.75rem 0.5rem 0.75rem;
  border-bottom: 1px solid gray;
}

nav a,
nav a:visited {
  color: inherit;
}

nav a.current-route {
  color: #fef08a;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.nav-content {
  width: 100dvw;
  max-width: 30rem;
  min-width: 401px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 1rem;
}

iframe {
  min-width: 401px;
  border: 0;
  pointer-events: none;
}

iframe.single-year {
  width: 100dvw;
  max-width: 500px;
  height: 350rem;
}

iframe.single-year.xl {
  height: 600rem;
}

@media screen and (max-device-width: 500px) {
  iframe.single-year {
    max-width: 100dvw;
  }
}

iframe.multi-year {
  margin: 0 auto;
  width: 960px;
  max-width: 100dvw;
  height: 920px;
}
