*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --fore: #506e8d;
  --back: #ffffff;
  --theme: #57a0e1;
  --shade: rgba(0, 0, 0, 0.33);
  --shadow: 4pt 2pt 8pt var(--shade);
}

body {
  margin: 0;
  color: var(--fore);
  background-color: var(--back);
  font-family: "Noto Sans", "Noto Sans CJK TW", "Noto Sans TW", sans-serif;
  /* font-size: large; */
}

a:any-link {
  color: var(--theme);
}

h1 {
  text-align: center;
}
h2 {
  border-bottom: 1px solid var(--shade);
}

main {
  width: 29.7cm;
  max-width: 100%;
  margin: 2em auto;
  padding: 8pt;
  line-height: 1.8;
}

nav {
  margin: 0;
  padding: 0 16pt;
  box-shadow: 0 0 8pt var(--shade);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: sticky;
  top: 1em;
  text-align: center;
  background-color: var(--back);
}
nav a {
  display: inline-block;
  text-decoration: none;
  font-size: large;
  font-weight: bold;
  line-height: 3.33;
  height: 44pt;
  padding: 0 12pt;
  border-bottom: 2px solid transparent;
}
nav a:hover {
  border-bottom: 2px solid var(--theme);
}

.logo-link {
  display: block;
  padding: 8pt;
}
.logo {
  display: inline-block;
}

dt {
  display: inline-block;
  width: fit-content;
}
dt::after {
  content: ":";
}
dd {
  display: inline-block;
  width: fit-content;
  margin: 0 0 0 4pt;
}

table {
  border-collapse: collapse;
  /* margin: 0 auto; */
}
tr {
  border-bottom: 1px solid var(--shade);
}
thead, tbody tr:nth-last-child(1) {
  border-bottom: 2px solid var(--fore);
}
td {
  padding: 2pt 8pt;
}

@media (max-width: 520px) {
  nav {
    flex-direction: column;
    justify-content: center;
  }
}

/*
@media (prefers-color-scheme: dark) {
  :root {
    --fore: #6991b9;
    --back: #101010;
    --theme: #57a0e1;
    --shade: rgba(255, 255, 255, 0.15);
  }

  img {
    filter: brightness(0.8);
  }
}
*/
