/* The Superpermutation Almanac. */
:root {
  --paper:#ffffff; --ink:#000000; --body:#2b2b2b; --muted:#6d6d6d; --rule:#dedede; --faint:#f5f5f4; --band:#d6d6d6; --red:#c8341f;
  --s1:#2a78d6; --s2:#1baf7a; --s3:#eda100; --s4:#e87ba4; --s5:#008300; --s6:#4a3aa7; --s0:#a3a3a3;
  color-scheme:light dark;
}
:root[data-theme="light"] { color-scheme:light; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper:#1b1c1e; --ink:#f3f1ec; --body:#dcd9d3; --muted:#9a968f; --rule:#38393c; --faint:#242528; --band:#4a4b4f; --red:#ff7a63;
    --s1:#3987e5; --s2:#199e70; --s3:#c98500; --s4:#d55181; --s5:#008300; --s6:#9085e9; --s0:#6d6d6d;
    color-scheme:dark;
  }
}
:root[data-theme="dark"] {
  --paper:#1b1c1e; --ink:#f3f1ec; --body:#dcd9d3; --muted:#9a968f; --rule:#38393c; --faint:#242528; --band:#4a4b4f; --red:#ff7a63;
  --s1:#3987e5; --s2:#199e70; --s3:#c98500; --s4:#d55181; --s5:#008300; --s6:#9085e9; --s0:#6d6d6d;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--body); font-family:"Newsreader", Georgia, serif; font-size:18px; line-height:1.55; font-variant-numeric:lining-nums; }
a { color:inherit; text-decoration-color:var(--rule); text-underline-offset:.18em; }
a:hover { text-decoration-color:var(--red); }
:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.page { max-width:1040px; margin:0 auto; padding:0 32px 96px; }

/* the top bar */
.top { display:flex; justify-content:space-between; align-items:baseline; gap:20px; flex-wrap:wrap; padding:24px 0 16px; border-bottom:1px solid var(--rule); }
.name { font-weight:600; color:var(--ink); text-decoration:none; }
.top nav { display:flex; gap:6px 22px; font-size:16px; flex-wrap:wrap; align-items:baseline; }
.top nav a { text-decoration:none; }
.top nav a[aria-current] { color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; }
.top nav .acct { color:var(--muted); display:flex; gap:12px 22px; flex-wrap:wrap; }
.top nav form { display:inline; margin:0; }
.top nav form div { margin:0; }
/* the Documentation section's own row, under the top bar */
nav.sub { display:flex; gap:6px 20px; flex-wrap:wrap; align-items:baseline; font-size:15px; padding:10px 0; border-bottom:1px solid var(--rule); }
nav.sub a { text-decoration:none; }
nav.sub a[aria-current] { color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; }
button { font:inherit; color:var(--ink); background:none; border:1px solid var(--ink); border-radius:3px; padding:4px 16px; cursor:pointer; }
button:hover { border-color:var(--red); }
button.link { color:inherit; border:0; padding:0; }
button.link:hover { color:var(--ink); }

/* headings and sections */
h1 { font-weight:500; font-size:40px; line-height:1.1; color:var(--ink); margin:44px 0 18px; }
h1 i { font-weight:400; }
h2 { font-weight:500; font-size:22px; color:var(--ink); margin:0 0 16px; }
section { margin-top:64px; }
.head { display:flex; justify-content:space-between; align-items:baseline; margin:44px 0 22px; }
.head h1 { margin:0; }
.step-n { font-size:16px; color:var(--muted); display:flex; gap:20px; }
.step-n a { text-decoration:none; }
.step-n a:hover { color:var(--ink); }
.sechead { display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:6px; }
.sechead h2 { margin:0; }
.crumb { margin:40px 0 4px; font-size:16px; color:var(--muted); }
.crumb a { text-decoration:none; } .crumb a:hover { color:var(--ink); }
.crumb + h1 { margin:0 0 14px; }
.lede { max-width:36em; margin:0; font-size:19px; }
.staff { margin:20px 0 0; padding:6px 12px; border-left:2px solid var(--red); font-size:16px; }

/* facts */
.facts { display:grid; grid-template-columns:repeat(3, max-content); column-gap:64px; row-gap:12px; margin:0; font-variant-numeric:lining-nums tabular-nums; }
.lede + .facts, .staff + .facts { margin-top:30px; }
.facts dt { font-size:15px; color:var(--muted); }
.facts dd { margin:2px 0 0; font-size:24px; color:var(--ink); }
.facts dd .when { display:block; font-size:15px; color:var(--muted); }
.holder { margin:18px 0 0; color:var(--body); }

/* a GitHub username next to a name: small, muted, with the avatar */
a.gh { color:var(--muted); font-size:.85em; text-decoration:none; white-space:nowrap; }
a.gh:hover { color:var(--ink); }
a.gh img { width:1em; height:1em; border-radius:50%; vertical-align:-.12em; margin-right:.25em; }

/* charts */
.chart { position:relative; }
.chart svg { display:block; width:100%; overflow:visible; }
svg text { font-family:"Newsreader", Georgia, serif; font-size:14px; fill:var(--muted); font-variant-numeric:lining-nums tabular-nums; }
svg .lab { fill:var(--ink); font-size:15px; }
svg .axis { stroke:var(--ink); stroke-width:1; }
svg .tick { stroke:var(--muted); stroke-width:1; }
svg .grid { stroke:var(--rule); stroke-width:1; }
svg .rec { fill:var(--red); stroke:var(--paper); stroke-width:2; }
svg .drop { stroke:var(--muted); stroke-width:1; }
svg .c0 { stroke:var(--s0); fill:var(--s0); }
svg .c1 { stroke:var(--s1); fill:var(--s1); } svg .c2 { stroke:var(--s2); fill:var(--s2); }
svg .c3 { stroke:var(--s3); fill:var(--s3); } svg .c4 { stroke:var(--s4); fill:var(--s4); }
svg .c5 { stroke:var(--s5); fill:var(--s5); } svg .c6 { stroke:var(--s6); fill:var(--s6); }
svg .gapfill { fill:var(--faint); }
svg path.run { fill:none; stroke-width:2.5; stroke-linecap:round; }
svg circle.pt { stroke:var(--paper); stroke-width:2; }
svg .hit { fill:transparent; stroke:none; cursor:default; }
.zoom { position:relative; height:28px; margin-top:6px; }
.zoom .track, .zoom .sel { position:absolute; top:13px; height:3px; border-radius:2px; }
.zoom .track { left:0; right:0; background:var(--rule); }
.zoom .sel { background:var(--muted); }
.zoom input { position:absolute; left:0; width:100%; top:0; height:28px; margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none; border:0; padding:0; }
.zoom input::-webkit-slider-runnable-track { background:none; height:28px; }
.zoom input::-moz-range-track { background:none; }
.zoom input::-webkit-slider-thumb { -webkit-appearance:none; pointer-events:auto; width:14px; height:14px; margin-top:7px; border-radius:50%; background:var(--paper); border:2px solid var(--ink); cursor:ew-resize; }
.zoom input::-moz-range-thumb { pointer-events:auto; width:12px; height:12px; border-radius:50%; background:var(--paper); border:2px solid var(--ink); cursor:ew-resize; }
.tip { position:fixed; pointer-events:none; background:var(--paper); color:var(--body); border:1px solid var(--rule); box-shadow:0 2px 10px rgba(0,0,0,.08); padding:8px 11px; font-size:15px; line-height:1.4; border-radius:3px; z-index:5; opacity:0; transition:opacity .08s; max-width:300px; }
.tip b { font-weight:500; color:var(--ink); }

/* tables */
table { width:100%; border-collapse:collapse; font-variant-numeric:lining-nums tabular-nums; font-size:16px; }
th { text-align:left; font-weight:400; color:var(--muted); font-size:14px; padding:0 12px 8px 0; border-bottom:1px solid var(--ink); vertical-align:bottom; }
td { text-align:left; padding:10px 12px 10px 0; border-bottom:1px solid var(--rule); color:var(--ink); vertical-align:baseline; }
th.r, td.r { text-align:right; }
.table-scroll { overflow-x:auto; }
table.words-t th.by { width:26%; }
table.words-t td { padding:0 12px 0 0; height:46px; white-space:nowrap; vertical-align:middle; }
table.words-t td .note { color:var(--muted); font-style:italic; margin-left:6px; }
td.m, .m { color:var(--muted); }
tr.notable td.len, tr.tie td.len { color:var(--muted); }
table.bounds tr.grp td { color:var(--muted); font-size:14px; padding:18px 0 8px; border-bottom:1px solid var(--ink); }
table.bounds tr.gap td { color:var(--red); font-size:15px; padding:10px 14px 10px 0; border-bottom:0; }
table.bounds td { padding:9px 14px 9px 0; vertical-align:baseline; color:var(--muted); }
table.bounds td.v { white-space:nowrap; font-variant-numeric:tabular-nums; }
table.bounds td.k { white-space:nowrap; padding-right:0; text-align:right; font-size:14px; }
table.bounds tr.best td { color:var(--ink); }
table.bounds tr.best td.v { font-weight:500; }

/* the word page */
.begins { margin:30px 0 0; max-width:760px; display:grid; grid-template-columns:max-content 1fr; column-gap:18px; align-items:baseline; }
.begins .k { font-size:15px; color:var(--muted); }
.begins code { font-size:15px; color:var(--ink); letter-spacing:.03em; word-break:break-all; line-height:1.6; }
.begins code .p { text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:1.5px; text-underline-offset:.3em; }
table.sum { width:auto; }
table.sum td { padding:5px 0; border:0; color:var(--body); }
table.sum td.op { width:28px; color:var(--muted); }
table.sum td.n { text-align:right; color:var(--ink); padding-right:22px; }
table.sum tr.total td { border-bottom:1px solid var(--ink); padding-bottom:9px; }
table.sum tr.total + tr td { padding-top:10px; }
.after { margin:16px 0 0; }
.note { max-width:38em; overflow-wrap:anywhere; }
.note p { margin:0 0 12px; }
table.checks th { padding:0 20px 8px 0; }
table.checks td { padding:10px 20px 10px 0; }
table.checks .r { text-align:right; padding-right:0; }
code, .mono { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:14px; }
.sha { margin:16px 0 0; font-size:16px; display:grid; grid-template-columns:max-content 1fr; column-gap:18px; row-gap:4px; }
.sha .k { color:var(--muted); }
.sha .mono { color:var(--ink); word-break:break-all; }
.dl { margin:0; }
pre { background:var(--faint); padding:14px 18px; overflow-x:auto; font-size:14px; line-height:1.6; color:var(--ink); margin:14px 0 0; border-radius:2px; }
pre code { font-size:inherit; }
pre .c { color:var(--muted); }
.small { font-size:16px; color:var(--muted); margin:12px 0 0; }

.more { margin:14px 0 0; font-size:16px; }
footer .links { display:flex; gap:20px; flex-wrap:wrap; }

/* the home page */
.intro { max-width:36em; margin:44px 0 0; font-size:20px; }
.intro + section { margin-top:56px; }
svg .upline { fill:none; stroke:var(--red); stroke-width:1.5; }
svg .loline { fill:none; stroke:var(--ink); stroke-width:1.5; }
svg .lo { fill:var(--ink); stroke:var(--paper); stroke-width:2; }
svg .col { fill:transparent; cursor:pointer; }
svg .col:focus { outline:none; }
svg .col:focus-visible { stroke:var(--red); stroke-width:2; }
svg .hl { fill:var(--faint); opacity:0; pointer-events:none; }
svg .hl.on { opacity:1; }
table.state td { padding:10px 14px 10px 0; }
table.state td.n { width:3em; }
tr.row { cursor:pointer; }
tr.row:hover td { background:var(--faint); }

/* the changelog, here and on the home page */
table.changes td { padding:9px 16px 9px 0; }
table.changes td.d { white-space:nowrap; color:var(--muted); width:8em; }
h1 + table.changes { margin-top:28px; }

/* the contributors table */
h1 + table.board { margin-top:28px; }
table.board th { padding:0 16px 8px 0; }
table.board td { padding:11px 16px 11px 0; }
table.board th button { font:inherit; color:inherit; background:none; border:0; border-radius:0; padding:0; cursor:pointer; text-align:inherit; }
table.board th button:hover, table.board th[aria-sort] button { color:var(--ink); }
table.board th[aria-sort="descending"] button::after { content:" \2193"; }
table.board th[aria-sort="ascending"] button::after { content:" \2191"; }
table.board th button, table.board td a { white-space:nowrap; }
table.board td.rank { color:var(--muted); width:2.5em; }

/* the bounds page */
table.blist th { padding:0 18px 8px 0; }
table.blist td { padding:12px 18px 12px 0; }
table.blist td.k { color:var(--muted); white-space:nowrap; font-size:15px; padding-right:0; }
table.blist td.m { white-space:nowrap; }
table.blist td.v { white-space:nowrap; }
table.blist td.coef { white-space:nowrap; width:7.5em; }
table.blist td.coef .approx { display:block; color:var(--muted); font-size:14px; }
table.blist td.f { font-size:15px; }
table.blist td.f .katex { font-size:1.08em; }
table.blist td.who { min-width:11em; }
table.blist td.f .fnote { font-size:14px; margin-top:4px; max-width:28em; }

/* the page for one bound */
@media (min-width:700px) { .bound-facts { grid-template-columns:repeat(4, max-content); } }
.statement .katex { font-size:1.1em; }
.fnote { display:block; color:var(--muted); font-size:15px; margin:6px 0 0; max-width:36em; }
.lede + .fnote + .facts, .lede + .fnote + .staff { margin-top:30px; }
table.values { width:auto; }
table.values td { padding:7px 40px 7px 0; }
table.values td.r { padding-right:0; }
ul.evidence { list-style:none; padding:0; margin:0; max-width:46em; }
ul.evidence li { padding:12px 0; border-bottom:1px solid var(--rule); }
ul.evidence li:first-child { padding-top:0; }
ul.evidence .kind, ul.evidence .elink, ul.evidence .enote { display:block; }
ul.evidence .kind { color:var(--ink); }
ul.evidence .elink { font-size:16px; overflow-wrap:anywhere; }
ul.evidence .enote { font-size:15px; color:var(--muted); margin-top:2px; }

/* prose and forms (the submit page) */
.prose { max-width:42em; }
.prose h2 { margin:48px 0 12px; }
.prose li { margin:4px 0; }
.prose h1 + p { margin-top:0; }
.prose :not(pre) > code { overflow-wrap:anywhere; }
.formula, .cite { margin:12px 0 12px 1.5em; color:var(--ink); }
form div { margin:0 0 18px; }
form label { display:block; color:var(--ink); margin-bottom:4px; }
input, select, textarea { font:inherit; font-size:17px; color:var(--ink); background:var(--paper); border:1px solid var(--rule); border-radius:3px; padding:6px 10px; }
select { max-width:100%; }
input[type="file"] { border:0; padding:0; }
textarea { width:100%; max-width:38em; min-height:8em; }
.helptext { display:block; font-size:15px; color:var(--muted); margin-top:4px; }
progress { width:100%; max-width:38em; accent-color:var(--ink); }
.error, .errorlist { color:var(--red); }
.errorlist { padding-left:1.2em; }
.done { color:var(--ink); border-left:2px solid var(--rule); padding-left:12px; }

/* My submissions */
.name-form { margin:16px 0 0; }
.name-form .name-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0; }
.name-form input { flex:0 1 22em; min-width:0; }
section.mine { margin-top:48px; }
section.mine details { margin-top:6px; font-size:15px; }
section.mine summary { cursor:pointer; color:var(--muted); }

/* the Documentation pages */
.docs .bots { font-size:16px; color:var(--muted); margin:0 0 24px; }
.docs details { margin:12px 0 0; }
.docs summary { cursor:pointer; color:var(--muted); }
.docs summary:hover, .docs details[open] > summary { color:var(--ink); }
.docs h2 code { font-size:.9em; }
.docs code.hash { white-space:nowrap; }

/* the review page */
ol.queue { list-style:none; padding:0; margin:0; max-width:46em; }
ol.queue > li { padding:16px 0; border-bottom:1px solid var(--rule); }
ol.queue > li:first-child { padding-top:0; }
ol.queue .what { margin:0 0 8px; font-size:16px; color:var(--muted); }
ol.queue .what a { color:var(--ink); }
ol.queue .statement { margin:0 0 8px; color:var(--ink); }
ol.queue .acts { display:flex; gap:16px; flex-wrap:wrap; align-items:baseline; margin-top:10px; }
ol.queue form { margin:0; display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; }
ol.queue details { margin-top:10px; font-size:16px; }
ol.queue summary { cursor:pointer; color:var(--muted); }
ol.queue details form { flex-direction:column; align-items:flex-start; margin-top:8px; }
ol.queue ul.links { list-style:none; padding:0; margin:8px 0; font-size:16px; overflow-wrap:anywhere; }
ol.queue .host { color:var(--ink); margin-right:8px; }
ol.queue .fail { margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }

footer { margin-top:80px; padding-top:14px; border-top:1px solid var(--rule); font-size:15px; color:var(--muted); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }

@media (max-width:760px) {
  .page { padding:0 16px 72px; }
  .head { margin-top:32px; }
  h1 { font-size:34px; }
  .facts { grid-template-columns:repeat(2, max-content); column-gap:36px; }
  .facts dd { font-size:21px; }
  .n-facts div:last-child { grid-column:1 / -1; }
  table.words-t thead { display:none; }
  table.words-t tr { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; border-bottom:1px solid var(--rule); min-height:58px; align-content:center; }
  table.words-t td { border:0; height:auto; padding:0; }
  table.words-t td.id { grid-column:1; padding-top:8px; }
  table.words-t td.len { grid-column:2; text-align:right; padding-top:8px; }
  table.words-t td.by { grid-column:1; color:var(--muted); font-size:15px; padding-bottom:8px; }
  table.words-t td.date { grid-column:2; color:var(--muted); font-size:15px; text-align:right; padding-bottom:8px; }
  table.words-t td.save, table.words-t td.rep, table.words-t td.oth { display:none; }
  table.bounds tr { display:grid; grid-template-columns:1fr auto; border-bottom:1px solid var(--rule); padding:8px 0; }
  table.bounds td { border:0; padding:0 !important; }
  table.bounds tr.gap td.v { padding-right:.4em !important; }
  table.bounds tr.grp, table.bounds tr.gap { display:block; padding:14px 0 6px; }
  table.bounds td:nth-child(2) { grid-column:1 / 3; grid-row:2; font-size:15px; }
  .begins { grid-template-columns:1fr; row-gap:4px; }
  table.sum td.n { padding-right:14px; }
  table.checks thead { display:none; }
  table.checks tr { display:grid; grid-template-columns:1fr auto; padding:10px 0; border-bottom:1px solid var(--rule); }
  table.checks td { border:0; padding:0; }
  table.checks td:nth-child(3) { grid-column:1; }
  table.checks td:nth-child(4) { grid-column:2; text-align:right; }
  .sha { grid-template-columns:1fr; }
  .intro { font-size:18px; margin-top:32px; }
  table.state thead { display:none; }
  table.state tr { display:grid; grid-template-columns:2.2em 1fr auto; grid-template-areas:"n up up" "n lo gap" "n by by"; padding:10px 0; border-bottom:1px solid var(--rule); }
  table.state td { border:0; padding:1px 0; }
  table.state td.n { grid-area:n; }
  table.state td.up { grid-area:up; }
  table.state td.lo { grid-area:lo; color:var(--muted); font-size:15px; text-align:left; }
  table.state td.lo:not(:empty):not(:has(.m))::before { content:"at least "; }
  table.state td.gap { grid-area:gap; text-align:right; color:var(--muted); font-size:15px; }
  table.state td.gap:not(:has(.m))::before { content:"gap "; }
  table.state td.by { grid-area:by; color:var(--muted); font-size:15px; }
  table.state td.when { display:none; }
  table.changes td.d { width:auto; display:block; padding-bottom:0; border:0; }
  table.changes tr { display:block; border-bottom:1px solid var(--rule); padding:6px 0; }
  table.changes td { display:block; border:0; padding:2px 0; }
  table.board th:nth-child(1), table.board td:nth-child(1), table.board th:nth-child(5), table.board td:nth-child(5) { display:none; }
  table.board td, table.board th { padding-right:10px; }
  table.blist thead { display:none; }
  table.blist tr { display:block; padding:10px 0; border-bottom:1px solid var(--rule); }
  table.blist td { display:block; border:0; padding:2px 0; }
  table.blist td.r { text-align:left; }
  table.blist td.yr, table.blist td.k { display:inline-block; margin-right:14px; color:var(--muted); font-size:15px; }
  table.blist td.coef .approx { display:inline; margin-left:8px; }
  table.blist td.f { overflow-x:auto; }
}
@media (prefers-reduced-motion: reduce) { * { transition:none !important; } }
.hidden-heading { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* Lean batches */
ol.batch-claims { list-style:none; padding:0; margin:10px 0 0; max-width:46em; }
ol.batch-claims > li { padding:10px 0; border-top:1px solid var(--rule); overflow-wrap:anywhere; }
ol.batch-claims > li:first-child { border-top:0; padding-top:4px; }
section > ol.batch-claims > li:first-child { border-top:1px solid var(--ink); padding-top:10px; }
ol.batch-claims .statement, ol.batch-claims .what { margin:0 0 4px; }
ol.batch-claims .what { font-size:16px; color:var(--muted); }
ol.batch-claims .what a, ol.batch-claims .what strong { color:var(--ink); font-weight:500; }
ol.batch-claims details { margin-top:6px; }
.claim-ordinal { color:var(--muted); font-variant-numeric:tabular-nums; margin-right:2px; }
.claim-message { margin:4px 0 0; font-size:16px; max-width:38em; white-space:pre-wrap; }
ol.queue ol.batch-claims { margin:12px 0 0 0; padding-left:18px; border-left:1px solid var(--rule); }
ul.batch-claims { list-style:none; padding:0; margin:4px 0; font-size:15px; color:var(--muted); }
.batch-facts { margin:28px 0 0; max-width:46em; }
.batch-facts dd { margin:0; overflow-wrap:anywhere; }
.batch-facts strong { color:var(--ink); font-weight:500; }
table.attempts { max-width:46em; }
table.attempts td:nth-child(2) { overflow-wrap:anywhere; }
.batch-notice { margin:10px 0 0; max-width:36em; }
fieldset.choose { border:0; padding:0; margin:8px 0; display:flex; flex-direction:column; gap:4px; }
fieldset.choose legend { color:var(--muted); font-size:15px; padding:0; margin-bottom:2px; }
fieldset.choose label { display:block; margin:0; font-size:16px; }
ol.queue .acts > form, ol.queue form > p, ol.queue form label, ol.queue form fieldset { min-width:0; max-width:100%; }
ol.queue form select { max-width:100%; }
ol.queue .what code { word-break:break-all; }
@media (max-width:760px) {
  ol.queue ol.batch-claims { padding-left:10px; }
  .batch-facts { grid-template-columns:1fr; }
  /* a bound page's proof checks (h3 + dl.facts): a long version or commit wraps in its column, never widens the page */
  h3 + dl.facts { grid-template-columns:repeat(2, minmax(0, max-content)); }
  h3 + dl.facts dd { overflow-wrap:anywhere; min-width:0; }
  h3 + dl.facts code { word-break:break-all; }
}
@media (max-width:480px) {
  h3 + dl.facts { grid-template-columns:minmax(0, 1fr); }
  /* the attempts stack, each cell under its own label, so a result's name wraps at its commas, never inside */
  table.attempts thead { display:none; }
  table.attempts tr { display:block; padding:10px 0; border-bottom:1px solid var(--rule); }
  table.attempts td { display:block; border:0; padding:2px 0; }
  table.attempts td::before { content:attr(data-label) " "; color:var(--muted); font-size:15px; }
}

/* ==================================================================== Lean batch submission form
   The batch form (lean/templates/lean/submit_batch.html and batch/, lean/static/lean/batch.js) and the headings of
   the /lean directions. A statement list with rules, not cards; the vermilion only for problems, a moved interval end
   and the reading mark. */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.prose h2[id], .prose h3[id] { scroll-margin-top:16px; }
.prose h3[id] { font-weight:500; font-size:19px; color:var(--ink); margin:34px 0 8px; }
.prose h3[id] code { font-size:16px; }
.prose h3[id] + p { margin-top:0; }
code.hash { overflow-wrap:anywhere; word-break:break-all; }

.batch { max-width:46em; }
.batch [hidden] { display:none !important; }
.batch { overflow-wrap:anywhere; }  /* names from the source can be long words */
.batch table, .batch .ivl-l { overflow-wrap:normal; }
.batch-title { margin:44px 0 16px; flex-wrap:wrap; gap:6px 24px; }
.batch-title .step-n { margin:0; }
.batch .lede { max-width:38em; }
.batch-form { margin-top:30px; }
form:where(.batch-form) div, form:where(.batch-form) section { margin:0; }  /* undoes form div and section, nothing more */
.batch-form .field { margin:0 0 16px; }
.batch-form .error { margin:6px 0 0; font-size:16px; }
.batch summary { cursor:pointer; color:var(--muted); }
.batch summary:hover { color:var(--ink); }
.batch details[open] > summary { color:var(--ink); margin-bottom:8px; }
.batch button:disabled, .batch button:disabled:hover { color:var(--muted); border-color:var(--rule); background:none; cursor:not-allowed; }
.icon { display:inline-block; width:.82em; height:.82em; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.06em; margin-right:.38em; flex:none; }
.icon .fill { fill:currentColor; stroke:none; }

/* the inputs */
.batch-inputs { padding:24px 0 4px; border-top:1px solid var(--ink); }
.batch-inputs input[type="text"] { width:100%; max-width:34em; }
.batch-form .repo-input { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.batch-form .repo-input input { flex:1 1 18em; }
.batch-form .repo-input select { flex:0 1 14em; min-width:0; }
.batch-form .field.ref { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px 16px; }
.batch-form .ref-input { flex:1 1 16em; max-width:24em; }
.batch-form .ref-input input { width:100%; }
.batch-form .field.ref > button { margin-top:31px; }
.batch-activity { min-height:1.5em; margin:2px 0 0; font-size:15px; color:var(--muted); }
.batch-reading { margin-right:12px; }
.batch-reading::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--red); margin-right:8px; vertical-align:1px; animation:batch-pulse 1.2s ease-in-out infinite; }
@keyframes batch-pulse { 50% { opacity:.25; } }
.batch-preview, .batch-confirm { transition:opacity .2s .15s; }
.batch-preview.is-reading, .batch-confirm.is-reading { opacity:.55; }
.batch-preview.is-stale .batch-verdict { display:none; }

/* the batch's status */
.batch-preview { margin-top:14px; }
.batch-head { padding-top:10px; }
.batch-status { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 26px; margin:0; font-size:21px; font-weight:500; }
.batch-status:focus { outline:none; }
.batch-status:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.batch-status .st { color:var(--ink); }
.batch-status.tone-bad .st { color:var(--red); }
.batch-status .st-commit, .batch-status .st-count { font-size:17px; font-weight:400; color:var(--muted); }
.batch-status code { font-size:15px; }
.batch-verdict { margin:6px 0 0; font-size:16px; color:var(--muted); max-width:40em; }
.batch-alert, .batch-note { margin:14px 0 0; padding:6px 0 6px 12px; border-left:2px solid var(--ink); font-size:16px; max-width:40em; }
.batch-alert .retry { margin-left:6px; font-size:15px; padding:1px 12px; }
.batch-refusal { margin:18px 0 6px; padding:2px 0 2px 16px; border-left:3px solid var(--red); }
.batch-refusal:focus { outline:none; }
.batch-refusal:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.batch-refusal h2 { color:var(--red); font-size:20px; margin:0 0 4px; }
.batch-refusal ul.problems { margin-top:8px; }
.batch-refusal ul.problems > li { border-left:0; padding-left:0; }
.batch-refusal .field-error .p-head a { color:var(--ink); }
.fixture-note { margin:0 0 18px; }
/* disclosures: one per line, each panel directly under its summary, so opening one never moves another */
.batch-form .claim-more { margin-top:12px; font-size:16px; }
.batch-form .claim-more { margin-top:10px; }
.claim-more details + details { margin-top:4px; }
.claim-more details[open] { margin-bottom:12px; }
.batch-empty { margin-top:6px; max-width:40em; }
.batch-empty p { margin:0 0 10px; }
.batch-empty .batch-links { margin-top:12px; }
ol.steps { margin:0 0 14px; padding-left:1.4em; }
ol.steps li { margin:6px 0; }
.batch-links, .p-links { display:flex; flex-wrap:wrap; gap:4px 22px; font-size:16px; }

/* problems: a rule at the left, vermilion when it blocks */
ul.problems { list-style:none; margin:18px 0 0; padding:0; max-width:42em; }
ul.problems > li { margin:0 0 12px; padding:2px 0 2px 14px; border-left:2px solid var(--rule); }
ul.problems > li.p-error { border-left-color:var(--red); }
ul.problems > li.p-wait { border-left-color:var(--ink); }
ul.problems.in-claim { margin-top:14px; }
.problem p { margin:0; }
.p-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px; color:var(--ink); }
.p-head strong { font-weight:500; }
.problem.p-error .p-head .icon { color:var(--red); }
.p-code { font-size:13px; color:var(--muted); }
.p-where { font-size:15px; color:var(--muted); }
.problem .p-text { margin-top:4px; font-size:16px; overflow-wrap:anywhere; }
.problem .p-links { margin-top:6px; font-size:15px; }
.problem .p-retry { margin-top:8px; font-size:15px; display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; }
.p-retry .retry { font-size:15px; padding:1px 14px; }
.p-when { color:var(--muted); }

/* the statements: a numbered list with rules */
ol.claims { list-style:none; margin:24px 0 0; padding:0; border-top:1px solid var(--ink); }
ol.claims > li.claim { display:grid; grid-template-columns:2.2em minmax(0, 1fr); column-gap:12px; padding:22px 0 24px; border-bottom:1px solid var(--rule); }
.claim-n { color:var(--muted); font-size:16px; font-variant-numeric:tabular-nums; padding-top:2px; }
.claim-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 16px; margin:0; font-size:17px; font-weight:400; }
.claim-name { font-size:16px; color:var(--ink); overflow-wrap:anywhere; }
.claim-line { font-size:15px; color:var(--muted); }
.claim-tags { display:flex; flex-wrap:wrap; gap:2px 20px; margin:4px 0 0; font-size:15px; }
.tag { color:var(--muted); white-space:nowrap; }
.tag.ok, .tag.manual { color:var(--ink); }
.tag.bad { color:var(--red); }
.claim-statement { margin:12px 0 0; font-size:20px; color:var(--ink); overflow-x:auto; overflow-y:hidden; }
.claim-statement .katex { font-size:1.04em; }
.claim-why, .claim-link, .claim-more-targets { margin:10px 0 0; font-size:16px; max-width:40em; }
.claim-note { margin:8px 0 0; font-size:16px; max-width:40em; }
.claim-note .icon { color:var(--muted); }
.claim-note strong { font-weight:500; color:var(--ink); }
.claim-note .note-link { font-size:15px; color:var(--muted); white-space:nowrap; }
.claim-note .note-link code { font-size:13px; }
.claim-note.bad, .claim-note.bad .icon { color:var(--red); }
dl.claim-points { display:flex; flex-wrap:wrap; gap:4px 34px; margin:16px 0 0; }
dl.claim-points div { display:flex; gap:10px; align-items:baseline; }
dl.claim-points dt { font-size:15px; color:var(--muted); }
dl.claim-points dd { margin:0; color:var(--ink); font-variant-numeric:tabular-nums; }
.claim-authors { margin:14px 0 0; font-size:16px; color:var(--muted); }
.claim-authors [data-authors-for] { color:var(--ink); }
.claim-more .table-scroll { margin-bottom:6px; }
table.claim-values { width:auto; font-size:15px; }
table.claim-values td, table.claim-values th { padding:6px 22px 6px 0; }
table.claim-values td:last-child, table.claim-values th:last-child { padding-right:0; }
.claim-more .small { margin:6px 0 0; }
.claim-more .authors label.check { display:flex; gap:8px; align-items:baseline; color:var(--body); margin-bottom:8px; }
.claim-more .authors textarea { min-height:4.2em; max-width:28em; font-size:16px; }

/* snippets with a copy control; line numbers are not part of the copied text */
.snippet { position:relative; margin:12px 0 0; max-width:42em; }
.snippet pre { margin:0; padding-right:5em; }
.snippet .copy { position:absolute; top:7px; right:7px; font-size:14px; padding:0 10px; background:var(--paper); border-color:var(--rule); color:var(--muted); }
.snippet .copy:hover { color:var(--ink); border-color:var(--ink); }
.snippet.inline pre { padding-top:8px; padding-bottom:8px; }
.excerpt pre { padding-left:4.2em; max-height:22em; overflow:auto; }
.excerpt .ln::before { content:attr(data-n); display:inline-block; width:3em; margin-left:-3.6em; margin-right:.6em; text-align:right; color:var(--muted); -webkit-user-select:none; user-select:none; }
dl.kv { display:grid; grid-template-columns:max-content minmax(0, 1fr); gap:6px 18px; margin:0; font-size:15px; }
dl.kv div { display:contents; }
dl.kv dt { color:var(--muted); }
dl.kv dd { margin:0; color:var(--ink); overflow-wrap:anywhere; }
dl.kv .snippet { margin:0; }

/* an interval now and after, on one line: grey now, ink after over it, new values above and current ones below */
figure.ivl { margin:18px 0 0; max-width:36em; }
.ivl-h { display:flex; flex-wrap:wrap; justify-content:space-between; gap:2px 16px; margin:0 0 6px; font-size:15px; color:var(--muted); }
.ivl-name { color:var(--ink); }
.ivl-r { display:grid; grid-template-columns:3.3em minmax(0, 1fr); column-gap:10px; height:20px; }
.ivl-r.line { height:12px; }
.ivl-k { font-size:14px; line-height:18px; color:var(--muted); }
.ivl-t { position:relative; display:block; height:100%; }
.ivl-r.tall, .ivl-r.tall-wide { height:38px; }
.ivl-axis { position:absolute; top:5.5px; left:0; right:0; height:1px; background:var(--rule); }
.ivl-bar { position:absolute; top:2px; height:8px; left:var(--a); width:calc(var(--b) - var(--a)); min-width:2px; background:var(--band); border-radius:1px; }
.ivl-bar.new { background:var(--ink); }
.ivl-bar.open { -webkit-mask-image:linear-gradient(to right, #000 calc(100% - 3.5em), transparent); mask-image:linear-gradient(to right, #000 calc(100% - 3.5em), transparent); }
.ivl-bar.point { width:9px; height:9px; top:1.5px; margin-left:-4.5px; border-radius:50%; }
.ivl-l { position:absolute; top:1px; left:var(--x); transform:translateX(calc(-1 * var(--x))); font-size:14px; line-height:18px; color:var(--muted); white-space:nowrap; font-variant-numeric:lining-nums tabular-nums; }
.ivl-l.l2 { top:19px; }
.ivl-r.above .ivl-k { align-self:end; }
.ivl-r.above .ivl-l { top:auto; bottom:1px; }
.ivl-r.above .ivl-l.l2 { bottom:19px; }
.ivl-l.moved { color:var(--ink); }
.ivl-l.narrow { display:none; }
.ivl-note { margin:2px 0 0; font-size:15px; color:var(--muted); }
.ivl-none { margin:0; font-size:16px; }
.ivl-none .icon { color:var(--red); }

/* authors, notes, the combined effect and the submit button */
.batch-authors { margin-top:50px; }
.batch-authors textarea { min-height:4.6em; max-width:30em; }
.batch-notes { margin-top:20px; font-size:16px; }
.batch-notes .field { margin-top:12px; }
.batch-confirm { margin-top:50px; padding-top:22px; border-top:1px solid var(--ink); }
.batch-confirm > p { max-width:40em; }
table.combined { width:auto; min-width:55%; font-size:16px; }
table.combined td, table.combined th { padding:8px 22px 8px 0; }
table.combined td:last-child, table.combined th:last-child { padding-right:0; }
table.combined tr.sub td { padding-top:0; font-size:14px; color:var(--muted); border-bottom:1px solid var(--rule); }
dl.totals { display:grid; grid-template-columns:max-content max-content; gap:4px 30px; margin:22px 0 0; align-items:baseline; }
dl.totals div { display:contents; }
dl.totals dt { font-size:16px; color:var(--muted); }
dl.totals dd { margin:0; font-size:22px; color:var(--ink); text-align:right; font-variant-numeric:tabular-nums; }
.batch-confirm .bad { color:var(--red); }
.caveat { margin:20px 0 0; padding-left:12px; border-left:2px solid var(--ink); font-size:16px; }
.credits { margin-top:24px; font-size:16px; }
.credits p { margin:0; }
.credits [data-authors-shared], .credits [data-authors-for] { color:var(--ink); }
ul.own-lists { list-style:none; margin:4px 0 0; padding:0; }
.conditions { margin:14px 0 0; font-size:16px; color:var(--muted); }
.batch-paper { margin:6px 0 0; font-size:16px; max-width:40em; overflow-wrap:anywhere; }
.batch-confirm .permission { margin:22px 0 0; font-size:16px; max-width:42em; }
.batch-confirm .permission label.check { display:flex; gap:8px; align-items:baseline; color:var(--ink); }
.paper-withdraw { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:baseline; margin:10px 0 0; font-size:16px; }
.paper-withdraw input { flex:1 1 16em; max-width:28em; }
.submit-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 20px; margin-top:26px; }
.batch button.primary { padding:7px 22px; background:var(--ink); border-color:var(--ink); color:var(--paper); }
.batch button.primary:hover { background:var(--red); border-color:var(--red); }
.batch button.primary:disabled, .batch button.primary:disabled:hover { background:none; color:var(--muted); border-color:var(--rule); }
.submit-why { margin:0; font-size:15px; color:var(--muted); }

@media (max-width:760px) {
  .batch-title { margin-top:32px; }
  .batch-status { font-size:19px; gap:2px 18px; }
  .batch-form .field.ref > button { margin-top:0; }
  .batch-form .ref-input { max-width:none; }
  ol.claims > li.claim { grid-template-columns:1.5em minmax(0, 1fr); column-gap:8px; }
  .claim-statement { font-size:18px; }
  .ivl-r { grid-template-columns:2.9em minmax(0, 1fr); column-gap:8px; }
  .ivl-l.narrow { display:block; }
  .ivl-l.wide { display:none; }
  .ivl-r.tall-wide { height:20px; }
  .ivl-r.tall-narrow { height:38px; }
  dl.kv { grid-template-columns:minmax(0, 1fr); row-gap:0; }
  dl.kv dd { margin-bottom:8px; }
  dl.totals { grid-template-columns:minmax(0, 1fr) max-content; }
  table.combined { min-width:0; }
  .snippet .copy { position:static; display:block; margin:6px 0 0 auto; }
  .snippet pre { padding-right:18px; }
}
@media (prefers-reduced-motion: reduce) { .batch-reading::before { animation:none; } }
/* ==================================================================== end of the Lean batch submission form */
