body { max-width: 66rem; margin: 0 auto; padding: 1rem; font: 16px/1.5 system-ui, sans-serif;
       color: #1f2328; background: #ffffff; }
/* Text in a column narrow enough to read, on the left; what is marked wide, such as the tables,
   the matrix, the block maps and the dumps, uses the width of the page */
body > :not(.wide) { max-width: 70ch; }
a { color: #0969da; }
code, pre { font: 0.875em ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
pre { background: #f6f8fa; padding: 0.75rem; overflow-x: auto; }
code { background: #e8ebef; padding: 0.1em 0.3em; border-radius: 4px; }
/* Code in text as it is written: spaces in it, such as those of a padded field, are not
   collapsed */
p code { white-space: pre-wrap; }
pre code { background: none; padding: 0; }
table { border-collapse: collapse; margin: 1rem 0; width: 100%; table-layout: fixed; }
th, td { border: 1px solid #d0d7de; padding: 0.25rem 0.5rem; text-align: left;
         vertical-align: baseline; overflow-wrap: anywhere; }
th { background: #f6f8fa; }
td.n, th.n { text-align: right; font-variant-numeric: tabular-nums; }
/* The total of a table, in bold */
tr.total td { font-weight: 600; }
svg { max-width: 100%; height: auto; }
.wide { overflow-x: auto; }
/* A table is not narrower than this: on a narrow screen it scrolls, rather than squeezing words */
.wide > table { min-width: 40rem; }
dt { font-weight: 600; }
/* a list in a description, such as the other configurations of an implementation, without the
   margins of a list in the text */
dd ul { margin: 0; padding-left: 1.25rem; }
.note { color: #59636e; font-size: 0.875em; }
/* The footer, muted, of three items with a dot between them */
footer { color: #59636e; font-size: 0.875em; }
footer a { color: inherit; }
footer .sep { margin: 0 0.5rem; }
/* The DOI, as a badge like Zenodo's, of text rather than an image of another site: inline, so
   that its text is on the line of the text around it */
a.doi { font-size: 0.75em; text-decoration: none; white-space: nowrap; }
a.doi span { padding: 0.125em 0.375rem; color: #ffffff; }
a.doi span:first-child { background: #555555; border-radius: 3px 0 0 3px; }
a.doi span + span { background: #0969da; border-radius: 0 3px 3px 0; }
/* Previous, the index and next in columns that do not move: names that do not fit end in ….
   Muted, above a rule, as the footer is below one, so that they read as the frame of the page */
nav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 1rem;
      padding-bottom: 0.5rem; border-bottom: 1px solid #d0d7de; font-size: 0.875em; }
nav a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #59636e;
        text-decoration: none; }
nav a:hover { color: #0969da; text-decoration: underline; }
nav .next { text-align: right; }
/* The link to a section, next to its heading when it is hovered */
.anchor { margin-left: 0.375rem; color: #8c959f; text-decoration: none; visibility: hidden; }
h2:hover .anchor, h3:hover .anchor, .anchor:focus { visibility: visible; }
/* The files of a case: its name as the link, what it is beside it, and the archive's sha256 under
   that, muted and without the background of code */
table.files { width: auto; table-layout: auto; margin: 0; }
table.files td { border: 0; padding: 0 1rem 0.125rem 0; }
table.files code { background: none; padding: 0; }
table.files td:first-child { white-space: nowrap; }
@media (max-width: 40rem) {
  /* the matrix and the block maps at their size, scrolled, rather than too small to read */
  .wide svg { max-width: none; }
  dd { margin-left: 1rem; }
  table.files, table.files tr, table.files td { display: block; }
  table.files td + td { padding: 0 0 0.375rem 1rem; }
  /* the tarballs of seen-in.html, the implementations of a case, the cases of an implementation
     and the motivating examples, one block per row */
  table.seen, table.seen tr, table.seen td,
  table.implementations, table.implementations tr, table.implementations td,
  table.differences, table.differences tr, table.differences td,
  table.examples, table.examples tr, table.examples td { display: block; }
  table.seen colgroup, table.seen th, table.implementations colgroup, table.implementations th,
  table.differences colgroup, table.differences th,
  table.examples colgroup, table.examples th { display: none; }
  table.seen tr, table.implementations tr, table.differences tr, table.examples tr {
    margin-bottom: 0.5rem; border: 1px solid #d0d7de; }
  table.seen td, table.implementations td, table.differences td, table.examples td { border: 0; }
  .wide > table.seen, .wide > table.implementations, .wide > table.differences,
  .wide > table.examples { min-width: 0; }
  table.examples td:first-child, table.differences td:first-child { font-weight: 600; }
  table.seen td:nth-child(2):not(:empty)::before { content: "packaged by "; color: #59636e; }
  table.implementations td:first-child { font-weight: 600; }
  table.implementations td:nth-child(2) { color: #59636e; font-size: 0.875em; }
  /* the tree to extract, which is narrow enough as a table */
  .wide > table.tree { min-width: 0; }
}
/* The tree to extract, part of the explanation of a case: as wide as text, and a kind such as
   symlink not broken, where the path and contents may be */
table.tree { max-width: 70ch; table-layout: auto; }
table.tree td:nth-child(2) { overflow-wrap: normal; }
/* A sha256: its label, then the hash, which a click selects whole, wherever it wraps */
.hash { display: block; color: #59636e; font-size: 0.8125em; }
.hash code { background: none; padding: 0; word-break: break-all; -webkit-user-select: all;
             user-select: all; }
/* The verdict of a case, as a solid badge and in words: unlike the pale cells of the matrix, whose
   colours are outcomes */
.verdict { margin: 1rem 0; padding: 0.5rem 1rem; background: #f6f8fa; border-left: 6px solid;
           overflow-wrap: anywhere; }
.verdict p { margin: 0.25rem 0; }
.badge { display: inline-block; margin-right: 0.5rem; padding: 0 0.5rem; border-radius: 4px;
         color: #ffffff; font-weight: 700; }
.accept { border-color: #1a7f37; } .accept .badge { background: #1a7f37; }
.reject { border-color: #cf222e; } .reject .badge { background: #cf222e; }
.tolerate { border-color: #59636e; } .tolerate .badge { background: #59636e; }
/* that the verdicts are of a draft, after the badge, in grey */
.badge-draft { margin-right: 0.5rem; color: #59636e; }
/* That the policy is a draft, on every page with verdicts: a strip on the left edge of the window,
   read from the bottom up, outside the text; on a screen too narrow for that, a band above the
   title */
.draft { position: fixed; top: 0; left: 0; padding: 1.25rem 0.375rem; writing-mode: vertical-rl;
         transform: rotate(180deg); background: #9a6700; color: #ffffff; font-size: 0.875em;
         font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
         text-decoration: none; }
@media (max-width: 72rem) {
  body > .draft { position: static; display: block; max-width: none; margin: -1rem -1rem 0.75rem;
                  padding: 0.25rem 1rem; writing-mode: horizontal-tb; transform: none; }
}
.mark { display: inline-block; width: 1.5em; margin-right: 0.5rem; border-radius: 3px;
        text-align: center; font-size: 0.75em; font-weight: 700; vertical-align: 0.15em; }
.mark.ok { background: #b4f1c3; color: #116329; }
.mark.may-accept { background: #e6eaef; color: #424a53; }
.mark.may-reject { background: #c4ccd4; color: #24292f; }
.mark.warn { background: #ffe08a; color: #7d4e00; }
.mark.bad { background: #ffc1ba; color: #a40e26; }
.mark.slow { background: #b6e3ff; color: #0550ae; }
.mark.boom { background: #dcc8ff; color: #6639ba; }
.mark.none { background: #ffffff; color: #59636e; }
.mark.none { box-shadow: inset 0 0 0 1px #8c959f; }
