/* DragonsHub — tournament report → PDF (A4).
   Page 1 is the event and its contents; every player in the report fits there,
   in two columns once there are more than a dozen, and each name jumps to that
   player's card. After that the cards flow two or three to a page.

   Colours are written out here rather than taken from the theme: the PDF has to
   look the same whether the hub is in light or dark mode, and it has to survive
   a print with "Background graphics" switched off, so the design leans on rules
   and text colour instead of large fills. */

#hubPrintDoc { display: none; }

#hubPrintDoc {
  --pr-green: #0A4A26;
  --pr-green-2: #0F6C37;
  --pr-ink: #101613;
  --pr-ink-2: #46554D;
  --pr-ink-3: #77877E;
  --pr-line: #D5DED8;
  --pr-line-2: #9FB3A8;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--pr-ink);
  background: #fff;
}

.pr-page {
  width: 210mm;
  height: 296mm;
  min-height: 0;
  margin: 0;
  flex: none;
  padding: 14mm 15mm 11mm;
  box-sizing: border-box;
  background: #fff;
  display: flex;
  flex-direction: column;
  break-after: page;
  page-break-after: always;
}
.pr-page:last-child { break-after: auto; page-break-after: auto; }
.pr-cover-note{font-size:10pt;line-height:1.5;white-space:pre-wrap;color:var(--pr-ink-2);margin:5mm 0 0}
.pr-body { flex: 1; min-height: 0; padding-top: 7mm; }

/* ── masthead, on every page ─────────────────────────────────────────────── */
.pr-brand { display: flex; align-items: center; gap: 5mm; padding-bottom: 3.5mm; border-bottom: 2pt solid var(--pr-green); }
.pr-brand img { height: 10mm; width: auto; }
.pr-brand b { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 15pt; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--pr-green); }
.pr-brand span { margin-left: auto; font-size: 7.5pt; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--pr-ink-3); }

/* ── page 1: the event ───────────────────────────────────────────────────── */
.pr-kicker { margin: 9mm 0 0; font-size: 8.5pt; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--pr-green-2); }
.pr-cover h1 { margin: 2.5mm 0 0; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 34pt; font-weight: 700; line-height: 1.02; letter-spacing: -.005em; color: var(--pr-ink); }
.pr-cover .pr-sub { margin: 2mm 0 0; font-size: 11pt; color: var(--pr-ink-2); }

.pr-meta { display: grid; grid-template-columns: 1.1fr 1fr 1fr .9fr; column-gap: 7mm; margin-top: 7mm; border-top: .75pt solid var(--pr-line); }
.pr-meta > div { padding: 2.2mm 0; border-bottom: .75pt solid var(--pr-line); }
.pr-meta small { display: block; font-size: 6.5pt; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--pr-ink-3); }
.pr-meta b { display: block; margin-top: .6mm; font-size: 9.5pt; font-weight: 500; color: var(--pr-ink); }

.pr-toc { margin-top: 8mm; }
.pr-toc h2 { margin: 0 0 2.5mm; font-size: 8.5pt; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--pr-ink-3); }
.pr-toc-cols { display: grid; gap: 0 8mm; }
.pr-toc-cols.c2 { grid-template-columns: 1fr 1fr; }
.pr-toc-cols.c3 { grid-template-columns: repeat(3, 1fr); gap: 0 7mm; }
.pr-toc ol { margin: 0; padding: 0; list-style: none; align-self: start; border-top: .75pt solid var(--pr-line-2); }
.pr-toc li { display: flex; align-items: baseline; gap: 3mm; padding: 2mm 0; border-bottom: .75pt solid var(--pr-line); break-inside: avoid; }
.pr-toc-cols.c3 li { padding: 1.6mm 0; gap: 2.5mm; }
.pr-toc-cols.c3 .nm { font-size: 9.5pt; }
.pr-toc-cols.c3 .n { width: 5.5mm; font-size: 10pt; }
.pr-toc .n { flex: none; width: 6mm; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 11pt; font-weight: 700; color: var(--pr-green-2); }
.pr-toc .nm { font-size: 10.5pt; font-weight: 600; color: var(--pr-green-2); text-decoration: none; white-space: nowrap; }
.pr-toc .mt { margin-left: auto; min-width: 0; padding-left: 4mm; font-size: 8pt; color: var(--pr-ink-3); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── the player cards, two or three to a page ────────────────────────────── */
.pr-card { border: .75pt solid var(--pr-line); border-radius: 3mm; padding: 5mm 6mm 5.5mm; break-inside: avoid; }
.pr-card + .pr-card { margin-top: 5mm; }

.pr-chead { display: flex; align-items: center; gap: 6mm; }
.pr-photo { flex: none; width: 24mm; height: 24mm; border-radius: 50%; overflow: hidden; border: .75pt solid var(--pr-line); background: #F2F5F2; display: flex; align-items: center; justify-content: center; }
.pr-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
.pr-photo span { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 17pt; font-weight: 700; color: #9AA8A0; }
.pr-ident { flex: 1; min-width: 0; }
.pr-nrow { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 3mm; }
.pr-nrow .n { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 11pt; font-weight: 700; color: var(--pr-green-2); }
.pr-nrow h2 { margin: 0; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-size: 20pt; font-weight: 700; line-height: 1.1; }
.pr-badges { margin-left: auto; display: flex; flex-wrap: wrap; gap: 2mm; }
.pr-badges span { border: .75pt solid var(--pr-green-2); border-radius: 99px; padding: .8mm 2.8mm; font-size: 7.5pt; font-weight: 600; color: var(--pr-green-2); white-space: nowrap; }
.pr-badges span.lvl { border-color: var(--pr-line-2); color: var(--pr-ink-2); }
.pr-facts { margin-top: 1.8mm; font-size: 9pt; color: var(--pr-ink-2); }
.pr-facts b { font-weight: 600; color: var(--pr-ink); }
.pr-facts i { font-style: normal; color: var(--pr-line-2); margin: 0 2mm; }

.pr-notes { margin-top: 4mm; padding-top: 4mm; border-top: .75pt solid var(--pr-line); }
.pr-note + .pr-note { margin-top: 3mm; }
.pr-note small { display: block; margin-bottom: 1mm; font-size: 7.5pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--pr-ink-3); }
.pr-note p { margin: 0; font-size: 9.5pt; line-height: 1.5; color: var(--pr-ink); white-space: pre-wrap; }
.pr-tags { display: flex; flex-wrap: wrap; gap: 1.8mm; margin-top: 3.5mm; }
.pr-tags span { border: .75pt solid var(--pr-line); border-radius: 2.5px; padding: .8mm 2.4mm; font-size: 7.5pt; color: var(--pr-ink-2); }

.pr-foot { margin-top: auto; padding-top: 5mm; display: flex; gap: 6mm; align-items: baseline; border-top: .75pt solid var(--pr-line); font-size: 7.5pt; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--pr-ink-3); }
.pr-foot .grow { margin-left: auto; }

/* Off-screen while the cards are measured for pagination. */
.pr-measure { position: absolute; left: -10000px; top: 0; visibility: hidden; }

@media print {
  @page { size: A4; margin: 0; }
  html, body { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body.hub-printing { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html.hub-report-printing, body.hub-printing { position:static!important; top:auto!important; left:auto!important; width:auto!important; height:auto!important; max-height:none!important; overflow:visible!important; }
  body.hub-printing > * { display: none !important; }
  body.hub-printing > #hubPrintDoc { display: block !important; }
  body.hub-printing #hubPrintDoc{position:static!important;inset:auto!important;margin:0!important;padding:0!important;width:210mm!important;height:auto!important;min-height:0!important}
  body.hub-printing #hubPrintDoc .pr-page{margin:0!important;box-sizing:border-box!important}
}
.pr-cover-options{border:1px solid var(--line);border-radius:9px;padding:9px 12px;max-height:36dvh;overflow:auto;flex:none}.pr-cover-options summary{cursor:pointer;font-weight:600}.pr-cover-options>label{display:grid;gap:4px;margin-top:9px;font-size:12px}.pr-cover-options input:not([type=checkbox]),.pr-cover-options textarea{box-sizing:border-box;max-width:100%;width:100%;padding:7px 9px;font:inherit;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--panel)}.pr-cover-options .pr-option{display:flex;align-items:center;gap:7px}.pr-cover-checks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px}.pr-cover-options input[type=checkbox]{width:17px!important;height:17px!important;min-height:17px!important;accent-color:var(--green)}
.pr-select{width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);box-shadow:0 20px 70px #0005;box-sizing:border-box}
.pr-select::backdrop{background:#001c19aa}.pr-select form{display:flex;flex-direction:column;max-height:calc(100dvh - 76px);gap:12px}.pr-select header,.pr-select footer,.pr-select-tools{display:flex;align-items:center;gap:8px}.pr-select header{align-items:flex-start;justify-content:space-between}.pr-select h2{margin:0;font-size:24px}.pr-select p,.pr-select small,.pr-select-tools span{color:var(--ink-2);font-size:12px}.pr-select p{margin:3px 0}.pr-select-search{font-size:12px;display:grid;gap:4px}.pr-select-list{overflow:auto;min-height:0;overscroll-behavior:contain;border-block:1px solid var(--line)}.pr-select-row{display:flex;gap:12px;padding:10px 2px;align-items:center;border-bottom:1px solid var(--line);cursor:pointer}.pr-select-row:last-child{border:0}.pr-select-row span{display:grid;gap:2px;min-width:0}.pr-select-row input[type=checkbox]{width:18px!important;height:18px!important;min-height:18px!important;flex:0 0 18px;accent-color:var(--green)}.pr-select-row[hidden]{display:none}.pr-select-tools span{margin-left:auto}.pr-select footer{justify-content:flex-end}.pr-select .btn{white-space:normal}.pr-select button:disabled{opacity:.45;cursor:default}@media(max-width:620px){.pr-select{padding:14px}.pr-select-tools{flex-wrap:wrap}.pr-select footer .btn{flex:1}.pr-select .pr-select-row{padding:9px 0}}
.pr-select input[type=search]{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--ink);font:inherit;box-sizing:border-box}.pr-select input[type=search]:focus{outline:2px solid var(--green);outline-offset:1px}
.trr-meta .trr-m[hidden]{display:none!important}
