/* tools.2p.com.au — matched to 2p.com.au: plain, legible, no ornament.
   System faces only, rules instead of shadows, nothing that moves. */

:root { color-scheme: light; }

body {
  margin: 0;
  background: #fff;
  color: #1b1b1b;
  font: 16px/1.62 Georgia, "Nimbus Roman", "Liberation Serif", "Times New Roman", serif;
}
* { box-sizing: border-box; }
a       { color: #005ba6; }
a:hover { color: #0070d0; }

.wrap   { max-width: 980px; margin: 0 auto; padding: 0 20px; }
.narrow { max-width: 730px; }

/* ---------- masthead ---------- */
header.site { border-bottom: 3px double #bbb; margin-bottom: 24px; }
header.site .wrap { display: flex; align-items: baseline; gap: 14px;
  padding-top: 24px; padding-bottom: 12px; flex-wrap: wrap; }
.brand { font-size: 21px; font-weight: bold; text-decoration: none; color: #1b1b1b; }
.brand span { color: #0070d0; }
.tagline { font-size: 14.5px; color: #555; font-style: italic; }
header.site nav { margin-left: auto; font-family: Verdana, "DejaVu Sans", sans-serif;
  font-size: 13px; }
header.site nav a { margin-left: 12px; }

/* ---------- headings ---------- */
.hero { padding: 4px 0 18px; border-bottom: 1px solid #ddd; margin-bottom: 22px; }
.eyebrow { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 11.5px;
  letter-spacing: .08em; text-transform: uppercase; color: #666; margin: 0 0 8px; }
h1 { font-size: 27px; line-height: 1.18; margin: 0 0 10px; letter-spacing: -.01em; }
.standfirst { font-size: 16.5px; color: #333; margin: 0; max-width: 40em; }
h2 { font-size: 19px; margin: 0 0 12px; }
h3.sec { font-size: 13px; font-family: Verdana, "DejaVu Sans", sans-serif;
  letter-spacing: .07em; text-transform: uppercase; color: #666;
  border-bottom: 1px solid #ddd; padding-bottom: 5px; margin: 30px 0 12px; }
p { margin: 0 0 14px; }

/* ---------- index list ---------- */
.grid { display: block; margin: 0 0 30px; }
.card { display: block; border-bottom: 1px solid #e2e2e2; padding: 14px 0;
  text-decoration: none; color: inherit; }
.card:first-child { border-top: 1px solid #e2e2e2; }
a.card:hover { background: #f7f9fb; }
.card h3 { margin: 4px 0 4px; font-size: 17px; }
.card p { margin: 0; color: #444; font-size: 15px; }
.card .go { display: none; }

/* ---------- verification labels ---------- */
/* Plain bracketed text, not coloured pills: the point is that a reader takes
   it as a statement of fact rather than as decoration. */
.trust { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 11px;
  letter-spacing: .07em; text-transform: uppercase; font-weight: bold; }
.trust::before { content: "["; }
.trust::after  { content: "]"; }
.trust.validated   { color: #1a6b2f; }
.trust.unconfirmed { color: #8a5a00; }
.trust.indicative  { color: #8a5a00; }

.note { border: 1px solid #ddd; border-left: 4px solid #999; background: #f7f7f7;
  padding: 13px 16px; margin: 0 0 20px; font-size: 15px; }
.note.validated   { border-left-color: #1a6b2f; background: #f4f9f5; }
.note.unconfirmed,
.note.indicative  { border-left-color: #c08a1e; background: #fdf9f0; }
.note.err { border-left-color: #a02020; background: #fbf4f4; }
.note strong { display: block; margin-bottom: 4px; }

/* ---------- tool layout ---------- */
.tool { display: grid; gap: 30px; grid-template-columns: 285px 1fr; align-items: start; }
@media (max-width: 860px) { .tool { grid-template-columns: 1fr; } }
.panel { border: 1px solid #ccc; background: #fafafa; padding: 16px; }
.panel h2 { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 12px;
  letter-spacing: .07em; text-transform: uppercase; color: #555;
  border-bottom: 1px solid #ddd; padding-bottom: 6px; margin-bottom: 14px; }
form.spec { position: sticky; top: 14px; }

.field { margin: 0 0 12px; }
.field label { display: block; font-size: 14px; font-weight: bold; margin-bottom: 4px; }
.field .unit { font-weight: normal; color: #666; }
.field input, .field select { width: 100%; padding: 6px 7px;
  font: 15px Georgia, "Liberation Serif", serif; background: #fff; color: #1b1b1b;
  border: 1px solid #999; }
.field input:focus, .field select:focus { outline: 2px solid #0070d0; outline-offset: -1px; }
.field .help { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 11px;
  color: #666; margin-top: 3px; line-height: 1.5; }
.field .err { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 11px;
  color: #a02020; margin-top: 3px; font-weight: bold; }
.field.bad input, .field.bad select { border-color: #a02020; }
.subrow { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

button.go { width: 100%; padding: 8px 12px; font: bold 15px Georgia, serif;
  background: #eee; color: #1b1b1b; border: 1px solid #888; cursor: pointer; }
button.go:hover { background: #e0e8f0; border-color: #0070d0; }

/* ---------- results ---------- */
.summary { font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: 12.5px;
  color: #444; white-space: pre-wrap; margin: 0 0 16px; }
figure { margin: 0 0 20px; }
figure img { display: block; width: 100%; height: auto; border: 1px solid #c4c4c4;
  padding: 4px; background: #fff; }
figcaption { font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 11.5px;
  line-height: 1.55; color: #555; margin-top: 6px; }
pre.table { border: 1px solid #ccc; background: #fafafa; padding: 12px; overflow-x: auto;
  font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: 12px; line-height: 1.55;
  margin: 0 0 20px; }

/* ---------- manufacturability ---------- */
.fab { border: 1px solid #ccc; padding: 14px 16px; margin: 0 0 20px; }
.fab .num { font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: 12.5px;
  color: #444; margin: 0 0 10px; }
.fab .num b { color: #1b1b1b; }
.fabrow { display: flex; align-items: baseline; gap: 9px; padding: 7px 0;
  border-top: 1px solid #e2e2e2; font-size: 15px; flex-wrap: wrap; }
.mark { font-family: "DejaVu Sans Mono", Consolas, monospace; font-weight: bold; font-size: 15px; }
.mark.ok { color: #1a6b2f; } .mark.no { color: #a02020; }
.fabrow .lim { font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: 11.5px;
  color: #666; margin-left: auto; }
.verdict { margin: 12px 0 0; padding: 10px 12px; font-size: 15px; line-height: 1.5;
  border: 1px solid #ccc; }
.verdict.ok { background: #f4f9f5; border-color: #b7d6bd; }
.verdict.no { background: #fbf4f4; border-color: #ddb5b5; }

ul.cites { list-style: none; padding: 0; margin: 0 0 20px; }
ul.cites li { padding: 8px 0; border-bottom: 1px solid #e2e2e2; font-size: 14.5px; }
ul.cites .rng { font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: 11.5px;
  color: #666; display: block; margin-top: 2px; }

/* ---------- downloads, gate, offers ---------- */
.dl { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 8px; }
.dl a, .dl button { font: bold 14.5px Georgia, serif; padding: 7px 13px;
  text-decoration: none; border: 1px solid #888; color: #005ba6; background: #f4f4f4;
  cursor: pointer; }
.dl a:hover, .dl button:hover { background: #e0e8f0; border-color: #0070d0; }

.gate { border: 1px solid #ccc; background: #fafafa; padding: 15px; margin: 0 0 20px; }
.gate p { margin: 0 0 10px; font-size: 15px; color: #333; }
.gate .row { display: flex; gap: 8px; flex-wrap: wrap; }
.gate input { flex: 1 1 200px; padding: 7px; font: 15px Georgia, serif;
  background: #fff; color: #1b1b1b; border: 1px solid #999; }
.gate button { padding: 7px 15px; font: bold 15px Georgia, serif; background: #eee;
  border: 1px solid #888; cursor: pointer; }
.gate button:hover { background: #e0e8f0; border-color: #0070d0; }

.offers { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin: 24px 0 0; }
@media (max-width: 640px) { .offers { grid-template-columns: 1fr; } }
.offer { border: 1px solid #ddd; padding: 14px 16px; background: #fafafa; }
.offer h4 { margin: 0 0 5px; font-size: 15.5px; }
.offer p { margin: 0 0 8px; font-size: 14px; color: #444; line-height: 1.55; }
.offer a { font-size: 14px; }

footer.site { border-top: 3px double #bbb; margin-top: 44px; padding: 16px 0 46px;
  font-family: Verdana, "DejaVu Sans", sans-serif; font-size: 12.5px; line-height: 1.7;
  color: #555; }
footer.site p { margin: 0 0 8px; max-width: 62em; }
