#tournamentScreen[hidden]{display:none!important}
.tournament-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;min-height:0;max-width:100%;height:100%;overflow:hidden}
.tournament-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;min-width:0}
.tournament-head h2{font-size:22px;margin:0;overflow-wrap:anywhere}.tournament-head strong{font-size:18px}
.tournament-heading-copy{min-width:0}.tournament-heading-copy p{margin:8px 0 0;font-size:16px;line-height:1.5}
.tournament-columns{display:grid;grid-template-columns:minmax(260px,290px) minmax(0,1fr);gap:12px;min-height:0;min-width:0}
.tournament-roster-panel,.tournament-tree-panel{display:flex;flex-direction:column;min-height:0;min-width:0;padding:14px}
.tournament-panel-head{display:flex;min-height:38px;justify-content:space-between;align-items:center;gap:8px;flex:none;margin-bottom:12px}.tournament-panel-head h3{font-size:18px;margin:0}
.tournament-roster{overflow:auto;min-height:0;margin:0;padding:0;list-style:none;flex:1}.tournament-roster li{display:flex;flex-direction:row;align-items:center;gap:8px;border-bottom:1px solid #6f6b574d;padding:10px 8px;min-width:0}
.tournament-roster strong{font-size:16px;line-height:1.5;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-roster small{flex:none;white-space:nowrap;font-size:14px;line-height:1.5;color:#747460}.tournament-roster .eliminated{opacity:.62}
.tournament-bracket-scroll{min-width:0;min-height:0;overflow:auto;flex:1;overscroll-behavior:contain;scrollbar-gutter:stable;position:relative}
.tournament-bracket-canvas{position:relative;min-width:100%;}.tournament-connectors{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.tournament-connectors path{fill:none;stroke:#8c896e;stroke-width:var(--tournament-line-width,2px)}
.tournament-round-heading{position:absolute;top:0;width:220px;margin:0;padding:8px 0;font-size:18px;line-height:1.5;background:var(--panel,#050605);text-align:center;z-index:2}
.tournament-match{position:absolute;width:220px;height:84px;border:2px solid #8d886d;border-radius:0;background:var(--panel,#050605);color:inherit;padding:8px 12px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px;z-index:1}
.tournament-match:disabled{opacity:1;cursor:default}.tournament-match.live{border-color:#35806c;background:#102a22}.tournament-match:focus-visible{outline:3px solid #ce861f;outline-offset:2px}
.tournament-player-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;font-weight:700}.tournament-player-score{flex:none;font-variant-numeric:tabular-nums;font-weight:700}.tournament-player-name{display:flex;gap:10px;font-size:16px!important;line-height:1.4;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-player-name.winner{color:#86c696;font-weight:700}.tournament-match small{font-size:13px;line-height:1.3;white-space:normal;font-weight:400}
.tournament-champion{position:absolute;transform:translateY(-50%);width:220px;text-align:center;padding:20px 10px;border:2px solid #ad8f3d;background:#2a230f;font-size:18px;overflow-wrap:anywhere}
.tournament-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;flex-wrap:wrap}.tournament-host-controls{display:flex;gap:12px}.tournament-host-controls[hidden]{display:none}.tournament-controls p{margin:0;font-size:14px;line-height:1.5}
#tournamentCreateOptions[hidden]{display:none}.tournament-create-note{font-size:14px;line-height:1.5;margin:8px 0}#createMode,#tournamentCapacity{font:inherit;min-height:38px;padding:8px;border:2px solid currentColor;background:transparent;color:inherit}
#createMode,#tournamentCapacity{background:#000;color-scheme:dark}
#tournamentCapacity option{background:#000;color:var(--ink,#eee)}
@media(max-width:1100px){.tournament-columns{grid-template-columns:260px minmax(0,1fr)}.tournament-head{padding:12px}.tournament-roster-panel,.tournament-tree-panel{padding:10px}.tournament-controls .pix-btn{font-size:14px}}

body:has(#tournamentScreen:not([hidden])) .shell{height:var(--ui-viewport-height,100dvh);overflow:hidden;display:flex;flex-direction:column}body:has(#tournamentScreen:not([hidden])) .shell>.logo-row{flex:none}#tournamentScreen{flex:1;height:auto}
#tournamentScreen [hidden]{display:none!important}
body:has(#tournamentScreen:not([hidden])) .topbar .lobby-brand{width:auto;flex:1 1 auto;min-width:0}
body:has(#tournamentScreen:not([hidden])) .lobby-header-actions{display:flex}
body:has(#tournamentScreen:not([hidden])) .lobby-header-actions .lobby-news-btn,body:has(#tournamentScreen:not([hidden])) .lobby-header-actions .lobby-logout-btn{display:none}

.tournament-heading-copy{display:flex;align-items:baseline;gap:14px;flex:1;min-width:0}.tournament-heading-copy h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.tournament-heading-copy .step{flex:none}.tournament-heading-copy p{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-room-details{display:flex;align-items:center;gap:8px;flex:none;white-space:nowrap}.tournament-room-details p{margin:0;font-size:14px}.lobby-tournament-leave{display:none}body:has(#tournamentScreen:not([hidden])) .lobby-tournament-leave{display:inline-flex}
.tournament-viewport-space{position:relative;overflow:hidden;flex:none}.tournament-bracket-canvas{position:absolute;left:0;top:0;transform-origin:0 0;min-width:0}.tournament-bracket-scroll{cursor:grab;user-select:none;touch-action:none}.tournament-bracket-scroll.panning{cursor:grabbing}.tournament-tree-panel>.tournament-panel-head{flex-wrap:wrap}.tournament-zoom-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.tournament-zoom-controls label{font-size:13px}.tournament-zoom-controls select{font:inherit;min-height:30px;padding:5px 8px;border:2px solid #8d886d;background:var(--panel,#050605);color:inherit}

.tournament-player-score{min-width:24px;text-align:right}.tournament-match-info{font-variant-numeric:tabular-nums;color:#b9c9bd}.tournament-rest-control{flex:none;display:flex;align-items:center;gap:8px;height:44px;min-height:44px;white-space:nowrap;font-size:14px}.tournament-rest-control select{box-sizing:border-box;height:44px;min-height:44px;padding:6px;border:2px solid #8d886d;background:var(--panel,#050605);color:inherit}.tournament-host-controls{align-items:center;flex-wrap:wrap}.tournament-host-controls [data-tournament-end]{border-color:var(--gold);color:var(--gold)}.tournament-countdown{position:absolute;z-index:11;bottom:6px;left:calc(50% - 8px);transform:translateX(-50%);max-width:calc(100% - 48px);margin:0;padding:0 6px;background:var(--panel,#050605);color:#86c696;font-size:14px;line-height:16px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}

.tournament-columns{grid-template-columns:320px minmax(0,1fr)}.tournament-tree-panel{position:relative}.tournament-match{gap:3px;padding:8px 12px}.tournament-heading-copy>.step{color:var(--accent);font-size:22px;font-weight:700;line-height:1.5;letter-spacing:normal}.tournament-heading-copy h2{flex:0 1 auto;min-width:0;color:#fff}.tournament-code-label{font-size:12px;white-space:nowrap;flex:none;transform:translateY(1px)}.tournament-code-label strong{font-size:14px;margin-left:6px;color:#b8ab4e;position:relative;top:1px}.tournament-roster strong{flex:0 0 11em;min-width:11em;overflow:visible;text-overflow:clip}.tournament-roster small{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.tournament-head>p[hidden]{display:none}.tournament-tree-panel>.tournament-panel-head{justify-content:flex-start;align-items:center}.tournament-tree-panel [data-tournament-role]{font-size:14px;white-space:nowrap}
.tournament-panel-title{display:flex;align-items:baseline;gap:8px;min-width:0}.tournament-panel-title h3{flex:none}html[data-mfm-locale="zh-TW"] .tournament-panel-title [data-tournament-role]{transform:translateY(1px)}

.tournament-roster small{text-align:right}

.tournament-controls{padding:8px;gap:8px}.tournament-host-controls{gap:6px;margin-left:auto}.tournament-host-controls>.pix-btn{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.tournament-host-controls>.add-cpu{min-height:44px;padding:9px 14px;font-size:16px}

.tournament-tree-panel{padding-bottom:6px}.tournament-match{padding:7px 12px;gap:3px}.tournament-player-name,.tournament-match small{line-height:20px;flex-shrink:0}.tournament-match small{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-player-name.winner .tournament-player-label{font-weight:700}

.tournament-controls{padding-left:14px}@media(max-width:1100px){.tournament-controls{padding-left:10px}}

.tournament-announcement{flex:1 1 280px;min-width:180px;width:0;height:44px;margin:0;padding:8px 10px;border:2px solid #777761;background:var(--panel,#050605);color:var(--ink);font:inherit;font-size:16px;line-height:1.5}.tournament-announcement::placeholder{color:var(--muted)}.tournament-announcement:focus{outline:2px solid var(--accent);outline-offset:1px}.tournament-announcement[readonly]{cursor:text}

.tournament-announcement[hidden],.tournament-announcement-text[hidden]{display:none}.tournament-controls .tournament-announcement-text{flex:1 1 280px;min-width:180px;min-height:44px;margin:0;padding:8px 0;font-size:16px;line-height:24px;white-space:pre-wrap;overflow-wrap:anywhere}

.tournament-match:hover:not(:disabled){border-color:var(--gold);outline:2px solid var(--gold);outline-offset:1px}.tournament-match:not(:disabled){cursor:pointer}.tournament-bracket-scroll.panning .tournament-match{cursor:grabbing}

/* Keep frames readable below 100% without moving the card contents. */
.tournament-bracket-canvas{--tournament-line-width:calc(var(--mfm-pixel-border-2,2px)*var(--tournament-stroke-scale,1))}.tournament-match{border-width:var(--tournament-line-width);padding:calc(9px - var(--tournament-line-width)) calc(14px - var(--tournament-line-width))}.tournament-champion{border-width:var(--tournament-line-width);padding:calc(22px - var(--tournament-line-width)) calc(12px - var(--tournament-line-width))}.tournament-match:hover:not(:disabled){outline-width:var(--tournament-line-width)}

.tournament-match.complete .tournament-player-name:not(.winner){color:#707070;opacity:.55}

.tournament-roster [data-tournament-kick]{flex:none;margin-left:auto;min-height:30px;padding:4px 8px;font-size:13px;line-height:1}
