.tournament-history-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.tournament-history-card{min-width:0;padding:20px;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column}
.tournament-history-card+.tournament-history-card{margin-top:12px;padding-top:32px;border-top:1px solid #dce3eb}
.history-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:0;border-bottom:0}
.history-card-heading>div{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px}.history-card-heading h2{font-size:23px;color:#5f0052;margin:0;overflow-wrap:anywhere}.history-card-heading time{font-size:14px;color:#62748a}
.history-winners{list-style:none;padding:0;margin:12px 0 18px;display:grid;gap:12px}
.history-winners li,#participants-list li{display:grid;grid-template-columns:30px 34px minmax(0,1fr);align-items:center;gap:10px;min-width:0}
.player-avatar{width:34px;height:34px;margin:0}
.history-player-name{display:flex;align-items:center;gap:7px;min-width:0}.history-player-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#30445a}.history-player-name img{width:24px;height:18px;object-fit:contain;flex:none}
.history-medal{width:28px;height:29.2444px;background:url('/site/medals.png') no-repeat;background-size:84px 29.2444px}.medal-2{background-position:-28px 0}.medal-3{background-position:-56px 0}
.history-participants-link{align-self:flex-start;margin-top:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#1767b0;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;font-size:14px}.history-participants-link:hover{color:#5f0052}.history-empty{color:#62748a;margin:18px 0}
#participants-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:22px;border:1px solid #b8c6d3;border-radius:14px;background:#fff;color:#26374c;box-shadow:0 16px 60px #102b4366;overflow:auto}
#participants-dialog::backdrop{background:#102b4380}
.participants-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.participants-heading h2{margin:0;font-size:20px;overflow-wrap:anywhere}.participants-heading button{border:0;background:transparent;color:#62748a;font-size:28px;padding:0 4px;flex:none}
#participants-list{list-style:none;padding:0;margin:12px 0 0}#participants-list li{padding:10px 0;border-bottom:1px solid #dce3eb}#participants-list li:last-child{border-bottom:0}.participant-rank{text-align:center;color:#62748a}#participants-message:empty,#message:empty{display:none}

.history-section-title{margin:20px 0 0;font-size:17px;font-weight:700;color:#30445a}
.history-replays-title{margin-top:6px}

.history-replays{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px;font-size:14px;color:#62748a}
.history-replays li{min-width:0}.history-replays a{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;overflow-wrap:anywhere;color:#1767b0;text-underline-offset:3px}.history-replays small{display:block;margin-top:3px}

/* The replay dialog uses the game's artwork and logical 520 x 440 arena. */
#replay-dialog{padding:0;border:2px solid #c5e9fb;border-radius:14px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:visible;background:#a2dcff;box-shadow:0 16px 70px #001c4699}
#replay-dialog::backdrop{background:#081d39ba;backdrop-filter:blur(4px)}
body:has(#replay-dialog[open]){overflow:hidden}
.replay-viewport{position:relative;overflow:hidden;border-radius:12px}
.replay-stage{position:relative;width:900px;height:943px;transform-origin:top left;background:#a2dcff url('/game/assets/ui/background.png') center/cover no-repeat;font-family:system-ui,sans-serif}
.replay-match-panel{position:absolute;left:-32px;top:52.8px;width:864px;height:139.2px;background:url('/tournaments/viewer/art/tour_replay_top_bar.png') center/100% auto no-repeat}
.replay-timeline-panel{position:absolute;left:24px;top:829px;width:752px;height:132px;background:url('/tournaments/viewer/art/tour_replay_bottom_bar.png') center/contain no-repeat}
.replay-arena{position:absolute;left:1.55904841px;top:151px;width:584px;height:504px;transform:scale(1.3645238097);transform-origin:top left}
#replay-board{position:absolute;left:32px;top:32px;width:520px;height:440px;border:0;border-radius:0;display:block}
.replay-arena::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;--frame-x:32px;--frame-y:32px;--frame-bottom:55.08px;
 background:
 url('/game/assets/ui/arena-frame/top-left.png') left top / var(--frame-x) var(--frame-y) no-repeat,
 url('/game/assets/ui/arena-frame/top-right.png') right top / var(--frame-x) var(--frame-y) no-repeat,
 url('/game/assets/ui/arena-frame/bottom-left.png') left bottom / var(--frame-x) var(--frame-bottom) no-repeat,
 url('/game/assets/ui/arena-frame/bottom-right.png') right bottom / var(--frame-x) var(--frame-bottom) no-repeat,
 url('/game/assets/ui/arena-frame/top.png') center top / calc(100% - 2 * var(--frame-x)) var(--frame-y) no-repeat,
 url('/game/assets/ui/arena-frame/bottom.png') center bottom / calc(100% - 2 * var(--frame-x)) var(--frame-bottom) no-repeat,
 url('/game/assets/ui/arena-frame/left.png') left 0 top var(--frame-y) / var(--frame-x) calc(100% - var(--frame-y) - var(--frame-bottom)) no-repeat,
 url('/game/assets/ui/arena-frame/right.png') right 0 top var(--frame-y) / var(--frame-x) calc(100% - var(--frame-y) - var(--frame-bottom)) no-repeat;
}
#replay-close{position:fixed;right:16px;top:16px;z-index:20;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:88px;height:34px;padding:0 12px;border:2px solid #69d4ff;border-radius:8px;background:linear-gradient(#21b9f3,#0879c9 55%,#055399);color:#f1fbff;font-family:inherit;font-size:14px;font-weight:800;line-height:1;box-shadow:inset 0 1px 2px #d7f6ff,0 2px 5px #003d6480;text-shadow:0 1px 2px #00315b;cursor:pointer}
#replay-close:hover{filter:brightness(1.15)}
#replay-close:active{filter:brightness(.92);box-shadow:inset 0 2px 4px #003d6466}
#replay-close:focus-visible{outline:3px solid #fff;outline-offset:3px}
#replay-close span{font-size:23px;font-weight:600;line-height:1}
#replay-message{position:absolute;top:380px;left:150px;width:500px;margin:0;padding:12px;box-sizing:border-box;border-radius:8px;background:#e8f7fff0;color:#143756;text-align:center;z-index:15;font-size:20px}
#replay-message:empty{display:none}
.replay-arena .arena-player-label{position:absolute;z-index:3;width:240px;height:87.3px;background:url('/game/assets/ui/player-badges.png') 0 0/301.5px 169.02px no-repeat;color:white;pointer-events:none}
.replay-arena .player-one{left:-7.5px;top:-15.6px;transform:scale(.75);transform-origin:top left}
.replay-arena .player-two{right:-11.25px;bottom:-10px;transform:scale(.75);transform-origin:bottom right;width:233.1px;height:81.72px;background-position:-68.4px -87.3px}
.replay-arena .avatar{position:absolute;left:27.9px;top:34.2px;width:23.4px;height:23.4px;border:0;border-radius:4px;overflow:hidden;background:#e8f5ff;color:#214260;text-align:center;font-size:19px;line-height:23.4px}
.replay-arena .player-two .avatar{left:184.5px;top:29.7px}
.replay-arena .avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.replay-arena strong{position:absolute;left:68px;top:48.6px;transform:translateY(-50%);height:22px;width:146px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:22px;text-shadow:0 1px 2px #00325d}
.replay-arena .player-two strong{left:22px;top:42.3px;width:145px;text-align:right}


.replay-controls{position:absolute;left:74px;right:74px;top:38px;height:44px;display:flex;align-items:center;gap:16px}
#replay-play,#replay-sound{flex:none;display:grid;place-items:center;width:58px;height:40px;margin:0;padding:0;border:2px solid #42bdf4;border-radius:9px;background:linear-gradient(#19b9fa,#006ed1 55%,#004589);color:#e4faff;font-size:23px;line-height:1;box-shadow:inset 0 1px 3px #c4f5ff,0 2px 3px #00224e;text-shadow:0 2px 3px #00315b}
#replay-play:hover:not(:disabled),#replay-sound:hover{filter:brightness(1.15)}
#replay-play:active:not(:disabled),#replay-sound:active{filter:brightness(.92)}
#replay-play:disabled{opacity:.55}
#replay-progress{flex:1;min-width:0;width:100%;height:32px;margin:0;padding:0;appearance:none;-webkit-appearance:none;border:0;box-shadow:none;background:transparent;cursor:pointer;--progress:0%}
#replay-progress::-webkit-slider-runnable-track{height:13px;border:1px solid #002d65;border-radius:8px;background:linear-gradient(to right,#35c7ff 0%,#35c7ff var(--progress),#00376f var(--progress),#00376f 100%);box-shadow:inset 0 2px 4px #001d52}
#replay-progress::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:26px;height:26px;margin-top:-7px;border:2px solid #51d5ff;border-radius:50%;background:linear-gradient(#31d0ff,#0088e7);box-shadow:0 2px 3px #001c57}
#replay-progress::-moz-range-track{height:11px;border:1px solid #002d65;border-radius:8px;background:#00376f;box-shadow:inset 0 2px 4px #001d52}
#replay-progress::-moz-range-progress{height:11px;border-radius:8px;background:#35c7ff}
#replay-progress::-moz-range-thumb{width:22px;height:22px;border:2px solid #51d5ff;border-radius:50%;background:linear-gradient(#31d0ff,#0088e7);box-shadow:0 2px 3px #001c57}
#replay-progress:disabled{opacity:.5;cursor:default}
#replay-time{flex:none;width:112px;color:#d5f2ff;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;text-shadow:0 1px 3px #003168}

.replay-composition{position:absolute;left:50px;top:0;width:800px;height:943px}

#replay-match-title{position:absolute;left:36%;top:31%;width:28%;transform:translateY(-50%);text-align:center;color:#fff;font-size:33px;font-weight:800;line-height:1.15;-webkit-text-stroke:3px #07366b;paint-order:stroke fill;text-shadow:0 3px 0 #05234c,0 4px 4px #001c46b3;white-space:nowrap}

.replay-header-avatar{position:absolute;left:2.8%;top:17%;width:48px;height:48px;border-radius:7px;overflow:hidden;color:white;text-align:center;font-size:30px;line-height:48px}
.replay-header-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.replay-header-name{position:absolute;left:9.5%;top:18%;width:15.5%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#fff;font-size:18px;font-weight:800;line-height:25px;-webkit-text-stroke:2px #07366b;paint-order:stroke fill;text-shadow:0 2px 2px #002754}
.replay-results{position:absolute;left:9.5%;top:44%;width:15.5%;display:flex;justify-content:center;gap:3px;overflow:hidden}
.replay-result-dot{width:10px;height:10px;flex:none;border-radius:50%;background:#003574;box-shadow:inset 0 1px 2px #001e52}
.replay-result-dot.win{background:linear-gradient(#b5ff76,#42bf19);box-shadow:0 0 3px #175200,inset 0 1px 1px #efffd0}
.replay-result-dot.loss{background:linear-gradient(#ff9a85,#ed3029);box-shadow:0 0 3px #650400,inset 0 1px 1px #ffd4c9}
.replay-result-dot.draw{background:linear-gradient(#fff69a,#f6c51b);box-shadow:0 0 3px #745600,inset 0 1px 1px #fffdd7}
.replay-score{position:absolute;left:26%;top:36%;width:4.6%;transform:translateY(-50%);text-align:center;color:#fff;font-size:46px;font-weight:900;line-height:1;-webkit-text-stroke:3px #07366b;paint-order:stroke fill;text-shadow:0 3px 2px #002754}
.header-right .replay-header-avatar{left:auto;right:2.8%}
.header-right .replay-header-name,.header-right .replay-results{left:auto;right:9.5%}
.header-right .replay-score{left:auto;right:26%}


#replay-sound svg{width:27px;height:27px;filter:drop-shadow(0 2px 2px #00315b)}
#replay-sound[aria-pressed=true] .sound-muted,#replay-sound[aria-pressed=false] .sound-waves{display:none}
.replay-website-label{position:absolute;left:38px;bottom:4px;z-index:4;font-family:'Nunito','Trebuchet MS',sans-serif;font-size:12px;font-weight:800;line-height:16px;letter-spacing:.2px;color:#eefaff;text-shadow:0 1px 3px #064272,1px 0 2px #064272,-1px 0 2px #064272;pointer-events:none;user-select:none}

.replay-video-icon{display:inline-flex;flex:none;align-self:center;width:21px;height:18px}.replay-video-icon svg{width:100%;height:100%}.history-replays a:hover{color:#104d88}.history-replays a:focus-visible{outline:2px solid #1767b0;outline-offset:4px;border-radius:3px}

#replay-dialog.replay-close-above{margin:64px auto 0}
#replay-tournament-title{position:absolute;left:24px;top:10px;right:24px;margin:0;color:#fff;font-size:32px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-text-stroke:2px #07366b;paint-order:stroke fill;text-shadow:0 6px 6px #002754}

.history-replays{display:grid;gap:14px}.history-replay-group h4{margin:0 0 7px;font-size:14px;font-weight:700;color:#62748a}.history-replay-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline}

.history-card-heading h2 a{color:inherit;text-decoration:none}.history-card-heading h2 a:hover{text-decoration:underline;text-underline-offset:4px}
.back-link{display:inline-block;margin:0 0 16px;color:#1767b0}.tournament-detail .tournament-history-card{padding:0 0 24px}.detail-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #dce3eb;padding:12px 0;margin:0 0 20px}.detail-tabs button[aria-selected=true]{background:#1767b0;color:white;border-color:#1767b0}.detail-stage[hidden]{display:none}.detail-stage h2{font-size:21px;margin:0 0 16px}.detail-note{font-size:13px;color:#62748a;margin:10px 0 16px}.detail-table-wrap{overflow:auto;max-width:100%}.detail-table{width:100%;border-collapse:collapse}.detail-table th,.detail-table td{padding:10px 12px;border-bottom:1px solid #dce3eb;text-align:left;white-space:nowrap}.detail-table th{color:#62748a;font-size:13px}.detail-table th:first-child,.detail-table td:first-child{width:1%}.detail-table td:last-child{font-weight:700;color:#42474d}.detail-player{display:flex;align-items:center;gap:8px;min-width:0}.detail-player .player-avatar{flex:none}.detail-player .history-player-name{min-width:0}.not-selected{opacity:.5}.detail-matches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:16px}.detail-match{border:1px solid #dce3eb;border-radius:10px;padding:14px;background:#fff}.detail-match h3{margin:0 0 6px;font-size:16px}.detail-match .detail-table td,.detail-match .detail-table th{padding:8px 5px}.detail-match .detail-player{min-width:120px}.detail-dot{display:inline-block;width:10px;height:10px;flex:none;border-radius:50%;background:#d3dae3;box-shadow:inset 0 0 0 1px #0001}.detail-dot.win{background:#65bf3a}.detail-dot.loss{background:#ef5950}.detail-dot.draw{background:#f3c542}.detail-bracket-viewport{overflow:auto;max-height:720px;cursor:grab;padding:12px 8px 20px;background:#f1f5f9;border:1px solid #dce3eb;border-radius:12px;overscroll-behavior:contain}.detail-bracket-viewport.dragging{cursor:grabbing;user-select:none}.detail-bracket{position:relative}.bracket-heading{position:absolute;top:0;margin:0;color:#5f0052;font-size:17px}.bracket-match{position:absolute;box-sizing:border-box;width:300px;height:104px;border:1px solid #bac9d8;border-radius:9px;background:white;box-shadow:0 2px 6px #19364d12;overflow:hidden}.bracket-player{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;height:52px;box-sizing:border-box}.bracket-player+.bracket-player{border-top:1px solid #e4eaf1}.bracket-player.series-winner{background:#f0faed}.bracket-identity{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.bracket-player-lines{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;flex:1}.bracket-player .player-avatar{width:34px;height:34px;flex:none}.bracket-player .history-player-name{font-size:13px}.bracket-score{font-size:23px;color:#30445a}.detail-dots{display:flex;gap:3px;margin:0;overflow:hidden;max-width:190px}.detail-dots .detail-dot{width:8px;height:8px}.detail-connectors{position:absolute;inset:0;pointer-events:none}.detail-connectors path{fill:none;stroke:#91a9be;stroke-width:2}
@media(max-width:850px){.detail-matches{grid-template-columns:1fr}.detail-stage .detail-table td,.detail-stage .detail-table th{padding:8px}.tournament-detail{padding:18px}}
.detail-tabs button[aria-selected=false]{background:#eef3f8;color:#30445a;border-color:#c4d1de}.detail-tabs button[aria-selected=false]:hover{background:#dfeaf4}

.history-details-link{align-self:flex-start;color:#1767b0;font-size:14px;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.history-details-link:hover{color:#5f0052}

.detail-match-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:8px}
.detail-match-heading h3,.detail-match-heading .detail-note{margin:0}
.detail-match .detail-table th,.detail-match .detail-table td{vertical-align:middle}
.detail-match .detail-table th:first-child,.detail-match .detail-table td:first-child{padding-right:28px}
.detail-match .detail-table .detail-dot{display:block}
