/* Knockout tree chart (SVG) — shared by the public tournament page, the admin tournament page and print */
.kt{--dv0:#1b4db3;--dv1:#2e9b4a;--dv2:#b7791f;--dv3:#7c3aed;--ktc:var(--card,#fff);--ktl:var(--line,#dbe3f3);--kti:var(--ink,#0f1b3d);--ktm:var(--muted,#5a6a8d);--ktg:var(--gold,#f2c200);margin:.2rem 0 1rem;position:relative}
.kt-r{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.kt-bar{display:flex;justify-content:space-between;gap:.6rem 1rem;flex-wrap:wrap;align-items:center;margin-bottom:.7rem}
.kt-legend{display:flex;gap:.4rem 1rem;flex-wrap:wrap;font-size:.8rem;color:var(--ktm);align-items:center}
.kt-legend .sw{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin-right:.3rem}
.kt-legend .sw-win{background:color-mix(in srgb,var(--ktg) 55%,var(--ktc));border:1px solid var(--ktg)}
.kt-note{font-style:italic}
.kt-dvbg-0{fill:var(--dv0);background:var(--dv0)}.kt-dvbg-1{fill:var(--dv1);background:var(--dv1)}.kt-dvbg-2{fill:var(--dv2);background:var(--dv2)}.kt-dvbg-3{fill:var(--dv3);background:var(--dv3)}
.kt-switch{display:inline-flex;border:1px solid var(--ktl);border-radius:999px;overflow:hidden;background:var(--ktc)}
.kt-switch label{margin:0;padding:.35rem .9rem;font-size:.82rem;font-weight:700;color:var(--ktm);cursor:pointer;display:inline-flex;gap:.4rem;align-items:center}
.kt-r-tree:checked ~ .kt-bar label[for^="kt-tree"],.kt-r-list:checked ~ .kt-bar label[for^="kt-list"]{background:var(--blue,#1b4db3);color:#fff}
.kt-r:focus-visible ~ .kt-bar .kt-switch{outline:3px solid color-mix(in srgb,var(--blue,#1b4db3) 45%,transparent);outline-offset:2px}
.kt-scroll{overflow-x:auto;overflow-y:hidden;border:1px solid var(--ktl);border-radius:20px;background:linear-gradient(180deg,color-mix(in srgb,var(--sky,#eef3ff) 70%,var(--ktc)),var(--ktc));padding:.8rem .6rem;-webkit-overflow-scrolling:touch}
.kt-scroll:focus-visible{outline:3px solid color-mix(in srgb,var(--blue,#1b4db3) 45%,transparent);outline-offset:2px}
.kt-svg{display:block;width:100%;min-width:760px;max-width:1280px;height:auto;margin:0 auto;font-family:inherit}
.kt-col{font-size:11px;font-weight:800;letter-spacing:.12em;fill:var(--ktm)}
.kt-link{stroke:color-mix(in srgb,var(--ktm) 55%,transparent);stroke-width:2.2;stroke-linecap:round}
.kt-link.done{stroke:var(--green,#2e9b4a);stroke-width:2.6}
.kt-m{cursor:pointer;outline:none;text-decoration:none}
.kt-m:not([href]){cursor:default}
.kt-card{fill:var(--ktc);stroke:var(--ktl);stroke-width:1.5;filter:drop-shadow(0 3px 5px rgba(15,27,61,.08));transition:stroke .15s}
.kt-m:hover .kt-card,.kt-m:focus-visible .kt-card{stroke:var(--blue,#1b4db3);stroke-width:2.4}
.kt-m.live .kt-card{stroke:#e53935;stroke-width:2}
.kt-m.third .kt-card{stroke-dasharray:5 4}
.kt-hd{font-size:10.5px;font-weight:800;fill:var(--blue,#1b4db3);letter-spacing:.04em}
.kt-when{font-weight:600;fill:var(--ktm);letter-spacing:0}
.kt-ft{font-size:10px;font-weight:800;fill:var(--ktm)}
.kt-live{font-size:10px;font-weight:900;fill:#e53935}.kt-livedot{fill:#e53935}
.kt-row{fill:color-mix(in srgb,var(--sky,#eef3ff) 80%,var(--ktc))}
.kt-t.win .kt-row{fill:color-mix(in srgb,var(--ktg) 34%,var(--ktc));stroke:var(--ktg);stroke-width:1.2}
.kt-t.lose .kt-nm,.kt-t.lose .kt-sc{fill:var(--ktm)}
.kt-t.lose .kt-row{fill:color-mix(in srgb,var(--sky,#eef3ff) 45%,var(--ktc))}
.kt-nm{font-size:12.5px;font-weight:700;fill:var(--kti)}
.kt-t.win .kt-nm,.kt-t.win .kt-sc{font-weight:900}
.kt-t.tbd .kt-nm{font-style:italic;font-weight:600;fill:var(--ktm)}
.kt-src{font-size:9.5px;font-weight:800;fill:var(--ktm)}
.kt-sc{font-size:15px;font-weight:800;fill:var(--kti);font-variant-numeric:tabular-nums}
.kt-pen{font-size:10px;font-weight:700;fill:var(--ktm)}
.kt-ini{font-size:7.6px;font-weight:900}.kt-ini.muted{fill:var(--ktm);font-size:11px}
.kt-q{fill:none;stroke:var(--ktm);stroke-width:1.4;stroke-dasharray:3 2.5}
.kt-ccard{fill:color-mix(in srgb,var(--ktg) 12%,var(--ktc));stroke:var(--ktg);stroke-width:1.5;stroke-dasharray:6 4}
.kt-champ.has .kt-ccard{fill:color-mix(in srgb,var(--ktg) 38%,var(--ktc));stroke-dasharray:none;stroke-width:2.4}
.kt-cup path{fill:none;stroke:color-mix(in srgb,var(--ktg) 80%,#000);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.kt-champ.has .kt-cup path{fill:var(--ktg);stroke:#8a6d00}
.kt-chl{font-size:10px;font-weight:900;letter-spacing:.14em;fill:var(--ktm)}.kt-chn{font-size:15px;font-weight:900;fill:var(--kti)}.kt-chs{font-size:11.5px;font-style:italic;fill:var(--ktm)}
/* stacked fallback */
.kt-stack{display:none;list-style:none;margin:0;padding:0;gap:1rem}
.kt-r-list:checked ~ .kt-scroll{display:none}
.kt-r-list:checked ~ .kt-stack{display:grid}
.kt-stack>li>h4{font-family:var(--ff-display,inherit);font-style:italic;text-transform:uppercase;font-size:1.05rem;margin:.3rem 0 .5rem;color:var(--blue,#1b4db3)}
.kt-stack ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:.7rem}
.kt-sc2{display:block;border:1px solid var(--ktl);border-radius:16px;background:var(--ktc);padding:.55rem .7rem;color:inherit!important;text-decoration:none}
a.kt-sc2:hover{border-color:var(--blue,#1b4db3)}
.kt-sc2.live{border-color:#e53935}
.kt-sh{display:flex;flex-direction:column;font-size:.72rem;font-weight:800;color:var(--blue,#1b4db3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}.kt-sh small{font-weight:600;text-transform:none;letter-spacing:0;color:var(--ktm);font-size:.74rem}
.kt-sr{display:flex;align-items:center;gap:.5rem;padding:.25rem .4rem;border-radius:10px;font-size:.9rem;font-weight:600}
.kt-sr .nm{flex:1;min-width:0}.kt-sr em{font-style:normal;font-size:.7rem;font-weight:800;color:var(--ktm)}.kt-sr b{font-size:1.05rem;font-variant-numeric:tabular-nums}.kt-sr sup{font-size:.65rem;color:var(--ktm)}
.kt-sr.win{background:color-mix(in srgb,var(--ktg) 30%,var(--ktc));font-weight:800}.kt-sr.lose{color:var(--ktm)}.kt-sr.tbd .nm{font-style:italic;color:var(--ktm)}
.kt-dot{width:6px;align-self:stretch;border-radius:3px;display:inline-block}
.kt-champ-card{background:color-mix(in srgb,var(--ktg) 24%,var(--ktc));border-color:var(--ktg)}
@media (max-width:640px){.kt-svg{min-width:700px}.kt-scroll{border-radius:16px;margin-inline:-.25rem}}
@media print{
  .kt-bar .kt-switch,.kt-stack,.kt-r{display:none!important}
  .kt-scroll{display:block!important;overflow:visible;border:0;background:none;padding:0}
  .kt-svg{min-width:0;width:100%;max-width:none}
  .kt-card{filter:none}
  .kt,.kt *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
