
:root {
  --paper: #ffffff; --ink: #14171a; --muted: #5b616a; --rule: #c9c9c3; --hard: #14171a;
  --pass: #16663a; --fail: #a3170f; --warn: #8a5a00; --tint: #f7f7f4;
}
* { box-sizing: border-box; }
body {
  margin: 0; padding: 1.75rem 1rem 3rem; background: var(--paper); color: var(--ink);
  font: 13.5px/1.62 "Courier New", Courier, ui-monospace, SFMono-Regular, monospace;
}
main { max-width: 1080px; margin: 0 auto; }
a { color: var(--ink); text-underline-offset: 2px; }
a:hover { color: var(--pass); }
code, pre, .mono { font-family: inherit; }
code { background: var(--tint); padding: 0 .25em; }
pre {
  background: var(--tint); border: 1px solid var(--rule); padding: .8rem .9rem;
  overflow-x: auto; font-size: .84rem; margin: 0 0 1rem; white-space: pre-wrap; word-break: break-word;
}

/* ── letterhead ─────────────────────────────────────────────── */
.letterhead {
  display: flex; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap;
  border-bottom: 3px double var(--hard); padding-bottom: 1rem; margin-bottom: 1rem;
}
.letterhead .logo { width: 190px; max-width: 42vw; height: auto; flex: 0 0 auto; }
.letterhead .wordmark { font-size: 1.7rem; font-weight: 700; letter-spacing: .12em; color: var(--pass); }
.ident { flex: 1 1 18rem; min-width: 15rem; }
.kind { text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; color: var(--muted); }
h1 { font-size: 1.32rem; font-weight: 700; letter-spacing: .04em; margin: .3rem 0 .25rem; text-transform: uppercase; }
.docline { color: var(--muted); font-size: .82rem; word-break: break-all; }

/* ── rubber stamp ───────────────────────────────────────────── */
.stamp {
  flex: 0 0 auto; align-self: center; text-align: center; padding: .45rem 1.1rem .55rem;
  border: 3px solid currentColor; outline: 1px solid currentColor; outline-offset: 3px;
  transform: rotate(-7deg); opacity: .88; letter-spacing: .16em; font-weight: 700;
  text-transform: uppercase; line-height: 1.2;
}
.stamp .mark { display: block; font-size: 1.55rem; }
.stamp .sub { display: block; font-size: .62rem; letter-spacing: .18em; margin-top: .2rem; }
.stamp.pass { color: var(--pass); }
.stamp.fail { color: var(--fail); }

/* ── verdict and metadata ───────────────────────────────────── */
.verdict { margin: 0 0 1rem; font-size: .95rem; }
.verdict .state { font-weight: 700; letter-spacing: .08em; }
.verdict.pass .state { color: var(--pass); }
.verdict.fail .state { color: var(--fail); }
.verdict .detail { color: var(--ink); margin-top: .3rem; font-size: .86rem; }
dl.meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(23rem, 1fr));
  gap: .15rem 2rem; margin: 0 0 1.25rem; border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule); padding: .6rem 0; font-size: .82rem;
}
dl.meta > div { display: flex; gap: .6rem; }
dl.meta dt { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; flex: 0 0 7rem; }
dl.meta dd { margin: 0; overflow-wrap: anywhere; }

/* ── tabs ───────────────────────────────────────────────────── */
nav.tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 1px solid var(--hard); margin-bottom: 1.25rem; }
nav.tabs button {
  font: inherit; font-size: .8rem; text-transform: uppercase; letter-spacing: .12em;
  background: var(--tint); color: var(--muted); cursor: pointer; padding: .4rem 1rem;
  border: 1px solid var(--rule); border-bottom: none; margin-bottom: -1px;
}
nav.tabs button[aria-selected="true"] {
  background: var(--paper); color: var(--ink); font-weight: 700;
  border-color: var(--hard); border-bottom: 1px solid var(--paper);
}
.panel { display: none; }
.panel.active { display: block; }
h2 { font-size: .9rem; margin: 1.75rem 0 .4rem; text-transform: uppercase; letter-spacing: .12em; }
.panel > h2:first-child { margin-top: 0; }
p.note { color: var(--muted); margin: .2rem 0 .8rem; font-size: .82rem; }

/* ── tables ─────────────────────────────────────────────────── */
.scroll { overflow-x: auto; border: 1px solid var(--rule); }
table { border-collapse: collapse; width: 100%; font-size: .82rem; }
th, td { text-align: left; padding: .35rem .6rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
th { font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; background: var(--tint); border-bottom: 1px solid var(--hard); }
tbody tr:last-child td { border-bottom: none; }
td.num { text-align: right; white-space: nowrap; }
td.hash { font-size: .7rem; color: var(--muted); word-break: break-all; }
td.dash { color: var(--muted); }
td.nowrap { white-space: nowrap; }
table.tree td.name { padding-left: calc(.6rem + var(--d) * 1.3rem); white-space: nowrap; }
table.tree th:nth-child(2) { text-align: right; }
table.tree td.name strong { font-weight: 700; }
.tag { display: inline-block; padding: 0 .4rem; font-size: .72rem; font-weight: 700; letter-spacing: .06em; border: 1px solid currentColor; box-shadow: 0 0 0 1px var(--paper) inset; }
.tag.pass { color: var(--pass); }
.tag.fail { color: var(--fail); }
.tag.degraded { color: var(--warn); }
.tag.raw { color: var(--muted); font-weight: 400; }
.tag.unknown { color: var(--warn); }

/* ── receipt ────────────────────────────────────────────────── */
.receipt { border: 1px solid var(--hard); margin: 0 0 1.25rem; }
.receipt > .caption {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap;
  background: var(--hard); color: var(--paper); padding: .35rem .6rem;
  font-size: .74rem; text-transform: uppercase; letter-spacing: .18em; font-weight: 700;
}
.receipt > .caption .tally { letter-spacing: .1em; }
.receipt .scroll { border: none; }
.receipt table td:first-child { white-space: nowrap; font-weight: 700; }
.receipt tbody tr.fail td:first-child { color: var(--fail); }
.receipt tbody tr.unknown td:first-child { color: var(--warn); }
.receipt td.detail { color: var(--muted); }

/* ── guided path and limits ─────────────────────────────────── */
ol.steps { margin: 0 0 1.25rem; padding-left: 1.5rem; font-size: .84rem; }
ol.steps li { margin: .3rem 0; }
ol.steps li .what { display: block; color: var(--muted); font-size: .8rem; }
ul.limits { margin: 0 0 1.25rem; padding-left: 1.3rem; font-size: .82rem; color: var(--muted); }
ul.limits li { margin: .2rem 0; }
footer { margin-top: 2.5rem; padding-top: .75rem; border-top: 3px double var(--hard); color: var(--muted); font-size: .78rem; }

/* ── artifact viewer ────────────────────────────────────────── */
.fileheader { border-bottom: 3px double var(--hard); padding-bottom: .7rem; margin-bottom: 1.25rem; }
.fileheader h1 { font-size: 1.05rem; text-transform: none; letter-spacing: 0; word-break: break-all; }
.filenav { display: flex; gap: 1.2rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; }
.doc > :first-child { margin-top: 0; }
.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 {
  font-size: .95rem; margin: 1.6rem 0 .5rem; text-transform: uppercase; letter-spacing: .1em;
}
.doc h1 { font-size: 1.1rem; }
.doc h3, .doc h4, .doc h5, .doc h6 { text-transform: none; letter-spacing: .04em; color: var(--muted); }
.doc p { margin: 0 0 .9rem; }
.doc ul, .doc ol { margin: 0 0 .9rem; padding-left: 1.6rem; }
.doc li { margin: .15rem 0; }
.doc blockquote { margin: 0 0 .9rem; padding: .1rem 0 .1rem .9rem; border-left: 3px solid var(--rule); color: var(--muted); }
.doc hr { border: none; border-top: 1px solid var(--rule); margin: 1.4rem 0; }
.doc table { margin-bottom: 0; }
.doc .scroll { margin-bottom: .9rem; }
.doc del { color: var(--muted); }

@media print {
  body { padding: 0; }
  nav.tabs { display: none; }
  .panel { display: block; page-break-inside: avoid; }
}
