@media (prefers-color-scheme: light) {
  body {
    background-color: #ffffff;
    color: #212529;
  }
  span.reserved {
    color: #606060;
  }
  a, a:visited {
    color: #0097c1;
  }
  a:hover, a.reserved:hover {
    color: #00556c;
  }
  a.reserved, a.reserved:visited {
    color: #606060;
  }
  #index-of-zips table tr:hover {
    background-color: #eff1f2;
  }
  #drafts-without-assigned-zip-numbers table tr:hover {
    background-color: #eff1f2;
  }
  aside.note {
    background-color: #a0a0ff;
    color: #111519;
  }
  div.note + p {
    background-color: #a0a0ff;
    color: #111519;
  }
  aside.note::before {
    background-color: #5858ff;
    color: #000000;
  }
  div.note::after {
    background-color: #5858ff;
    color: #000000;
  }
  aside.warning {
    background-color: #ffb090;
    color: #111519;
    font-weight: 500;
  }
  div.warning + p {
    background-color: #ffb090;
    color: #111519;
    font-weight: 500;
  }
  aside.warning::before {
    background-color: #ff7050;
    font-weight: 600;
  }
  div.warning::after {
    background-color: #ff7050;
    font-weight: 600;
  }
  aside > p > a, a:visited {
    color: #0077a1;
  }
  div.note + p > a, a:visited {
    color: #0077a1;
  }
  div.warning + p > a, a:visited {
    color: #0077a1;
  }
  aside > p > a:hover {
    color: #00455c;
  }
  div.note + p > a:hover {
    color: #00455c;
  }
  div.warning + p > a:hover {
    color: #00455c;
  }
  blockquote {
    background-color: #e0e0e0;
  }
  code.mermaid {
    background-color: #ffffff;
    color: #ffffff;
  }
  code.mermaid > svg {
    background-color: #f0f0f0;
    border: 1.5em solid #f0f0f0;
  }
}

@media (prefers-color-scheme: dark) {
  span.lightmode {
    display: none;
  }
  span.darkmode {
    display: inline !important;
  }

  body {
    background-color: #111111;
    color: #eeeeee;
  }
  img {
    background-color: #bbbbbb;
  }
  img.section-anchor {
    background-color: #111111;
  }
  span.reserved {
    color: #a0a0a0;
  }
  a, a:visited {
    color: #00b7e1;
  }
  a:hover, a.reserved:hover {
    color: #00e2f5;
  }
  a.reserved, a.reserved:visited {
    color: #a0a0a0;
  }
  #index-of-zips table tr:hover {
    background-color: #303030;
  }
  #drafts-without-assigned-zip-numbers table tr:hover {
    background-color: #303030;
  }
  aside.note {
    background-color: #6060e0;
    color: #ffffff;
  }
  div.note + p {
    background-color: #6060e0;
    color: #ffffff;
  }
  aside.note::before {
    background-color: #3030e0;
  }
  div.note::after {
    background-color: #3030e0;
  }
  aside.warning {
    background-color: #e08060;
    color: #ffffff;
    font-weight: 700;
  }
  div.warning + p {
    background-color: #e08060;
    color: #ffffff;
    font-weight: 700;
  }
  aside.warning::before {
    background-color: #e05030;
    font-weight: 800;
  }
  div.warning::after {
    background-color: #e05030;
    font-weight: 800;
  }
  aside > p > a, a:visited {
    color: #50e7f4;
  }
  div.note + p > a, a:visited {
    color: #50e7f4;
  }
  div.warning + p > a, a:visited {
    color: #50e7f4;
  }
  aside > p > a:hover {
    color: #90ffff;
  }
  div.note + p > a:hover {
    color: #90ffff;
  }
  div.warning + p > a:hover {
    color: #90ffff;
  }
  blockquote {
    background-color: #202020;
  }
  code.mermaid {
    background-color: #111111;
    color: #111111;
  }
  code.mermaid > svg {
    background-color: #d0d0d0;
    border: 1.5em solid #d0d0d0;
  }
}

code.mermaid {
  display: block;
  width: calc( 100% - 4em - 0.5rem );
}

code.mermaid > svg {
  overflow-x: visible !important;
}

pre:has(.mermaid) {
  border: none !important;
  margin: 0 !important;
  padding-left: 1rem !important;
  padding-bottom: 1.5rem !important;
}

aside {
  display: flex;
  flex-direction: column;
  gap: 1em;
  padding-top: 0.15rem;
  padding-left: 0.15rem;
  padding-right: 0.15rem;
  padding-bottom: 0;
  margin-bottom: 1.5rem;
}
div.note + p {
  padding-top: 4.4rem;
  padding-left: 0.15rem;
  padding-right: 0.15rem;
  padding-bottom: 1.4rem;
  margin-top: -2.25rem;
  margin-bottom: 1.5rem;
}
div.warning + p {
  padding-top: 4.4rem;
  padding-left: 0.15rem;
  padding-right: 0.15rem;
  padding-bottom: 1.4rem;
  margin-top: -2.25rem;
  margin-bottom: 1.5rem;
}
aside.note::before {
  font-size: 130%;
  padding-top: 0.2rem;
  padding-left: 1rem;
  padding-right: 0.2rem;
  padding-bottom: 0.3rem;
  margin-bottom: 1.2rem;
  content: "Note";
}
div.note::after {
  width: 96.7%;
  display: inline-block;
  font-size: 130%;
  padding-top: 0.2rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-bottom: 0.3rem;
  margin-top: 0.2rem;
  margin-left: 0.2rem;
  margin-right: 0.2rem;
  margin-bottom: -0.4rem;
  content: "Note";
}
aside.warning::before {
  font-size: 130%;
  padding-top: 0.2rem;
  padding-left: 1rem;
  padding-right: 0.2rem;
  padding-bottom: 0.3rem;
  margin-bottom: 1.2rem;
  content: "Warning";
}
div.warning::after {
  width: 97.8%;
  display: inline-block;
  font-size: 130%;
  padding-top: 0.2rem;
  padding-left: 1rem;
  padding-right: 0.2rem;
  padding-bottom: 0.3rem;
  margin-top: 0.2rem;
  margin-left: 0.2rem;
  margin-right: 0.2rem;
  margin-bottom: -0.4rem;
  content: "Warning";
}
aside > p {
  padding-left: 1rem;
  padding-right: 1rem;
}
div.note + p {
  padding-left: 1rem;
  padding-right: 1rem;
}
div.warning + p {
  padding-left: 1rem;
  padding-right: 1rem;
}

@font-face {
  font-family: robotolight;
  src: url('../assets/fonts/Roboto-Light-webfont.woff') format('woff');
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: robotoregular;
  src: url('../assets/fonts/Roboto-Regular-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: robotomedium;
  src: url('../assets/fonts/Roboto-Medium-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

body, body > section {
  margin: 0 auto;
  padding: 1.5rem 0 3rem;
}

body {
  font-family: 'robotoregular',Arial,Helvetica Neue,Helvetica,sans-serif;
  line-height: 1.5;
  max-width: 1140px;
  font-size: 16px;
}

body > section {
  max-width: 83.33333%;
}

h1, h2, h3, h4, h5, h6, h7, h8 {
  margin: 1.875rem 0 1rem;
}

h1, h2, h3, h4 {
  font-family: 'robotolight',Arial,Helvetica Neue,Helvetica,sans-serif;
  line-height: 1.3;
  font-weight: 100;
}

h5, h6, h7, h8 {
  font-family: 'robotomedium',Arial,Helvetica Neue,Helvetica,sans-serif;
  line-height: 1.3;
  font-weight: 125;
}

h1 {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
}

h1 code {
  font-size: 2.25rem;
  font-weight: 300;
}

h2 {
  font-size: 2.125rem;
  margin-bottom: 1.125rem;
}

h2 code {
  font-size: 1.9rem;
  font-weight: 300;
}

h3 {
  font-size: 1.85rem;
}

h3 code {
  font-size: 1.65rem;
  font-weight: 300;
}

h4 {
  font-size: 1.5rem;
}

h4 code {
  font-size: 1.35rem;
  font-weight: 200;
}

h5 {
  font-size: 1.3rem;
}

h6 {
  font-size: 1.3rem;
}

h7 {
  font-size: 1.25rem;
}

h8 {
  font-size: 1.2rem;
}

blockquote {
  margin: 0 1rem 1.5rem 1rem;
  padding: 1rem 1rem 0 1rem;
  overflow-x: auto;
}

blockquote > p:has(.math) {
  line-height: calc( 1rem + 1.8ex );
}

p {
  margin-top: 0;
  margin-bottom: calc( 1rem + 1ex );
}

table {
  margin-top: 0.5rem;
  margin-bottom: calc( 1rem + 1ex );
}

ul, ol {
  margin-top: -0.4rem;
  margin-bottom: calc( 0.5rem + 1ex );
}

li ol {
  margin-top: 0.25ex;
}

li ul {
  margin-top: 0.25ex;
}

li {
  margin-top: 0.5ex;
  margin-bottom: 0.5rem;
}

p, ul, ol, dl, table {
  font-size: 1.125rem;
  line-height: 1.625;
}

pre {
  display: block;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #e6e7e8;
  padding: 0.625rem;
  font-size: 0.9375rem;
}

.katex {
  font-size: 1.21em;
}

div.math {
  transform: scale(1.42, 1.42);
  display: block;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 2rem 1rem 2rem 1rem;
  text-align: center;
  padding: 1rem;
}

a, a:visited {
  text-decoration: none;
}

a:hover, a.reserved:hover {
  text-decoration: underline;
}

a.reserved, a.reserved:visited {
  text-decoration: none;
}

span.section-anchor {
  opacity: 0;
}

span.section-anchor:hover {
  opacity: 1;
}

span.section-heading:hover + span {
  opacity: 1;
}

a.footnote_reference::before, a.footnote-ref::before, a.footnote::before {
  content: "[";
}

a.footnote_reference::after, a.footnote-ref::after, a.footnote::after {
  content: "]";
}

/* {{{ rst-specific */
#references table, #references th, #references td {
  border: 0 none transparent;
  font-size: 1.125rem;
}

#references table {
  margin-left: 0;
  margin-bottom: 0;
}

#references th {
  padding-left: 0;
  width: 1.9em;
  text-align: right;
}

#references th::before {
  content: "[";
}

#references th::after {
  content: "]";
}
/* }}} rst-specific */

/* {{{ md-specific */
a.footnote-ref sup, a.footnote sup {
  vertical-align: baseline;
  font-size: 100%;
}

/* pandoc only, not multimarkdown */
#footnotes ol {
  margin-top: -3ex;
}

.footnotes li {
  margin-top: -0.8ex;
  margin-left: 1em;
  list-style-type: md-references;
}

.footnotes ::marker {
  font-weight: 600;
  font-size: 1.125rem;
}

.footnotes hr {
  display: none;
}

.footnote-back::before {
  content: " ";
}

@counter-style md-references {
  system: extends decimal;
  prefix: "[";
  suffix: "]     ";
}
/* }}} md-specific */

strong, b {
  font-family: 'robotomedium',Arial,Helvetica Neue,Helvetica,sans-serif;
  font-weight: normal;
}

hr {
  border-top: 1px solid #e6e7e8;
  margin: 1.875rem 0;
}

table {
  border-collapse: collapse;
  border: 0 none transparent;
}

th, td {
  border: 1px solid #212529;
}

th, td {
  padding-left: 0.7rem;
  padding-right: 0.75rem;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  vertical-align: top;
}

td:first-child {
  text-align: center;
}

#drafts-without-assigned-zip-numbers table td:first-child {
  text-align: left;
}

#index-of-zips table td:first-child + td {
  padding: 0;
}

#index-of-zips table a {
  display: block;
  padding-left: 0.7rem;
  padding-right: 0.75rem;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

@media (max-width: 576px) {
  table:not(.footnote) {
      display: block;
  }
  pre, div.math {
      font-size: 0.5rem;
  }
  table {
      font-size: 0.6rem;
  }
}

@media (min-width: 576px) {
  body > section {
      max-width: initial;
      width: 510px;
  }
  pre, div.math {
      font-size: 0.5rem;
  }
  table {
      font-size: 0.6rem;
  }
}

@media (min-width: 768px) {
  body > section {
      width: 690px;
  }
  pre, div.math {
      font-size: 0.55rem;
  }
  table {
      font-size: 0.7rem;
  }
}

@media (min-width: 992px) {
  body > section {
      width: 770px;
  }
  pre, div.math {
      font-size: 0.6rem;
  }
  table {
      font-size: 0.8rem;
  }
}

@media (min-width: 1200px) {
  body > section {
      max-width: initial;
      width: 920px;
  }
  pre, div.math {
      font-size: 0.68rem;
  }
  table {
      font-size: 0.85rem;
  }
}

@media (min-width: 1390px) {
  body > section {
      max-width: initial;
      width: 1200px;
  }
  pre, div.math {
      font-size: 0.75rem;
  }
  table {
      font-size: 1rem;
  }
}
