.brackets-viewer{--primary-background:#fff;--secondary-background:#eceff1;--match-background:var(--primary-background);--font-color:#212529;--win-color:#50b649;--loss-color:#e61a1a;--label-color:grey;--hint-color:#a7a7a7;--connector-color:#9e9e9e;--border-color:#d9d9d9;--border-hover-color:#b6b5b5;--border-selected-color:#3c3c3c;--text-size:12px;--round-margin:40px;--match-width:150px;--match-horizontal-padding:8px;--match-vertical-padding:6px;--connector-border-width:2px;--match-border-width:1px;--match-border-radius:.3em;--participant-image-size:1em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.brackets-viewer:empty{display:none}.brackets-viewer{background:var(--primary-background);color:var(--font-color);font-size:var(--text-size);text-align:left;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-start;margin:0 auto;padding:10px 50px;display:flex;overflow:auto}.brackets-viewer *,.brackets-viewer :after,.brackets-viewer :before{box-sizing:border-box}.brackets-viewer h1,.brackets-viewer h2,.brackets-viewer h3{margin-bottom:.5em;font-weight:500;line-height:1.2}.brackets-viewer h1{margin-top:30px;margin-bottom:20px;font-size:2em}.brackets-viewer h2{font-size:1.7em}.brackets-viewer h3{text-align:center;background:var(--secondary-background);white-space:nowrap;text-overflow:ellipsis;width:var(--match-width);padding:10px 0;font-size:1.1em;overflow:hidden}.brackets-viewer .round-robin{flex-wrap:wrap;justify-content:center;row-gap:24px;display:flex}.brackets-viewer .round-robin h1{flex-basis:100%}.brackets-viewer .round-robin h2{text-align:center}.brackets-viewer .round-robin .group:not(:last-of-type){margin-right:var(--round-margin)}.brackets-viewer .round-robin .group h2{margin:0 0 25px}.brackets-viewer .round-robin .group table{color:#a7a7a7;border-collapse:collapse;margin:30px 0 20px;font-size:1em}.brackets-viewer .round-robin .group th{text-align:start;cursor:help;border-bottom:var(--match-border-width) solid var(--border-color);font-weight:400}.brackets-viewer .round-robin .group td.hover{background:var(--secondary-background)}.brackets-viewer .round-robin .group th,.brackets-viewer .round-robin .group td{padding:5px}.brackets-viewer .round-robin .group td:nth-of-type(2),.brackets-viewer .round-robin .group td:last-of-type{color:var(--font-color);font-weight:500}.brackets-viewer .round-robin .round{width:fit-content;margin:0 auto}.brackets-viewer .bracket h2{color:gray;font-size:1.5em}.brackets-viewer .bracket .rounds{display:flex}.brackets-viewer .bracket .rounds:not(:last-of-type){margin-bottom:15px}.brackets-viewer .bracket .rounds .round{flex-direction:column;display:flex}.brackets-viewer .bracket .rounds .round:not(:last-of-type){margin-right:var(--round-margin)}.brackets-viewer .match{width:var(--match-width);flex:1;align-items:center;margin:10px 0;display:flex;position:relative}.brackets-viewer .match.connect-next:after{content:"";right:calc(-1*var(--round-margin)/2);width:calc(var(--round-margin)/2);border-right:var(--connector-border-width) solid var(--connector-color);height:50%;display:block;position:absolute}.brackets-viewer .match.connect-next:nth-of-type(odd):after{border-top:var(--connector-border-width) solid var(--connector-color);top:50%}.brackets-viewer .match.connect-next:nth-of-type(2n):after{border-bottom:var(--connector-border-width) solid var(--connector-color);top:0}.brackets-viewer .match.connect-next.straight:after{width:var(--round-margin);right:calc(-1*var(--round-margin));border-bottom:var(--connector-border-width) solid var(--connector-color);border-top:unset;border-right:unset;top:0}.brackets-viewer .opponents{border:var(--match-border-width) solid var(--border-color);border-radius:var(--match-border-radius);background:var(--match-background);width:100%;position:relative}.brackets-viewer .opponents:hover{border:1px solid var(--border-hover-color)}.brackets-viewer .opponents.popover-selected{border:1px solid var(--border-selected-color)}.brackets-viewer .opponents>span{color:var(--label-color);background:var(--primary-background);border-radius:3px;padding:0 5px;font-size:.8em;position:absolute;top:-10px}.brackets-viewer .opponents>span:first-of-type{left:3px}.brackets-viewer .opponents>span:nth-of-type(2){right:3px}.brackets-viewer .opponents.connect-previous:before{content:"";left:calc(-1*var(--round-margin)/2);width:calc(var(--round-margin)/2);border-bottom:var(--connector-border-width) solid var(--connector-color);height:50%;display:block;position:absolute}.bracket:nth-of-type(2) .brackets-viewer .opponents.connect-previous .opponents.connect-previous.straight:before,.bracket:first-of-type .brackets-viewer .opponents.connect-previous .opponents.connect-previous.straight:after{border-left:unset;left:var(--round-margin);width:var(--round-margin)}.bracket:first-of-type .brackets-viewer .opponents.connect-previous.straight:before,.bracket:nth-of-type(2) .brackets-viewer .opponents.connect-previous.straight:after{content:unset}.brackets-viewer .participant{padding:2px var(--match-horizontal-padding);background:var(--match-background);justify-content:space-between;display:flex}.brackets-viewer .participant.hover{background:var(--secondary-background)!important}.brackets-viewer .participant:first-of-type{border-top-left-radius:var(--match-border-radius);border-top-right-radius:var(--match-border-radius);padding-top:var(--match-vertical-padding);border-bottom:none}.brackets-viewer .participant:nth-of-type(2){border-bottom-left-radius:var(--match-border-radius);border-bottom-right-radius:var(--match-border-radius);padding-bottom:var(--match-vertical-padding);border-top:none}.brackets-viewer .participant .name{white-space:nowrap;text-overflow:ellipsis;width:80%;overflow:hidden}.brackets-viewer .participant .name.hint{color:var(--hint-color)}.brackets-viewer .participant .name>img{width:var(--participant-image-size);height:var(--participant-image-size);-o-object-fit:cover;object-fit:cover;vertical-align:middle;border-radius:4px;margin-right:4px;position:relative;bottom:1px}.brackets-viewer .participant .name>span{color:var(--hint-color);font-size:.9em;font-weight:initial}.brackets-viewer .participant .result{text-align:center;width:15%;margin-left:10px}.brackets-viewer .participant.win .name{font-weight:700}.brackets-viewer .participant.win .result{color:var(--win-color)}.brackets-viewer .participant.loss .result{color:var(--loss-color)}.brackets-viewer [popover]{padding:0 14px 10px}.brackets-viewer [popover] h4{margin-bottom:24px;font-size:1.1em}.brackets-viewer [popover] .match:not(:last-of-type){margin-bottom:20px}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--ink:#17202a;--muted:#697386;--line:#d9dee7;--panel:#fff;--accent:#0f766e;--accent-dark:#115e59;--danger:#b42318;--gold:#b7791f}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);max-width:100%;margin:0;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:var(--accent-dark);font-weight:700;text-decoration:none}button,input{font:inherit}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:40px;padding:0 14px;font-weight:700}button:hover{background:var(--accent-dark)}button:disabled{cursor:default;background:#9aa6b2}.secondaryButton{color:var(--ink);background:#eef2f7}.secondaryButton:hover{background:#dfe6ef}.dangerButton{background:var(--danger)}.dangerButton:hover{background:#8f1d14}input{border:1px solid var(--line);border-radius:6px;width:100%;min-height:40px;padding:8px 10px}label{color:var(--muted);gap:6px;font-size:.9rem;font-weight:700;display:grid}h1,h2,p{margin:0}.page{width:min(1480px,100%);margin:0 auto;padding:24px}.narrow{width:min(480px,100%)}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;display:flex}.topbar h1{font-size:clamp(1.2rem,5vw,2.5rem)}.topbar p,.muted{color:var(--muted)}.tabs{border:1px solid var(--line);background:#e8edf3;border-radius:8px;gap:4px;max-width:100%;margin-bottom:18px;padding:4px;display:flex;overflow-x:auto}.tabs button{min-height:26px;font-size:.7rem}.tabs button:hover,.tabs button.active{background:var(--panel);color:var(--ink)}.topActions,.winnerButtons,.setupControls,.sequenceWinnerButtons{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.panel,.empty,.champion{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;overflow-x:hidden}.empty{gap:8px;display:grid}.champion{background:#fff8e8;border-color:#f2c46d;gap:4px;display:grid}.champion span{color:var(--gold);text-transform:uppercase;font-size:.78rem;font-weight:700}.champion strong{font-size:1.7rem}.stack{gap:18px;display:grid}.statusStrip{grid-template-columns:minmax(220px,1.2fr) minmax(120px,.45fr) minmax(260px,1fr);gap:12px;display:grid}.statusStrip>div{background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:6px;min-width:0;padding:14px;display:grid}.statusStrip span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.statusStrip strong{overflow-wrap:anywhere}.progressTrack{background:#e8edf3;border-radius:999px;height:8px;overflow:hidden}.progressTrack div{background:var(--accent);height:100%}.sectionTitle{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.sectionTitle h2{font-size:.9rem}.sectionTitle span{color:var(--muted);font-size:.75rem;font-weight:700}.versus{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.versus>span{color:var(--muted);align-self:center;font-size:.8rem;font-weight:700}.teamLine{border:1px solid var(--line);border-radius:6px;min-width:0;padding:10px}.teamLine strong,.teamLine small{overflow-wrap:anywhere;display:block}.teamLine small{color:var(--muted);margin-top:3px}.winnerLine{border-color:var(--accent);background:#effcf8}.winner{color:var(--accent-dark);font-weight:700}.tableSequence{grid-template-columns:repeat(var(--table-count), minmax(220px, 1fr));gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.tableColumn{border:1px solid var(--line);background:#f8fafc;border-radius:8px;min-width:220px;overflow:hidden}.tableColumn h3{border-bottom:1px solid var(--line);text-transform:uppercase;background:#e8edf3;margin:0;padding:9px 10px;font-size:.86rem}.tableGames{flex-direction:column;gap:8px;padding:8px;display:flex}.sequenceGame{border:1px solid var(--line);background:#fff;border-radius:6px;flex-direction:column;gap:8px;height:140px;padding:9px;display:flex}.adminTableSequence .sequenceGame{height:auto;min-height:140px}.sequenceGame.pending{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.sequenceGame.completed{background:#f8fafc}.sequenceGame header{justify-content:space-between;gap:8px;display:flex}.sequenceGame header strong{font-size:.86rem}.sequenceGame header span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:700}.sequenceTeams{flex-direction:column;flex:1;gap:5px;display:flex}.sequenceTeam{border:1px solid var(--line);word-wrap:break-word;border-radius:5px;align-items:center;min-height:36px;padding:6px 7px;font-size:.83rem;font-weight:700;display:flex;overflow:hidden}.sequenceTeam.winnerLine{border-color:var(--accent);background:#effcf8}.sequenceWinnerButtons{gap:6px;display:flex}.sequenceWinnerButtons.empty{visibility:hidden}.sequenceWinnerButtons button{text-overflow:ellipsis;white-space:nowrap;flex:100%;min-width:0;min-height:30px;padding:0 8px;overflow:hidden}.bracketGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.visualBracketPanel{overflow:auto visible}.bracketCanvas{gap:18px;padding-bottom:4px;display:grid;overflow-x:auto}.bracketViewer{--match-width:220px;--round-margin:72px;--text-size:13px;scroll-behavior:smooth;min-height:320px;padding:8px 0 14px;overflow-x:auto}.bracketViewer .opponents{cursor:default}.bracketViewer .viewerGameLabel{border-bottom:1px solid var(--border-color);border-radius:var(--match-border-radius) var(--match-border-radius) 0 0;color:var(--muted);background:#f8fafc;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:6px 8px 5px;display:flex}.bracketViewer .viewerGameLabel strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;min-width:0;font-size:.82rem;overflow:hidden}.bracketViewer .viewerGameLabel span{white-space:nowrap;text-overflow:ellipsis;max-width:50%;font-size:.76rem;font-weight:700;overflow:hidden}.libraryBracket{gap:28px}.bracketBand{gap:10px;min-width:min-content;display:grid}.bracketBand h3{border-bottom:1px solid var(--line);text-transform:uppercase;margin:0;padding-bottom:8px;font-size:.9rem}.libraryRoundTitle{color:var(--muted);overflow-wrap:anywhere;text-align:left;min-width:220px;font-size:.78rem;font-weight:700;display:block}.librarySeed{font-size:.9rem}.libraryMatch{gap:6px;min-width:220px;display:grid}.libraryMatch.completed{background:#f8fafc}.libraryMatchMeta{color:var(--muted);justify-content:space-between;padding:0 2px;font-size:.76rem;display:flex}.libraryMatchMeta strong{color:var(--ink)}.bracketRounds{align-items:flex-start;gap:20px;min-width:max-content;display:flex}.bracketRound{grid-template-rows:auto auto;align-self:flex-start;gap:10px;width:240px;display:grid}.bracketRound>span{color:var(--muted);overflow-wrap:anywhere;min-height:18px;font-size:.78rem;font-weight:700}.bracketMatches{gap:var(--round-gap,16px);padding-top:var(--round-offset,0);display:grid}.matchNode{border:1px solid var(--line);background:#fff;border-radius:8px;gap:0;height:120px;padding:8px;display:grid;position:relative}.matchNode:after{background:var(--line);content:"";width:20px;height:1px;position:absolute;top:50%;right:-21px}.bracketRound:last-child .matchNode:after{display:none}.matchNode.completed{background:#f8fafc}.matchNode.placeholder{color:var(--muted);background:#f7f9fb;border-style:dashed}.matchNode header{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:.76rem;display:flex}.matchNode header strong{color:var(--ink)}.nodeTeam{border:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere;text-align:left;background:#fff;border-radius:6px;justify-content:flex-start;align-items:center;width:100%;min-height:36px;padding:7px 9px;font-weight:700;display:flex}button.nodeTeam{cursor:pointer}button.nodeTeam:hover{color:var(--ink);background:#eef7f6}.placeholder .nodeTeam{color:var(--muted);background:0 0;border-style:dashed}.teamGrid,.setupTeams{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.team,.teamForm{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px}.team div{justify-content:space-between;gap:10px;display:flex}.team span,.team p{color:var(--muted)}.team.eliminated{opacity:.55}.setup{margin-bottom:18px}.setupStack{gap:18px;display:grid}.dangerPanel{border-color:#f2b8b2}.setupControls{margin-bottom:14px}.setupControls label{width:140px}.teamForm{gap:10px;display:grid}.playerInputs{gap:8px;display:grid}.login{gap:14px;margin-top:15vh;display:grid}.notice,.error{border-radius:8px;margin-bottom:14px;padding:10px 12px;font-weight:700}.notice{color:var(--accent-dark);background:#effcf8}.error{color:var(--danger);background:#fff0ee}@media (max-width:920px){.bracketGrid,.statusStrip{grid-template-columns:1fr}}@media (max-width:640px){.page{padding:10px}.panel{padding:8px}.topbar,.sectionTitle{flex-direction:column;align-items:flex-start}.versus{grid-template-columns:1fr}.versus>span{justify-self:center}.tableSequence{grid-template-columns:repeat(var(--table-count), minmax(0, 1fr));gap:4px}.tableColumn{min-width:0}.tableColumn h3{padding:3px 5px;font-size:.55rem}.tableGames{gap:3px;padding:4px}.sequenceGame{gap:4px;height:130px;padding:4px}.adminTableSequence .sequenceGame{height:auto;min-height:130px}.sequenceGame header{flex-direction:column;align-items:flex-start;gap:1px}.sequenceGame header strong{flex-shrink:0;font-size:.6rem}.sequenceGame header span{overflow-wrap:anywhere;word-break:break-word;white-space:normal;text-align:left;font-size:.52rem;line-height:1.1}.sequenceTeams{gap:3px}.sequenceTeam{overflow-wrap:anywhere;word-break:break-word;white-space:normal;min-height:26px;padding:2px 3px;font-size:.55rem;line-height:1.1}.bracketViewer .viewerGameLabel strong{font-size:.72rem}.bracketViewer .viewerGameLabel span{font-size:.65rem}}
