/* Double elimination bracket (tools.d, 2026-11-04). 1px hairlines. Boxes are placed by core/double-elim.mjs layout(); each section
 * scrolls sideways inside .vt-de-scroll, never the page. The print surface hangs from <body> and only exists on the print path. */
#visu-tools.vt-double-elimination-bracket .vt-de.vt-app { grid-template-columns: minmax(0, 1fr); }
#visu-tools.vt-double-elimination-bracket .vt-de .vt-out { position: static; }
#visu-tools.vt-double-elimination-bracket .vt-de-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
#visu-tools.vt-double-elimination-bracket .vt-de-col { display: grid; gap: 12px; align-content: start; min-width: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de .vt-seg-items { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de .vt-seg-item span { min-height: 38px; padding: 7px 13px; font-size: 14px; }
#visu-tools.vt-double-elimination-bracket .vt-de-plan { font-size: 14px; color: var(--vt-muted); min-height: 1.5em; }
#visu-tools.vt-double-elimination-bracket .vt-de-sample { justify-self: start; }
#visu-tools.vt-double-elimination-bracket .vt-de-setup > .vt-actions { margin-top: 18px; }
#visu-tools.vt-double-elimination-bracket .vt-de-setup > .vt-actions + .vt-hint { margin-top: 10px !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-view:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; padding: 12px 14px; border-radius: 12px; background: var(--vt-tint); font-size: 14.5px; }
#visu-tools.vt-double-elimination-bracket .vt-de-view p { flex: 1 1 240px; }
#visu-tools.vt-double-elimination-bracket .vt-de-broken:not([hidden]) { display: block; margin-bottom: 14px; padding: 12px 14px; border: 1px solid #e0b4b4; border-radius: 12px; background: #fdf3f3; color: #7a1f1f; font-size: 14.5px; font-weight: 600; }
#visu-tools.vt-double-elimination-bracket .vt-de-confirm:not([hidden]) { display: grid; gap: 10px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--vt-line-2); border-radius: 12px; background: var(--vt-tint); font-size: 14.5px; font-weight: 600; color: var(--vt-ink); }
#visu-tools.vt-double-elimination-bracket .vt-de-confirm .vt-actions { margin: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de-empty { padding: 28px 16px; text-align: center; font-size: 15px; color: var(--vt-muted); border: 1px solid var(--vt-line); border-radius: 14px; background: var(--vt-bg); }
#visu-tools.vt-double-elimination-bracket .vt-de-result:not([hidden]) { display: grid; gap: 12px; min-width: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de-heading { font-size: 22px; font-weight: 720; color: var(--vt-ink); letter-spacing: -0.02em; overflow-wrap: anywhere; }
#visu-tools.vt-double-elimination-bracket .vt-de-sub { font-size: 14px; color: var(--vt-muted); margin-top: -6px !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-podium:not([hidden]) { display: flex; flex-wrap: wrap; gap: 4px 18px; padding: 10px 14px; border-radius: 12px; background: #e7f7ef; color: #064e3b; font-size: 15px; overflow-wrap: anywhere; }
#visu-tools.vt-double-elimination-bracket .vt-de-section { margin-top: 6px !important; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--vt-muted); }
#visu-tools.vt-double-elimination-bracket .vt-de-board { display: grid; gap: 10px; min-width: 0; }

/* Ready to play: what can be tapped now, without looking for it in the bracket. */
#visu-tools.vt-double-elimination-bracket .vt-de-livebox:not([hidden]) { display: grid; gap: 8px; }
#visu-tools.vt-double-elimination-bracket .vt-de-live { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
#visu-tools.vt-double-elimination-bracket .vt-de-liverow { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 6px; padding: 6px; border: 1px solid var(--vt-line-2); border-radius: 12px; background: #fff; min-width: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de-livenum { align-self: center; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--vt-muted); font-variant-numeric: tabular-nums; }
#visu-tools.vt-double-elimination-bracket .vt-de-vs { align-self: center; font-size: 12.5px; color: var(--vt-muted); }
#visu-tools.vt-double-elimination-bracket .vt-de-liverow .vt-de-name { min-height: 44px !important; padding: 6px 8px !important; border: 1px solid var(--vt-line) !important; border-radius: 9px !important; text-align: center !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-liverow .vt-de-name:disabled { border-color: transparent !important; }

/* Bracket: boxes in absolute positions from the core layout, links drawn behind them. */
#visu-tools.vt-double-elimination-bracket .vt-de-scroll { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; padding: 2px 2px 10px; border-radius: 12px; }
#visu-tools.vt-double-elimination-bracket .vt-de-canvas { position: relative; }
#visu-tools.vt-double-elimination-bracket .vt-de-lines { position: absolute; left: 0; top: 0; pointer-events: none; }
#visu-tools.vt-double-elimination-bracket .vt-de-colname { position: absolute; margin: 0 !important; font-size: 13px; font-weight: 700; color: var(--vt-accent-text); white-space: nowrap; }
#visu-tools.vt-double-elimination-bracket .vt-de-match { position: absolute; display: grid; grid-template-columns: 26px minmax(0, 1fr); box-sizing: border-box; border: 1px solid var(--vt-line-2); border-radius: 12px; background: #fff; overflow: hidden; }
#visu-tools.vt-double-elimination-bracket .vt-de-num { display: grid; place-items: center; font-size: 12px; font-weight: 700; color: var(--vt-muted); border-right: 1px solid var(--vt-line); font-variant-numeric: tabular-nums; }
#visu-tools.vt-double-elimination-bracket .vt-de-rows { display: grid; grid-template-rows: 1fr 1fr; min-width: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de-side + .vt-de-side { border-top: 1px solid var(--vt-line); }
#visu-tools.vt-double-elimination-bracket .vt-de-side { display: grid; min-width: 0; }
#visu-tools.vt-double-elimination-bracket .vt-de-name { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; min-height: 0 !important; width: 100% !important; margin: 0 !important; padding: 2px 8px !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important;
  color: var(--vt-ink) !important; font: 600 14px/1.2 inherit !important; letter-spacing: 0 !important; text-transform: none !important; white-space: normal !important; text-align: left !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-label { min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
#visu-tools.vt-double-elimination-bracket .vt-de-tick { flex: none; display: none; color: var(--vt-ok); font-weight: 700; }
#visu-tools.vt-double-elimination-bracket .vt-de-name:not(:disabled) { cursor: pointer; }
#visu-tools.vt-double-elimination-bracket .vt-de-name:not(:disabled):hover { background: var(--vt-tint) !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-name:disabled { opacity: 1; cursor: default; }
#visu-tools.vt-double-elimination-bracket .vt-de-name:focus-visible { outline: 2px solid var(--vt-accent-text) !important; outline-offset: -2px; }
#visu-tools.vt-double-elimination-bracket .vt-de-ghost .vt-de-name { color: var(--vt-muted) !important; font-weight: 500 !important; font-size: 13px !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-win { background: var(--vt-tint); }
#visu-tools.vt-double-elimination-bracket .vt-de-win .vt-de-name { font-weight: 760 !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-win .vt-de-tick { display: inline; }
#visu-tools.vt-double-elimination-bracket .vt-de-lose .vt-de-name { color: var(--vt-muted) !important; font-weight: 500 !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-wait, #visu-tools.vt-double-elimination-bracket .vt-de-void { background: var(--vt-bg); }
#visu-tools.vt-double-elimination-bracket .vt-de-auto { background: var(--vt-bg); border-style: dashed; }
#visu-tools.vt-double-elimination-bracket .vt-de-void { border-style: dashed; }
#visu-tools.vt-double-elimination-bracket .vt-de-tools:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
#visu-tools.vt-double-elimination-bracket .vt-de-tools .vt-hint { flex: 1 1 260px; margin: 0 !important; }
#visu-tools.vt-double-elimination-bracket .vt-de-linkbox:not([hidden]) { display: grid; gap: 6px; max-width: 640px; }
#visu-tools.vt-double-elimination-bracket .vt-de-linkbox input { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; font-size: 13px !important; color: var(--vt-muted) !important; text-overflow: ellipsis; }
@media (max-width: 860px) {
  #visu-tools.vt-double-elimination-bracket .vt-de-cols { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* ---------- print: the sheet appended to <body> by the client. Paper is whatever the printer has: the drawing scales to it. ---------- */
.vt-de-print-surface { display: none; }
@media print {
  @page vt-de-landscape { size: landscape; margin: 8mm; }
  html.vt-de-printing, html.vt-de-printing body { margin: 0 !important; padding: 0 !important; background: #fff !important; height: auto !important; min-height: 0 !important; overflow: visible !important; }
  html.vt-de-printing body > *:not(.vt-de-print-surface) { display: none !important; }
  html.vt-de-printing .vt-de-print-surface { display: block !important; color: #0a1324; font: 400 9pt/1.3 Inter, system-ui, -apple-system, "Segoe UI", Arial, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html.vt-de-printing .vt-de-page { page: vt-de-landscape; break-after: page; }
  html.vt-de-printing .vt-de-page:last-child { break-after: auto; }
  html.vt-de-printing .vt-de-phead { display: flex; justify-content: space-between; align-items: baseline; gap: 6mm; margin: 0 0 2mm; }
  html.vt-de-printing .vt-de-phead strong { font-size: 13pt; font-weight: 700; overflow-wrap: anywhere; }
  html.vt-de-printing .vt-de-phead span { font-size: 8.5pt; color: #5d6a7e; text-align: right; }
  html.vt-de-printing .vt-de-page svg { display: block; height: auto; max-width: 100%; overflow: visible; }
  html.vt-de-printing .vt-de-roster { columns: 4; column-gap: 4mm; margin: 2.5mm 0 0; padding: 0; list-style: none; font-size: 7.5pt; line-height: 1.25; }
  html.vt-de-printing .vt-de-roster li { break-inside: avoid; overflow-wrap: anywhere; }
  html.vt-de-printing .vt-de-pfoot { margin: 1.5mm 0 0; font-size: 7.5pt; color: #5d6a7e; }
}
