/* PGAIBench. Text first: one system monospace stack, no images (only the
   favicon files), no web
   fonts, no external requests. Everything sits on a character grid: widths
   in ch, vertical rhythm in multiples of one line height (--lh).

   Parts of this file (the grid width rule, the bordered header table, the
   box tables and the vertical rhythm) are adapted from The Monospace Web,
   github.com/owickstrom/the-monospace-web, under the MIT licence:

   Copyright 2024 Oskar Wickström

   Permission is hereby granted, free of charge, to any person obtaining a
   copy of this software and associated documentation files (the "Software"),
   to deal in the Software without restriction, including without limitation
   the rights to use, copy, modify, merge, publish, distribute, sublicense,
   and/or sell copies of the Software, and to permit persons to whom the
   Software is furnished to do so, subject to the following conditions:

   The above copyright notice and this permission notice shall be included in
   all copies or substantial portions of the Software.

   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   DEALINGS IN THE SOFTWARE. */
:root {
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --lh: 1.25rem;
  --bw: 2px;
  --bg: #fbfbf8; --ink: #141414; --muted: #5f5f5a; --line: #141414; --soft: #eeeee9;
  --accent: #1d43a6; --bar: var(--ink); --chart: #8094cc;
  --fam-anthropic: #c4603c; --fam-openai: #0b7d62; --fam-google: #2b6fe0; --fam-open: #8e4ba8;
  color-scheme: light dark;
  font-family: var(--mono);
  font-size: 16px;
  font-variant-numeric: tabular-nums lining-nums;
}
/* Theme: the system theme unless the reader picked one (data-theme, set by
   the theme switcher; without JavaScript there is no switcher). */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0b0b0c; --ink: #e6e6e1; --muted: #a3a39d; --line: #e6e6e1; --soft: #18181a;
    --accent: #93acff; --bar: #93acff; --chart: #4f64a6;
    --fam-anthropic: #e08a6a; --fam-openai: #3dc79e; --fam-google: #7baaf7; --fam-open: #c99be0;
  }
}
:root[data-theme="dark"] {
  --bg: #0b0b0c; --ink: #e6e6e1; --muted: #a3a39d; --line: #e6e6e1; --soft: #18181a;
  --accent: #93acff; --bar: #93acff; --chart: #4f64a6; color-scheme: dark;
  --fam-anthropic: #e08a6a; --fam-openai: #3dc79e; --fam-google: #7baaf7; --fam-open: #c99be0;
}
:root[data-theme="light"] { color-scheme: light; }
.theme { white-space: nowrap; }
.theme button { all: unset; cursor: pointer; color: var(--accent); text-decoration: underline; }
.theme button[aria-pressed="true"] { color: var(--ink); text-decoration: none; font-weight: 800; }
.theme button[aria-pressed="true"]::before { content: "["; } .theme button[aria-pressed="true"]::after { content: "]"; }
.theme button:focus-visible { outline: var(--bw) solid var(--accent); }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: hidden; background: var(--bg); color: var(--ink); }
body { margin: 0; font-family: var(--mono); line-height: var(--lh); overflow-wrap: anywhere; }
.wrap { width: 100%; max-width: calc(min(80ch, round(down, 100%, 1ch))); margin: 0 auto; padding: var(--lh) 2ch calc(var(--lh) * 2); }
/* Results, grid and data pages: a wider measure for tables; prose stays near 80ch. */
.wrap, .wrap.wide { max-width: min(150ch, 100%); }
nav.toc a { display: inline-block; }
nav.toc .toc-sep { color: var(--muted); }
.sep { border-left-width: calc(var(--bw) * 3); }
.scroll-hint { display: none; margin: 0; color: var(--muted); }
@media (max-width: 75rem) { .scroll-hint { display: block; } }
ul.legend { columns: 2; max-width: none; } ul.legend li { break-inside: avoid; }
a { color: var(--accent); text-decoration-thickness: var(--bw); text-underline-offset: 2px; }
a[aria-current="page"] { color: var(--ink); text-decoration: none; font-weight: 800; }
:focus-visible { outline: var(--bw) solid var(--accent); outline-offset: 1px; }
code { font-family: inherit; font-weight: 600; }
b, strong { font-weight: 800; }
p, ul, ol, dl, pre, figure, details, blockquote { margin: 0 0 var(--lh); }
p, li, dd { max-width: 80ch; }
.skip { position: absolute; left: -999px; } .skip:focus { position: static; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dim, .meta, .lede, .subtitle { color: var(--muted); }

.banner { color: var(--accent); font-weight: 800; }
.nav { margin: 0 0 var(--lh); }

/* title block and report header */
pre.title { margin: 0 0 var(--lh); line-height: 1; font-size: 1em; overflow: hidden; color: var(--ink); }
.head .prompt { color: var(--muted); } .head p { margin: 0; } .head { margin: 0 0 var(--lh); }
.cursor { animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }

/* headings: plain monospace on the grid */
h1, h2, h3, h4 { font-family: inherit; font-weight: 800; font-size: 1rem; line-height: var(--lh); margin: calc(var(--lh) * 2) 0 var(--lh); }
h1 { font-size: 1.6rem; line-height: calc(var(--lh) * 2); text-transform: uppercase; margin: 0; }
h2 { text-transform: uppercase; }
h2::before { content: "# "; color: var(--muted); }
h2 small, h1 small { font-weight: 400; color: var(--muted); }
ul { padding-left: 2ch; list-style: none; } ul > li::before { content: "- "; margin-left: -2ch; }
ol { padding-left: 4ch; }
li { margin: 0; }

pre { overflow-x: auto; overflow-y: hidden; font-family: inherit; line-height: var(--lh); white-space: pre; }
pre.head, pre.kv { white-space: pre-wrap; }
pre.answer { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 40rem; overflow-y: auto; }
pre.prompt { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 40rem; overflow-y: auto; padding: 0 1ch; border-left: var(--bw) solid var(--line); }
.url { overflow-wrap: anywhere; }

/* boxes on the grid */
details { border: var(--bw) solid var(--line); padding: calc(var(--lh) / 2 - var(--bw)) 1ch; }
details > summary { cursor: pointer; list-style: none; font-weight: 600; } details > summary::-webkit-details-marker { display: none; }
details > summary::before { content: "[+] "; color: var(--muted); } details[open] > summary::before { content: "[-] "; }
details[open] > summary { margin-bottom: var(--lh); }
details > :last-child { margin-bottom: 0; }
td details, details.cell { border: 0; padding: 0; margin: 0; }
.callout { padding: calc(var(--lh) / 2 - var(--bw)) 1ch; border: var(--bw) solid var(--accent); }
blockquote.task { padding: calc(var(--lh) / 2 - var(--bw)) 1ch; margin-left: 0; margin-right: 0; border: var(--bw) solid var(--line); }
.status { border: var(--bw) double var(--line); border-width: calc(var(--bw) * 3); padding: 0 1ch; margin-bottom: var(--lh); }
.status h2 { margin-top: calc(var(--lh) / 2); }

/* outcomes: ASCII tag plus label */
.o b { font-weight: 800; }
.outcomes > div, .evidence > div, .glossary > div { margin: 0 0 var(--lh); }
.outcomes dt, .evidence dt, .glossary dt { font-weight: 800; }
.outcomes dd, .evidence dd, .glossary dd, .kv dd { margin: 0 0 0 4ch; }
.badge { white-space: nowrap; } .badge-pending { color: var(--muted); }
.flow li { margin: 0; } .flow span { color: var(--muted); }
.facts > div { display: flex; gap: 1ch; } .facts dt { color: var(--muted); min-width: 18ch; } .facts dt::after { content: ":"; } .facts dd { margin: 0; }

/* tables: boxes on the grid */
.table-scroll { overflow-x: auto; margin: 0 0 var(--lh); }
table { border-collapse: collapse; font-size: 1em; margin: 0 0 var(--lh); }
th, td { border: var(--bw) solid var(--line); padding: calc(var(--lh) / 2 - var(--bw)) calc(1ch - var(--bw) / 2); line-height: var(--lh); text-align: left; vertical-align: top; }
.table-scroll table { margin: 0; }
th { font-weight: 800; }
thead th button { all: unset; cursor: pointer; } thead th button:focus-visible { outline: var(--bw) solid var(--accent); }
th[aria-sort="ascending"] button::after { content: " ^"; } th[aria-sort="descending"] button::after { content: " v"; }
tfoot tr > * { color: var(--muted); }
caption { text-align: left; color: var(--muted); padding-bottom: 0; }
.num { text-align: right; white-space: nowrap; }
td small, th small { color: var(--muted); font-size: 1em; }
.none { color: var(--muted); }
.mark-tag { color: var(--muted); white-space: nowrap; }

/* the bordered header table at the top of every page */
table.header { width: calc(round(down, 100%, 1ch)); margin: 0 0 calc(var(--lh) * 2); }
.header th, .header td { white-space: nowrap; }
.header td.width-auto { width: 100%; white-space: normal; }
.header td:last-child { text-align: right; }
.header .subtitle { display: block; }

/* text charts */
.chart-block { margin: 0 0 calc(var(--lh) * 2); }
pre.chart { margin: 0 0 var(--lh); }
table.chart-data th, table.chart-data td { padding-top: 0; padding-bottom: 0; }
.chart-block figcaption { color: var(--muted); }
.raw { color: var(--muted); }

.foot { margin-top: calc(var(--lh) * 2); padding-top: var(--lh); border-top: calc(var(--bw) * 3) double var(--line); color: var(--muted); }
.canary { font-size: 0.85em; }

/* Wide tables fit a desktop window: smaller table text, tight padding. */
table, th, td { overflow-wrap: normal; word-break: normal; }
table { font-size: 0.86em; }
th, td { padding: 0 0.6ch; }
pre { font-size: 0.92em; }
.table-scroll { max-width: 100%; }
/* first column and numbers never wrap; header cells wrap, except the first */
th[scope="row"], tbody th, td:first-child, th:first-child, td.num, .baseline th { white-space: nowrap; }
thead th, thead th.num { white-space: normal; vertical-align: bottom; min-width: 4ch; }
thead th:first-child { white-space: nowrap; }

@media print { .banner, .nav, .skip { display: none; } }

/* Chart bar cells: spans of spaces with a pattern each, same width as text (bars.ts). */
.bx { --c: var(--ink); white-space: pre; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.bx-solid { background: var(--c); }
.bx-hatch { background: repeating-linear-gradient(45deg, var(--c) 0 1.5px, transparent 1.5px 5px); }
.bx-back { background: repeating-linear-gradient(-45deg, var(--c) 0 1.5px, transparent 1.5px 5px); }
.bx-cross { background: repeating-linear-gradient(45deg, var(--c) 0 1px, transparent 1px 5px), repeating-linear-gradient(-45deg, var(--c) 0 1px, transparent 1px 5px); }
.bx-dots { background: radial-gradient(circle, var(--c) 1.1px, transparent 1.4px) 0 0 / 4px 4px; }
.bx-sparse { background: radial-gradient(circle, var(--c) 1px, transparent 1.3px) 0 0 / 8px 8px; }
.bx-horiz { background: repeating-linear-gradient(0deg, var(--c) 0 1.5px, transparent 1.5px 4px); }
.bx-vert { background: repeating-linear-gradient(90deg, var(--c) 0 1.5px, transparent 1.5px 4px); }
.bx-grid { background: repeating-linear-gradient(0deg, var(--c) 0 1px, transparent 1px 5px), repeating-linear-gradient(90deg, var(--c) 0 1px, transparent 1px 5px); }
.bx-check { background: repeating-conic-gradient(var(--c) 0 25%, transparent 0 50%) 0 0 / 6px 6px; }
.bx-under { background: linear-gradient(var(--c), var(--c)) bottom / 100% 2px no-repeat; }
.bx-vdots { background: radial-gradient(circle, var(--c) 1px, transparent 1.3px) 0 0 / 4px 8px; }
.bx-empty { background: var(--soft); box-shadow: inset 0 0 0 1px var(--muted); }
.bx-ring { background: radial-gradient(circle, transparent 1.2px, var(--c) 1.4px 2.2px, transparent 2.4px) 0 0 / 6px 6px; }
.bx-diamond { background: repeating-linear-gradient(45deg, var(--c) 0 1px, transparent 1px 3px), linear-gradient(var(--soft), var(--soft)); }

/* key: value blocks: two columns, the key column as wide as the longest key (--kw), values wrap in their column. */
dl.kv-grid { display: grid; grid-template-columns: var(--kw, 20ch) minmax(0, 1fr); column-gap: 1ch; }
dl.kv-grid dt { font-weight: 400; grid-column: 1; }
dl.kv-grid:not(.nocolon) dt:not(:empty)::after { content: ":"; }
dl.kv-grid dd { grid-column: 2; margin: 0; max-width: none; }

/* Narrow-screen variants (charts, diagram): hidden on wide screens. */
.narrow-only { display: none; }
.nrow { margin: 0 0 calc(var(--lh) / 2); }
.nrow-bar { display: flex; align-items: center; gap: 1ch; }
.nrow-v { min-width: 4ch; text-align: right; white-space: nowrap; }
.nrow-sub { color: var(--muted); }
.nrow-track { margin: var(--lh) 0 calc(var(--lh) / 2); font-weight: 800; }
.fb { position: relative; display: block; flex: 1 1 auto; min-width: 0; height: var(--lh); border-left: 1px solid var(--ink); border-right: 1px solid var(--ink); }
.fb > .bx { position: absolute; top: 15%; bottom: 15%; }
.fb-zero { position: absolute; top: 0; bottom: 0; width: 0; border-left: var(--bw) solid var(--ink); }
.fb-axis { border: 0; border-top: 1px solid var(--ink); }
.fb-tick { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; color: var(--muted); }
.fb-tick.first { transform: none; } .fb-tick.last { transform: translateX(-100%); }
.fb-tick::before { content: ""; position: absolute; left: 50%; top: -0.3em; height: 0.3em; border-left: 1px solid var(--ink); }
.fb-tick.first::before { left: 0; } .fb-tick.last::before { left: auto; right: 0; }
ol.aaa-list { padding-left: 4ch; }

/* Phones: 40rem and below. Body text 15px, tables 13px, no sideways scrolling except the matrix. */
@media (max-width: 40rem) {
  :root { font-size: 15px; }
  .wrap { padding: var(--lh) 1.25ch calc(var(--lh) * 2); }
  pre.chart, pre.rating-chart, pre.profile-chart, pre.aaa { display: none; }
  .narrow-only { display: block; margin: 0 0 var(--lh); }
  pre.title { font-size: min(0.92em, calc((100vw - 3ch) / 33)); }
  .nav a, .theme button { display: inline-flex; align-items: center; min-height: 40px; padding: 0 0.5ch; }
  .nav { line-height: 40px; }
  table { font-size: 0.875em; }
  dl.kv-grid { display: block; }
  dl.kv-grid dt { font-weight: 800; }
  dl.kv-grid dt:empty { display: none; }
  dl.kv-grid dd { margin: 0 0 calc(var(--lh) / 2); }
  dl.kv-grid.nocolon dt { margin-top: calc(var(--lh) / 2); }
  .facts > div { flex-wrap: wrap; } .facts dt { min-width: 0; }
  ul.legend { columns: 1; }
  .scroll-hint { display: none; } .scroll-hint.matrix-hint { display: block; }
  .table-scroll:not(:has(table.matrix)):not(:has(table.compact)) { overflow-x: visible; }
  table:not(.header):not(.matrix):not(.compact), table:not(.header):not(.matrix):not(.compact) > tbody, table:not(.header):not(.matrix):not(.compact) > tfoot, table:not(.header):not(.matrix):not(.compact) > * > tr, table:not(.header):not(.matrix):not(.compact) > * > tr > td, table:not(.header):not(.matrix):not(.compact) > * > tr > th { display: block; width: auto; }
  table:not(.header):not(.matrix):not(.compact) { border: 0; width: 100%; }
  table:not(.header):not(.matrix):not(.compact) > thead, table:not(.header):not(.matrix):not(.compact) > caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  table:not(.header):not(.matrix):not(.compact) > * > tr { border: var(--bw) solid var(--line); padding: calc(var(--lh) / 4) 1ch; margin: 0 0 calc(var(--lh) / 2); }
  table:not(.header):not(.matrix):not(.compact) > * > tr > td, table:not(.header):not(.matrix):not(.compact) > * > tr > th { border: 0; padding: 0; white-space: normal; text-align: left; overflow-wrap: anywhere; }
  table:not(.header):not(.matrix):not(.compact) > * > tr > th { font-weight: 800; }
  table:not(.header):not(.matrix):not(.compact) td[data-label]::before { content: attr(data-label) ": "; color: var(--muted); font-weight: 400; }
  table:not(.header):not(.matrix):not(.compact) td:empty { display: none; }
}
@media (max-width: 40rem) {
  table.header { width: 100%; }
  table.header > tbody { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  table.header tr { display: contents; }
  table.header th, table.header td { display: block; white-space: normal; text-align: left; overflow-wrap: anywhere; }
  .header td.width-auto { grid-column: 1 / -1; width: auto; }
  .header td:last-child { text-align: left; }
}
.ni { white-space: nowrap; }

/* Rating chart: bar fill (accent in dark theme), thin zero line, grouped rows. */
.rating .bx { --c: var(--bar); }
.rb { position: relative; }
.rb::before { content: ""; position: absolute; top: 0; bottom: 0; left: var(--z); border-left: 2px solid var(--ink); }
.rating .nrow { margin-bottom: calc(var(--lh) * 0.75); }
.fb { border-left: 0; border-right: 0; }

/* SVG charts (svg.ts): build-generated, colours only from theme variables. Media placed as in The Monospace Web. */
figure.svg-chart { margin: calc(var(--lh) * 2) 3ch; }
svg[data-chart] { display: block; width: 100%; height: calc(var(--lh) * var(--h)); color: var(--ink); font-family: inherit; overflow: visible; }
svg.chart-wide { max-width: 47.5rem; }
figure.svg-chart figcaption { font-style: italic; margin-top: calc(var(--lh) / 2); }
.ch-bar { fill: var(--chart); }
.ch-bg { fill: var(--bg); }
.ch-base { fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 4 3; }
.ch-ci { stroke: var(--ink); stroke-width: 1.5; }
.ch-clip { fill: var(--ink); }
.ch-grid { stroke: var(--muted); stroke-opacity: 0.35; stroke-width: 1; }
.ch-zero { stroke: var(--ink); stroke-width: 1.5; }
svg[data-chart] text { fill: currentColor; }
svg[data-chart] .ch-tick, svg[data-chart] .ch-group, svg[data-chart] .ch-note { fill: var(--muted); }
svg.chart-narrow { display: none; }
@media (max-width: 40rem) {
  figure.svg-chart { margin: var(--lh) 0; }
  svg.chart-narrow { display: block; }
  svg.chart-wide { display: none; }
}
/* Outcome profile segments (svg.ts stackedSvg): good in the chart tone, bad in ink, not known yet outlined. */
.pf { stroke: var(--bg); stroke-width: 1; }
.pf-right { fill: var(--chart); } .pf-correct_refusal { fill: var(--chart); fill-opacity: 0.75; } .pf-right_with_reservation { fill: var(--chart); fill-opacity: 0.55; } .pf-correct_stop { fill: var(--chart); fill-opacity: 0.4; }
.pf-harmful_lab { fill: var(--ink); } .pf-risky_pattern { fill: var(--ink); fill-opacity: 0.75; } .pf-stopped_at_rehearsal { fill: var(--ink); fill-opacity: 0.6; } .pf-ineffective { fill: var(--ink); fill-opacity: 0.4; }
.pf-over_cautious { fill: var(--ink); fill-opacity: 0.25; } .pf-invalid_answer { fill: var(--ink); fill-opacity: 0.15; } .pf-unscorable { fill: var(--ink); fill-opacity: 0.1; }
.pf-pending_review, .pf-rerun, .pf-under_review, .pf-not_run { fill: none; stroke: var(--muted); stroke-width: 1.5; }
.pf-pending_review { stroke-dasharray: 4 2; } .pf-rerun { stroke-dasharray: 1 2; } .pf-under_review { stroke-dasharray: 6 2 1 2; }
svg[data-chart] .pf-n { fill: var(--ink); stroke: var(--bg); stroke-width: 3; paint-order: stroke; font-weight: 800; }
svg[data-chart] .ch-lgd { fill: var(--ink); }
/* Four-quadrant plot (safety.ts). */
.q-pt { fill: var(--ink); }
.q-f-anthropic { fill: var(--fam-anthropic); } .q-f-openai { fill: var(--fam-openai); } .q-f-google { fill: var(--fam-google); } .q-f-open { fill: var(--fam-open); } .q-f-other { fill: var(--ink); }
.q-pt { stroke: var(--bg); stroke-width: 1; }
svg.fsw { display: inline-block; width: 1.1em; height: 1.1em; vertical-align: -0.2em; }
.qlegend { margin-bottom: calc(var(--lh) / 2); } .qleg { white-space: nowrap; margin-right: 2ch; }
.q-base { fill: none; stroke: var(--ink); stroke-width: 1.5; }
.q-arrow { fill: var(--ink); }
.q-mid { stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 5 4; }
.q-lead { stroke: var(--muted); stroke-width: 1; }
svg[data-chart] .q-midl { fill: var(--muted); font-size: 11px; }
table.danger code { white-space: normal; overflow-wrap: anywhere; }
ul.why li, ul.separates li { max-width: 100ch; }
table.compact th, table.compact td { padding-left: 0.5ch; padding-right: 0.5ch; }
figure.aaa-fig figcaption { font-style: italic; color: var(--muted); }
/* HTML legend swatches for the outcome profile: the same pf-* classes, drawn as boxes. */
ul.pf-legend { list-style: none; padding: 0; }
.sw { display: inline-block; width: 2ch; height: 0.8em; margin: 0 0.5ch 0 0; vertical-align: baseline; border: 1px solid var(--muted); }
.sw.pf-right { background: var(--chart); } .sw.pf-correct_refusal { background: color-mix(in srgb, var(--chart) 75%, var(--bg)); } .sw.pf-right_with_reservation { background: color-mix(in srgb, var(--chart) 55%, var(--bg)); } .sw.pf-correct_stop { background: color-mix(in srgb, var(--chart) 40%, var(--bg)); }
.sw.pf-harmful_lab { background: var(--ink); } .sw.pf-risky_pattern { background: color-mix(in srgb, var(--ink) 75%, var(--bg)); } .sw.pf-stopped_at_rehearsal { background: color-mix(in srgb, var(--ink) 60%, var(--bg)); } .sw.pf-ineffective { background: color-mix(in srgb, var(--ink) 40%, var(--bg)); }
.sw.pf-over_cautious { background: color-mix(in srgb, var(--ink) 25%, var(--bg)); } .sw.pf-invalid_answer { background: color-mix(in srgb, var(--ink) 15%, var(--bg)); } .sw.pf-unscorable { background: color-mix(in srgb, var(--ink) 10%, var(--bg)); }
.sw.pf-pending_review { border-style: dashed; } .sw.pf-rerun { border-style: dotted; } .sw.pf-under_review { border-style: dashed; }
ol.qkey { columns: 2 42ch; column-gap: 3ch; padding-left: 4ch; margin-bottom: calc(var(--lh) / 2); }
ol.qkey li::marker { font-weight: 800; }
.qkey-b { color: var(--muted); }
.q-frame { fill: none; stroke: var(--ink); stroke-width: 1.5; }
svg[data-chart] .q-num { fill: var(--ink); stroke: var(--bg); stroke-width: 3; paint-order: stroke; }
h1.plain { font-size: 1.25rem; margin: 0 0 calc(var(--lh) / 2); text-transform: none; }
ol.qkey { max-width: 64ch; }
ol.qkey li { white-space: nowrap; }
@media (max-width: 40rem) { figure.svg-chart .qlegend { font-size: 0.85em; margin: 0; } figure.svg-chart:has(.qlegend) figcaption { margin-top: 0.25rem; } .qleg { margin-right: 1.5ch; } }
@media (max-width: 40rem) { ol.qkey { font-size: 0.85em; column-gap: 2ch; padding-left: 3.5ch; } ol.qkey { columns: 1; } ol.qkey li { white-space: normal; } }
@media (max-width: 40rem) { .desk-only { display: none; } }
@media (min-width: 40.01rem) { .phone-only { display: none; } }
svg[data-chart] .q-name { fill: var(--ink); stroke: var(--bg); stroke-width: 3; paint-order: stroke; }

/* A configuration that fails the inclusion rule: shown, greyed, no place. */
tr.excluded th, tr.excluded td { color: var(--muted); }
table.compact tr.excluded th[scope="row"] { white-space: normal; }
/* 320 px phones: the compact tables shrink a little and row names may wrap, so they fit with decimals. */
@media (max-width: 21rem) { .wrap table.compact { font-size: 0.8em; } .wrap table.compact th, .wrap table.compact td { padding-left: 0.25ch; padding-right: 0.25ch; } .wrap table.compact tbody th[scope="row"] { white-space: normal; } }

/* plot switcher (assets/plot.js): hidden without JavaScript; extra points start hidden */
.qctl[hidden] { display: none; }
.qctl p { margin: 0; }
.qctl button { all: unset; cursor: pointer; color: var(--accent); text-decoration: underline; white-space: nowrap; margin-right: 1ch; }
.qctl button[aria-pressed="true"] { color: var(--ink); text-decoration: none; font-weight: 800; }
.qctl button[aria-pressed="true"]::before { content: "["; } .qctl button[aria-pressed="true"]::after { content: "]"; }
.qctl button:focus-visible, .qctl select:focus-visible { outline: var(--bw) solid var(--accent); }
.qctl select { font-family: inherit; font-size: inherit; color: var(--ink); background: var(--bg); border: var(--bw) solid var(--ink); max-width: 100%; }
.qctl { margin-bottom: calc(var(--lh) / 2); }
@media (max-width: 40rem) { .qctl button, .qctl select { min-height: 40px; } }
svg[data-chart] .q-off { display: none; }
.q-off { display: none; }
svg[data-chart] .q-dim, ol.qkey li.q-dim { opacity: 0.3; }
.q-pt.q-one { fill: none; stroke-width: 1.5; }
.q-one.q-f-anthropic { stroke: var(--fam-anthropic); } .q-one.q-f-openai { stroke: var(--fam-openai); } .q-one.q-f-google { stroke: var(--fam-google); } .q-one.q-f-open { stroke: var(--fam-open); } .q-one.q-f-other { stroke: var(--ink); }
.q-line { fill: none; stroke: var(--ink); stroke-width: 1; }
