: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); }
.stamp.warn { color: var(--warn); }
/* ── 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.warn .state { color: var(--warn); }
.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); }
.tag.pass .failure-history { color: var(--fail); }
.tag.pass .failure-history .rerun { color: var(--pass); }
/* ── 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); }
/* ── QuarterDeck boards ─────────────────────────────────────── */
/* The Chair's own renderers emit these class names. They are reproduced here in the
receipt's palette so a Manifest or scorecard reads the same on paper as on the Chair. */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .5rem; margin: 0 0 1.25rem; }
.stat { display: block; border: 1px solid var(--rule); background: var(--tint); padding: .55rem .8rem; color: inherit; text-decoration: none; }
.stat-value { font-size: 1.45rem; font-weight: 700; line-height: 1; }
.stat-label { color: var(--muted); font-size: .68rem; letter-spacing: .1em; margin-top: .35rem; text-transform: uppercase; }
.story-list { display: grid; gap: .15rem; margin: 0 0 1.25rem; }
.story-feature { color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; margin: 1rem 0 .2rem; border-bottom: 1px solid var(--rule); padding-bottom: .15rem; }
.story-list > .story-feature:first-child { margin-top: 0; }
.story-row { display: flex; align-items: baseline; gap: .6rem; font-size: .84rem; }
.story-name { flex: 1; overflow-wrap: anywhere; }
.badge { font-size: .68rem; font-weight: 700; letter-spacing: .08em; padding: 0 .4rem; text-transform: uppercase; white-space: nowrap; border: 1px solid currentColor; }
.badge-pending { color: var(--muted); }
.badge-review { color: var(--warn); }
.badge-verified { color: var(--pass); }
.badge-failed { color: var(--fail); }
.question-status { font-size: .86rem; margin: 0 0 .9rem; font-weight: 700; }
.empty { color: var(--muted); font-style: italic; font-size: .84rem; }
.story-breakdown { border: 1px solid var(--rule); padding: .5rem .8rem; margin: 0 0 1.25rem; font-size: .82rem; }
.story-breakdown-label { color: var(--muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .3rem; }
.story-breakdown-row { display: flex; gap: .6rem; }
.story-breakdown-name { flex: 1; }
.story-breakdown-count { font-weight: 700; }
@media print {
body { padding: 0; }
nav.tabs { display: none; }
.panel { display: block; page-break-inside: avoid; }
}
Run artifact