/* Tournament surfaces inherit the site's HUD typography and wallpaper. */
.tourney-trophy-scene{position:relative;width:190px;height:130px;perspective:500px;isolation:isolate;display:grid;place-items:center;margin:5px 0 8px}.tourney-trophy-halo{position:absolute;width:146px;height:48px;border:1px solid rgba(255,70,85,.2);border-radius:50%;transform:rotate(-14deg);box-shadow:0 0 35px rgba(255,70,85,.05)}.tourney-trophy-center{font-size:52px;color:var(--red,#ff4655);filter:drop-shadow(0 5px 14px rgba(255,70,85,.2));animation:tourneyTrophyFloat 4s ease-in-out infinite;z-index:2}.tourney-trophy-orbit{position:absolute;left:calc(50% - 7px);top:calc(50% - 7px);width:14px;height:14px;animation:tourneyStarOrbit 7.2s linear var(--star-offset,0s) infinite;will-change:transform}.tourney-trophy-orbit i{display:block;font-size:14px;color:var(--red,#ff4655);filter:drop-shadow(0 0 7px rgba(255,70,85,.45))}@keyframes tourneyTrophyFloat{0%,100%{transform:translateY(3px) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}@keyframes tourneyStarOrbit{0%{transform:translate(-76px,17px) scale(1.1);opacity:1;z-index:3}25%{transform:translate(0,-23px) scale(.65);opacity:.4;z-index:1}50%{transform:translate(76px,-17px) scale(.8);opacity:.6;z-index:1}75%{transform:translate(0,29px) scale(1.2);opacity:1;z-index:3}100%{transform:translate(-76px,17px) scale(1.1);opacity:1;z-index:3}}
.tourney-history-detail-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tourney-history-detail-tools .tourney-tabs{width:auto;flex:1;min-width:0;margin:0}.tourney-history-detail-tools>.tourney-secondary{flex-shrink:0;white-space:nowrap}.tourney-statistics{width:100%;min-width:0;animation:tourneyStatsEnter .24s var(--hud-ease,ease) both}.tourney-stats-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.tourney-stats-switch{display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(0,0,0,.16)}.tourney-stats-switch button{border:0;border-radius:5px;background:none;color:var(--text-muted);padding:8px 12px;font-size:12px;cursor:pointer}.tourney-stats-switch button.active{color:var(--text);background:rgba(255,70,85,.14)}.tourney-stats-filter{margin-left:auto}.tourney-statistics select{appearance:none;border:1px solid var(--border);border-radius:6px;padding:9px 30px 9px 12px;background:rgba(15,25,35,.65) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%239ba3af' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 11px center;color:var(--text);font:inherit;font-size:12px;max-width:100%}.tourney-statistics option{background:#0f1923}.tourney-stats-table-wrap{max-width:100%;overflow-x:auto}.tourney-stats-table{width:100%;border-collapse:collapse;white-space:nowrap}.tourney-stats-table thead{color:var(--text-muted);font-size:10px}.tourney-stats-table th,.tourney-stats-table td{text-align:left;padding:13px 10px;border-bottom:1px solid rgba(255,255,255,.07)}.tourney-stats-table th{font-weight:400}.tourney-stats-table th button{display:flex;align-items:center;gap:5px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.tourney-stats-table tbody td{font-size:12px}.tourney-stats-table tbody tr{transition:background .2s}.tourney-stats-table tbody tr:hover{background:rgba(255,255,255,.025)}.tourney-stats-index{color:var(--text-muted);font-family:var(--font-primary);font-size:19px}.tourney-stats-identity{display:flex;align-items:center;gap:10px;min-width:0}.tourney-stats-identity>img{width:32px;height:32px;border-radius:6px;object-fit:cover;flex-shrink:0}.tourney-stats-identity>span{min-width:0}.tourney-stats-identity strong{display:block;color:var(--text);font-size:12px;overflow-wrap:anywhere}.tourney-stats-identity small{display:block;color:var(--text-muted);font-size:10px;margin-top:4px}.tourney-stats-kd{color:var(--gold,#ffc107);font-family:var(--font-primary);font-size:21px!important}.tourney-stats-kda{color:var(--text-muted);font-variant-numeric:tabular-nums}.tourney-stats-agents{display:flex;align-items:center;gap:5px;min-height:28px}.tourney-stats-agents img{width:27px;height:27px;object-fit:cover;border-radius:4px}.tourney-stats-cards,.tourney-stats-mobile-sort{display:none}.tourney-statistics button:focus-visible,.tourney-statistics select:focus-visible{outline:2px solid var(--red);outline-offset:3px}.tourney-statistics .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes tourneyStatsEnter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:767px){.tourney-stats-toolbar{gap:8px}.tourney-stats-switch{flex-shrink:0}.tourney-stats-switch button{padding:8px 10px;font-size:11px}.tourney-stats-filter{min-width:0;flex:1 1 100%;order:2}.tourney-stats-filter select{width:100%}.tourney-stats-table-wrap{display:none}.tourney-stats-mobile-sort{display:flex;align-items:center;gap:6px;margin-left:auto}.tourney-stats-mobile-sort button{width:34px;height:34px;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);background:rgba(255,255,255,.03);cursor:pointer}.tourney-stats-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.tourney-stats-card{border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:14px;background:rgba(15,25,35,.4);min-width:0}.tourney-stats-card header{display:flex;align-items:center;gap:10px}.tourney-stats-card .tourney-stats-identity{flex:1}.tourney-stats-card .tourney-stats-kd{text-align:right;font-size:27px!important}.tourney-stats-card .tourney-stats-kd small{display:block;color:var(--text-muted);font-size:9px;font-family:var(--font-secondary)}.tourney-stats-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 10px;margin:17px 0}.tourney-stats-card dt{font-size:10px;color:var(--text-muted);margin-bottom:4px}.tourney-stats-card dd{font-size:14px;font-variant-numeric:tabular-nums}.tourney-stats-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07);font-size:10px;color:var(--text-muted)}.tourney-stats-agents>span{display:flex;align-items:center;gap:3px}.tourney-stats-agents small{font-family:var(--font-primary);font-size:12px}.tourney-history-detail-tools{align-items:flex-start}.tourney-history-detail-tools .tourney-tabs{gap:4px}.tourney-history-detail-tools .tourney-secondary{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.tourney-trophy-scene *, .tourney-statistics{animation:none!important}.tourney-trophy-orbit:nth-of-type(1){transform:translate(-68px,12px)}.tourney-trophy-orbit:nth-of-type(2){transform:translate(56px,-21px);opacity:.55}.tourney-trophy-orbit:nth-of-type(3){transform:translate(20px,31px)}}
.tourney { --tg-accent:var(--red,#ff4655); --tg-green:#6be2b2; --tg-muted:#a1aab4; width:100%; min-width:0; color:var(--text,#ece8e1); font-family:var(--font-secondary, sans-serif); }
.tourney * { box-sizing:border-box; }
.tourney button,.tourney input { font-family:inherit; }
.tourney button:focus-visible,.tourney a:focus-visible,.tourney input:focus-visible { outline:2px solid var(--tg-accent); outline-offset:4px; }
.tourney button { cursor:pointer; }
.tourney button:disabled { cursor:default; opacity:.48; }
.tourney-shell { position:relative; padding:24px 0; background:transparent; border:0; border-radius:0; box-shadow:none; }

.tourney-eyebrow { display:block; color:var(--tg-accent); font:11px var(--font-primary,sans-serif); letter-spacing:.2em; margin-bottom:7px; }
.tourney-title { margin:0; font:700 clamp(23px,2.2vw,32px)/1.2 var(--font-primary,sans-serif); overflow-wrap:anywhere; }
.tourney-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:24px; }
.tourney-header p,.tourney-hint { color:var(--tg-muted); font-size:13px; line-height:1.7; margin:8px 0 0; }
.tourney-pill { display:inline-flex; gap:7px; align-items:center; border:1px solid #ff465540; color:var(--tg-accent); background:#ff46550c; border-radius:20px; padding:5px 10px; font-size:11px; white-space:nowrap; }
.tourney-pill.mine { color:var(--tg-green); border-color:#6be2b244; background:#6be2b20a; }
.tourney-header > .tourney-pill { flex-shrink:0; white-space:nowrap; }
.tourney-tabs { display:flex; gap:5px; padding:5px 0; background:transparent; border:0; border-bottom:1px solid #ffffff12; border-radius:0; margin-bottom:22px; width:100%; }
.tourney-tabs button { flex:1; color:var(--tg-muted); background:transparent; border:0; padding:11px 15px; border-radius:7px; font-size:13px; transition:background .22s,color .22s; }
.tourney-tabs button.active { color:var(--tg-accent); background:#ff465516; box-shadow:inset 0 0 0 1px #ff46552c; }
.tourney-next { width:100%; border:0; border-radius:0; padding:18px 0; background:transparent; }
.tourney-next-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--tg-muted); font-size:12px; }
.tourney-matchup { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:20px; margin:27px 0; }
.tourney-team { min-width:0; text-align:center; }
.tourney-team img { width:66px; height:66px; object-fit:cover; border:1px solid #ffffff24; border-radius:13px; padding:5px; background:#0003; }
.tourney-team.mine img { border-color:#6be2b250; }
.tourney-team strong { display:block; font:600 20px var(--font-primary,sans-serif); margin-top:13px; overflow-wrap:anywhere; }
.tourney-team small { color:var(--tg-green); font-size:11px; display:block; margin-top:6px; }
.tourney-vs { color:#ece8e149; font:700 24px var(--font-primary,sans-serif); letter-spacing:.1em; }
.tourney-lobby .tourney-matchup .tourney-team { display:flex; align-items:center; justify-content:center; gap:14px; text-align:left; }
.tourney-lobby .tourney-matchup .tourney-team img { flex-shrink:0; }
.tourney-lobby .tourney-matchup .tourney-team strong { margin:0; font-family:var(--font-secondary,sans-serif); line-height:1.45; }
@media(max-width:767px) { .tourney-lobby .tourney-matchup { gap:10px; }.tourney-lobby .tourney-matchup .tourney-team { gap:8px; }.tourney-lobby .tourney-matchup .tourney-team img { width:40px; height:40px; padding:3px; border-radius:8px; }.tourney-lobby .tourney-matchup .tourney-team strong { font-size:13px; }.tourney-lobby .tourney-matchup .tourney-vs { font-size:18px; } }
.tourney-start { text-align:center; padding:17px; border-top:1px solid #ffffff0c; }
.tourney-start strong { font:600 20px var(--font-primary,sans-serif); display:block; }
.tourney-start small { display:block; color:var(--tg-muted); margin-top:7px; }
.tourney-ready-row { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:16px; }
.tourney-ready-count { font-size:13px; color:var(--tg-muted); }
.tourney-ready-count strong { color:var(--tg-green); font:600 21px var(--font-primary,sans-serif); margin-right:6px; }
.tourney-primary,.tourney-secondary { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:8px; padding:12px 20px; font-size:13px; min-height:44px; text-decoration:none; transition:transform .2s,background .2s,border-color .2s; }
.tourney-primary { border:1px solid #ff4655; background:#ff4655; color:white; }
.tourney-primary:hover:not(:disabled) { background:#f65b67; transform:translateY(-1px); }
.tourney-secondary { border:1px solid #ffffff26; background:#ffffff04; color:var(--text,#ece8e1); }
.tourney-secondary:hover:not(:disabled) { border-color:#ff465570; background:#ff46550b; }
.tourney-empty { padding:42px 20px; display:flex; flex-direction:column; align-items:center; gap:13px; text-align:center; color:var(--tg-muted); }
.tourney-empty i { font-size:34px; color:#ff46557a; }
.tourney-empty strong { color:var(--text,#ece8e1); font-size:18px; }
.tourney-error { color:#ff8b94; border:1px solid #ff465533; background:#ff46550a; border-radius:8px; padding:13px; margin-bottom:16px; font-size:13px; }
.tourney-maps { display:flex; flex-wrap:wrap; gap:7px; margin-top:17px; }
.tourney-map-chip { padding:5px 10px; border:1px solid #ffffff15; border-radius:5px; font-size:11px; color:var(--tg-muted); }
.tourney-lock { display:flex; align-items:flex-start; gap:12px; padding:17px 20px; border:1px solid #ff465538; border-radius:10px; background:#ff465508; margin:16px 0; }
.tourney-lock i { color:var(--tg-accent); margin-top:3px; }
.tourney-lock strong { font-size:14px; display:block; }.tourney-lock p { color:var(--tg-muted); margin:5px 0 0; font-size:12px; line-height:1.7; }
.tourney-roster { margin-top:17px; border-top:1px solid #ffffff10; padding-top:20px; }
.tourney-roster-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.tourney-roster-head h3 { margin:0; font-size:15px; }
.tourney-roster-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.tourney-roster-member { display:flex; flex-direction:column; align-items:center; gap:9px; min-width:0; border:1px solid #ffffff16; border-radius:9px; padding:15px 8px; color:var(--text,#ece8e1); background:#ffffff02; text-align:center; transition:border-color .2s,background .2s; }
.tourney-roster-member.selected { border-color:#ff46556b; background:#ff46550a; }
.tourney-roster-member img { width:43px; height:43px; border-radius:50%; object-fit:cover; }
.tourney-roster-member span { font-size:12px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tourney-roster-member small { color:var(--tg-accent); font-size:10px; }
.tourney-roster-actions { display:flex; justify-content:flex-end; align-items:center; gap:16px; margin-top:16px; }
.tourney-history { padding:24px; overflow:auto; min-height:0; flex:1; }
.tourney-history-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:15px; }
.tourney-history-card { text-align:left; padding:22px; background:#ffffff03; border:1px solid #ffffff18; border-radius:10px; color:var(--text,#ece8e1); transition:transform .22s,border-color .22s; }
.tourney-history-card:hover { border-color:#ff465570; transform:translateY(-2px); }
.tourney-history-card.mine { border-color:#6be2b24b; background:#6be2b207; }
.tourney-history-card h3 { margin:13px 0; font:600 22px var(--font-primary,sans-serif); }
.tourney-history-card p { color:var(--tg-muted); margin:8px 0; font-size:12px; }.tourney-history-card footer { margin-top:20px; display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--tg-accent); }
.tourney-series { margin-bottom:24px; }
.tourney-history-card .tourney-history-place { color:var(--tg-accent); }
.tourney-series-score { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:22px; align-items:center; text-align:center; margin:28px 0; }
.tourney-series-score .score { display:flex; gap:16px; align-items:center; font:700 52px var(--font-primary,sans-serif); }
.tourney-series-score .score em { color:#ece8e13a; font:normal 30px var(--font-primary,sans-serif); }.tourney-series-score .winner { color:var(--tg-accent); }.tourney-series-score h2 { font:600 23px var(--font-primary,sans-serif); margin:0; overflow-wrap:anywhere; }
.tourney-room-tools { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; align-items:center; margin:15px 0; }.tourney-code { color:var(--tg-accent); background:#ff46550a; border:1px dashed #ff465552; padding:10px 16px; border-radius:7px; font-variant-numeric:tabular-nums; }
.tourney-code-form { display:flex; align-items:center; justify-content:center; gap:10px; }.tourney input { background:#0004; border:1px solid #ffffff23; color:var(--text,#ece8e1); border-radius:7px; padding:11px; min-width:0; }.tourney-code-form input { width:190px; }
.tourney-code { display:inline-flex; align-items:center; gap:8px; }
.tourney-code strong { display:inline-block; min-width:60px; letter-spacing:.12em; }
.tourney-code-icon { display:inline-grid; place-items:center; width:30px; height:30px; padding:0; border:0; border-radius:5px; color:var(--tg-accent); background:transparent; }
.tourney-code-icon:hover { background:#ff465515; }
.tourney-code-input { position:relative; display:flex; align-items:center; min-width:0; }
.tourney-code-input input { padding-right:39px; }
.tourney-code-input .tourney-code-icon { position:absolute; right:5px; }
.tourney-bp { border:1px solid #ff46552c; background:#ff465505; padding:20px; border-radius:10px; margin-bottom:20px; }.tourney-bp h3 { font-size:16px; margin:0 0 7px; }.tourney-bp-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }.tourney-bp-actions button { min-width:100px; }.tourney-bp-history { margin-top:14px; display:flex; flex-wrap:wrap; gap:7px; color:var(--tg-muted); font-size:11px; }.tourney-bp-history span { border:1px solid #ffffff15; border-radius:4px; padding:5px 8px; }
.tourney-bp-map-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; margin-top:18px; }
.tourney-bp-map { --bp-frame:#ffffff28; display:flex; flex-direction:column; gap:8px; width:100%; min-width:0; padding:0; border:0; background:transparent; color:var(--text,#ece8e1); text-align:left; }
.tourney .tourney-bp-map:disabled { opacity:1; }
.tourney-bp-map-image { position:relative; display:block; width:100%; aspect-ratio:16/9; overflow:hidden; border:2px solid var(--bp-frame); border-radius:7px; background:#152431; transition:border-color .35s ease,box-shadow .35s ease; }
.tourney-bp-map-image img { display:block; width:100%; height:100%; object-fit:cover; filter:blur(4px) brightness(.55) grayscale(0); transform:scale(1.08); transition:filter .7s ease,transform .7s ease; }
.tourney-bp-map-name { position:absolute; inset:0; display:grid; place-items:center; padding:8px; color:#fff; font-size:15px; font-weight:600; text-shadow:0 2px 12px #000b; opacity:1; transform:translateY(0); transition:opacity .3s ease,transform .35s ease; }
.tourney-bp-map.banned .tourney-bp-map-image img { filter:blur(0) brightness(.8) grayscale(1); transform:scale(1); }
.tourney-bp-map.picked .tourney-bp-map-image img { filter:blur(0) brightness(1) grayscale(0); transform:scale(1); }
.tourney-bp-map.banned .tourney-bp-map-name,.tourney-bp-map.picked .tourney-bp-map-name { opacity:0; transform:translateY(-8px); }
.tourney-bp-map.mine { --bp-frame:var(--tg-green); }
.tourney-bp-map.enemy { --bp-frame:var(--tg-accent); }
.tourney-bp-map.team-a { --bp-frame:#87bfff; }
.tourney-bp-map.team-b { --bp-frame:#ffc873; }
.tourney-bp-map-status { color:var(--tg-muted); font-size:10px; line-height:1.5; letter-spacing:.03em; }
.tourney-bp-map.mine .tourney-bp-map-status { color:var(--tg-green); }
.tourney-bp-map.enemy .tourney-bp-map-status { color:var(--tg-accent); }
.tourney-bp-map.team-a .tourney-bp-map-status { color:#87bfff; }
.tourney-bp-map.team-b .tourney-bp-map-status { color:#ffc873; }
.tourney-bp-map-mark { position:absolute; top:7px; right:7px; display:grid; place-items:center; width:24px; height:24px; border:1px solid var(--bp-frame); border-radius:50%; color:var(--bp-frame); background:#0f1923b8; animation:tourneyBpMark .45s ease both; }
.tourney-bp-map-confirm { position:absolute; inset:auto 0 0; display:flex; align-items:center; justify-content:center; gap:7px; padding:10px 4px; background:rgba(15,25,35,.9); color:var(--text,#ece8e1); font:12px var(--font-secondary,sans-serif); }
.tourney-series .tourney-bp-map.is-pending .tourney-bp-map-image { box-shadow:0 0 0 2px var(--bp-turn-tone,var(--tg-accent)); }
.tourney-bp-map.ready:hover:not(:disabled) .tourney-bp-map-image { border-color:var(--tg-accent); box-shadow:0 0 0 1px #ff465522; }
@keyframes tourneyBpMark { from{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)} }
@media(max-width:767px) { .tourney-bp-map-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 10px; }.tourney-bp-map-name { font-size:13px; }.tourney-bp-map-image { border-radius:5px; }.tourney-bp-map-mark { width:21px; height:21px; font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .tourney-bp-map-image,.tourney-bp-map-image img,.tourney-bp-map-name { transition:none; }.tourney-bp-map-mark { animation:none; } }
.tourney-game-tabs { display:flex; gap:8px; overflow-x:auto; padding:0 0 12px; margin-top:24px; scrollbar-width:thin; }
.tourney-game-tab { flex:1 0 135px; display:flex; flex-direction:column; gap:7px; align-items:flex-start; text-align:left; background:#ffffff03; color:var(--tg-muted); border:1px solid #ffffff17; padding:14px 16px; border-radius:8px; transition:background .2s,border-color .2s; }.tourney-game-tab.active { color:var(--text,#ece8e1); border-color:#ff465580; background:#ff46550c; }.tourney-game-tab span { font-size:10px; letter-spacing:.05em; }.tourney-game-tab strong { font-size:15px; }.tourney-game-tab small { font-size:11px; }
.tourney-game-map { display:flex; align-items:center; gap:8px; min-width:0; }
.tourney-game-map img { width:56px; height:32px; object-fit:cover; flex-shrink:0; border:1px solid #ffffff20; border-radius:4px; }
.tourney-game-map strong { overflow-wrap:anywhere; }
.tourney-game-identity { display:flex; align-items:center; gap:10px; min-width:0; }
.tourney-game-identity img { width:72px; height:41px; object-fit:cover; flex-shrink:0; border:1px solid #ffffff20; border-radius:5px; }
.tourney-game-identity h3 { overflow-wrap:anywhere; }
.tourney-side-map { display:flex; align-items:center; gap:15px; margin:18px 0; }
.tourney-side-map img { width:160px; height:90px; object-fit:cover; border:1px solid #ffffff28; border-radius:6px; }
.tourney-side-map strong { display:block; font-size:20px; margin-top:7px; }
.tourney-side-map small { color:var(--tg-muted); font-size:11px; }
.tourney-bp-result { padding-top:16px; margin-top:20px; border-top:1px solid #ffffff15; }
.tourney-bp-result-name { color:var(--text,#ece8e1); font-size:12px; }
.tourney-inline-map-thumbnail { width:48px; height:27px; object-fit:cover; flex-shrink:0; border:1px solid #ffffff20; border-radius:4px; }
.tourney-bp-history span { display:inline-flex; align-items:center; gap:7px; }
@media(max-width:767px) { .tourney-game-tab { flex-basis:130px; }.tourney-game-map { flex-wrap:wrap; gap:6px; }.tourney-game-map img { width:48px; height:27px; }.tourney-game-map strong { font-size:12px; }.tourney-game-identity img { width:56px; height:32px; }.tourney-side-map { gap:11px; }.tourney-side-map img { width:120px; height:68px; }.tourney-side-map strong { font-size:16px; }.tourney-code-input input { width:100%; }.tourney-code-form .tourney-code-input input { width:100%; } }
.tourney-game { border-top:1px solid #ffffff12; padding-top:23px; }.tourney-game-title { display:flex; align-items:center; justify-content:space-between; gap:10px; }.tourney-game-title h3 { margin:0; font-size:18px; }.tourney-map-score { font:600 25px var(--font-primary,sans-serif); color:var(--tg-accent); white-space:nowrap; }
.tourney-break { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:20px 0; border:1px solid #ff465545; background:linear-gradient(100deg,#ff465510,#ff465503); border-radius:10px; padding:22px; }.tourney-break strong { display:block; font-size:15px; }.tourney-break p { color:var(--tg-muted); font-size:12px; margin:6px 0 0; }.tourney-break time { color:var(--tg-accent); font:600 38px var(--font-primary,sans-serif); font-variant-numeric:tabular-nums; line-height:1; white-space:nowrap; }.tourney-break.finished { border-color:#6be2b238; }.tourney-break.finished time { color:var(--tg-green); font-size:20px; }
.tourney-submissions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }.tourney-submission { min-width:0; padding:16px; border:1px solid #ffffff18; border-radius:8px; background:#0001; }.tourney-submission-head { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:12px; }.tourney-submission a { display:block; color:var(--tg-accent); font-size:12px; text-decoration:none; margin-top:12px; }.tourney-submission img { width:100%; max-height:145px; object-fit:cover; object-position:top; border-radius:5px; margin-top:12px; }.tourney-submission p { color:#ff8b94; font-size:12px; line-height:1.6; }
.tourney-upload { margin-top:20px; display:flex; align-items:center; flex-wrap:wrap; gap:12px; }.tourney-upload input { flex:1 1 200px; font-size:12px; }.tourney-upload-preview { display:block; max-width:280px; max-height:150px; object-fit:contain; border-radius:7px; margin-top:10px; }
.tourney-evidence summary,.tourney-bp-log summary { cursor:pointer; color:var(--tg-muted); font-size:12px; padding:10px 0; }.tourney-bp-log { margin-top:10px; }.tourney-bp-log summary { text-align:center; }.tourney-evidence img { object-fit:contain; max-height:260px; }.tourney-evidence[open] { margin-top:4px; }
.tourney-own-kd { display:grid; grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,1fr)); gap:12px; align-items:center; padding:13px 16px; border:1px solid #ffffff18; border-radius:8px; margin:14px 0; background:#ffffff03; }.tourney-own-kd > span { font-size:12px; color:var(--tg-muted); }.tourney-own-kd div { display:flex; flex-direction:column; align-items:center; gap:5px; }.tourney-own-kd small { color:var(--tg-muted); font-size:11px; }.tourney-own-kd strong { font:600 24px var(--font-primary,sans-serif); }.tourney-own-kd strong.pending { font:500 12px var(--font-secondary,sans-serif); color:var(--tg-accent); }.tourney-stat-admin { margin-top:20px; padding:14px; border:1px solid #ffffff18; border-radius:8px; }.tourney-stat-admin > summary { font-size:13px; color:var(--tg-accent); cursor:pointer; }.tourney-stat-admin form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; }.tourney-stat-admin label { display:flex; flex-direction:column; gap:7px; font-size:12px; color:var(--tg-muted); }.tourney-stat-admin input { width:75px; }
.tourney-next-action { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:22px 0 0; padding-top:18px; border-top:1px solid #ffffff13; }.tourney-next-action p { font-size:12px; color:var(--tg-muted); margin:0; }
.tourney-stat-row { border-bottom:1px solid #ffffff0c; }.tourney-stat-row summary { display:grid; grid-template-columns:minmax(0,1fr) 90px 65px; gap:12px; list-style:none; padding:13px 10px; cursor:pointer; font-size:13px; }.tourney-stat-row summary::-webkit-details-marker { display:none; }.tourney-stat-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.tourney-stat-row summary span:nth-child(2),.tourney-stat-row summary span:nth-child(3) { text-align:right; font-variant-numeric:tabular-nums; color:var(--tg-muted); }.tourney-stat-row summary i { color:var(--tg-accent); font-size:11px; margin-right:6px; }.tourney-stat-detail { display:flex; flex-wrap:wrap; gap:15px; color:var(--tg-muted); background:#ffffff03; padding:12px; font-size:12px; }.tourney-stat-detail strong { color:var(--text,#ece8e1); margin-left:6px; }.tourney-stats-head { color:var(--tg-muted); padding:15px 10px 7px; display:grid; grid-template-columns:minmax(0,1fr) 90px 65px; gap:12px; font-size:11px; }.tourney-stats-head span:not(:first-child) { text-align:right; }
.tourney-admin-review { margin-top:20px; padding:18px; border:1px solid #ff465525; border-radius:8px; }.tourney-admin-review h4 { margin:0 0 12px; }.tourney-admin-review form { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }.tourney-admin-review input { width:75px; }.tourney-admin-review small { color:var(--tg-muted); display:block; margin-top:9px; }
.tourney select { background:#111c29; color:var(--text,#ece8e1); border:1px solid #ffffff25; border-radius:6px; padding:9px; }.tourney-admin-review label { display:flex; flex-direction:column; align-items:flex-start; gap:7px; font-size:12px; color:var(--tg-muted); }
.tourney-audits { margin-top:22px; padding-top:15px; border-top:1px solid #ffffff12; }.tourney-audits summary { color:var(--tg-accent); font-size:12px; cursor:pointer; padding:8px 0; }.tourney-audits > div { display:flex; flex-wrap:wrap; gap:15px; padding:10px 0; color:var(--tg-muted); font-size:11px; border-bottom:1px solid #ffffff08; }.tourney-audits strong { color:var(--text,#ece8e1); font-weight:500; }
.tourney-fade-enter-active,.tourney-fade-leave-active { transition:opacity .22s,transform .22s; }.tourney-fade-enter-from,.tourney-fade-leave-to { opacity:0; transform:translateY(6px); }
.tourney-history-filter { display:flex; flex-wrap:wrap; margin:0 0 12px; gap:5px; }.tourney-history-filter button { padding:6px 11px; border:1px solid var(--hud-border,#ffffff20); border-radius:5px; color:var(--text,#ece8e1); background:#ffffff04; cursor:pointer; font-size:11px; }.tourney-history-filter button.active { color:#ff4655; border-color:#ff465570; background:#ff46550c; }
body .main-content:has(.tourney-lobby),body .main-content:has(.tourney-series) { overflow-y:auto; }

@media(max-width:767px) {
 body .main-content .match-card-sidebar { width:calc(100% - 16px); max-width:400px; }.main-content .match-card-sidebar .mode-dropdown { width:100%; }.main-content .match-card-sidebar .mode-option { flex:1; padding:8px 7px; font-size:12px; }
 .tourney-shell { padding:16px 0; border-radius:0; }.tourney-header { margin-bottom:18px; }.tourney-header .tourney-pill { max-width:125px; }.tourney-title { font-size:24px; }.tourney-tabs button { padding:10px; }
 .tourney-next { padding:17px 13px; }.tourney-matchup { gap:10px; margin:22px 0; }.tourney-team img { width:51px; height:51px; }.tourney-team strong { font-size:16px; }.tourney-vs { font-size:18px; }.tourney-next-meta { align-items:flex-start; font-size:11px; }.tourney-start { padding:16px 0; }.tourney-start strong { font-size:17px; }
 .tourney-ready-row { align-items:stretch; flex-direction:column; gap:13px; }.tourney-ready-row .tourney-primary { width:100%; }.tourney-roster-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.tourney-roster-actions { align-items:stretch; flex-direction:column; gap:10px; }.tourney-lock { padding:15px; }.tourney-history { padding:16px; }.tourney-history-grid { grid-template-columns:1fr; }
 .tourney-series-score { gap:10px; margin:25px 0; }.tourney-series-score h2 { font-size:16px; }.tourney-series-score .score { font-size:38px; gap:8px; }.tourney-series-score .score em { font-size:20px; }.tourney-game-tab { flex-basis:125px; padding:12px; }.tourney-game-title h3 { font-size:17px; }.tourney-break { padding:18px 14px; gap:12px; }.tourney-break time { font-size:32px; }.tourney-break strong { font-size:13px; }.tourney-break p { font-size:11px; }.tourney-submissions { grid-template-columns:1fr; }.tourney-submission img { max-height:180px; }
 .tourney-next-action { position:sticky; bottom:calc(70px + env(safe-area-inset-bottom,0px)); padding:13px; margin-left:-7px; margin-right:-7px; background:rgba(15,25,35,.92); border:1px solid #ff465525; border-radius:9px; backdrop-filter:blur(16px); z-index:4; align-items:stretch; flex-direction:column; gap:10px; }.tourney-code-form { flex-direction:column; align-items:stretch; }.tourney-code-form input { width:100%; }.tourney-history-filter { justify-content:flex-start; }
 .tourney-bp-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.tourney-bp-actions button { min-width:0; padding:10px 8px; }.tourney-stat-row summary,.tourney-stats-head { grid-template-columns:minmax(0,1fr) 85px 45px; gap:8px; }
 .tourney-series.tourney-shell { padding:15px 0; }.tourney-series .tourney-header { margin-bottom:12px; align-items:center; }.tourney-series .tourney-header p { display:none; }.tourney-series .tourney-title { font-size:22px; }.tourney-series .tourney-eyebrow { font-size:10px; margin-bottom:4px; }.tourney-series-score { margin:15px 0; }.tourney-series-score h2 { font-size:15px; }.tourney-series-score .score { font-size:34px; }.tourney-series .tourney-room-tools { gap:7px; margin:10px 0; }.tourney-series .tourney-room-tools > .tourney-hint { font-size:11px; width:100%; text-align:center; }.tourney-series .tourney-code,.tourney-series .tourney-room-tools > a { font-size:12px; padding:9px 11px; }.tourney-bp-log { margin-top:0; }.tourney-bp-log summary { padding:6px 0; }.tourney-game-tabs { margin-top:12px; padding-bottom:10px; gap:6px; }.tourney-game-tab { flex-basis:103px; padding:9px 10px; gap:5px; }.tourney-game-tab strong { font-size:13px; }.tourney-game { padding-top:14px; }.tourney-game-title h3 { font-size:15px; }.tourney-game .tourney-hint { font-size:12px; margin:8px 0; }.tourney-break { margin:13px 0; padding:14px 12px; }.tourney-break p { display:none; }.tourney-break time { font-size:30px; }.tourney-next-action { position:relative; bottom:auto; margin:12px 0; padding:12px; flex-direction:column; gap:9px; }.tourney-next-action .tourney-primary { padding:12px 16px; width:100%; }.tourney-next-action p { font-size:12px; }.tourney-submissions { grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }.tourney-submission { padding:11px; }.tourney-submission-head { flex-direction:column; align-items:flex-start; gap:7px; }.tourney-submission-head strong { overflow-wrap:anywhere; font-size:12px; }.tourney-submission p { font-size:11px; }.tourney-submission .tourney-secondary { padding:8px; font-size:12px; }.tourney-evidence summary { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .tourney *, .tourney *::before { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media(max-width:767px) { .tourney-series .tourney-room-tools > .tourney-hint { display:none; }.tourney-series-score h2 { line-height:1.25; }.tourney-own-kd { margin:11px 0; padding:11px 13px; } }
.tourney-my-evidence,.tourney-evidence-admin,.tourney-evidence-pending,.tourney-pause-banner { padding:14px; border:1px solid #ffffff18; border-radius:8px; margin:16px 0; background:#ffffff03; }.tourney-my-evidence a,.tourney-evidence-admin a { color:var(--tg-accent); font-size:12px; display:inline-block; margin-top:10px; }.tourney-evidence img { max-width:100%; }.tourney-evidence-admin > summary { color:var(--tg-accent); font-size:13px; cursor:pointer; }.tourney-evidence-row { display:flex; gap:12px; padding:10px 0; align-items:center; flex-wrap:wrap; border-bottom:1px solid #ffffff0b; font-size:12px; }.tourney-evidence-row span:nth-child(2) { color:var(--tg-muted); margin-left:auto; }.tourney-evidence-pending { border-color:#ff465550; }.tourney-evidence-pending p,.tourney-pause-banner p { color:var(--tg-muted); font-size:12px; line-height:1.6; }.tourney-evidence-pending > div { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:12px; }.tourney-pause-banner button { margin-left:12px; }.tourney-manual-finish { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:18px; margin:16px 0; border:1px solid #ffffff1a; border-radius:10px; background:rgba(15,25,35,.55); }.tourney-manual-finish strong { font-size:15px; }.tourney-manual-finish p { font-size:12px; color:var(--tg-muted); margin:7px 0 0; }.tourney-manual-finish .tourney-error { flex:1 1 100%; margin:0; }
.tourney-pause-action { margin:16px 0; padding:12px 14px; border:1px solid #ffffff16; border-radius:8px; }.tourney-pause-action summary { cursor:pointer; color:var(--tg-muted); font-size:12px; }.tourney-pause-action p { color:var(--tg-muted); font-size:12px; line-height:1.6; }.tourney-pause-action button + button { margin-left:8px; }
.tourney-missing-maps summary { cursor:pointer; color:var(--tg-accent); font-size:12px; }.tourney-missing-maps > div { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tourney-lobby { --tg-motion:cubic-bezier(.22,1,.36,1); padding:0; gap:0; }
.tourney-lobby > .tourney-header,.tourney-lobby > .tourney-schedule,.tourney-lobby > .tourney-roster-tab,.tourney-lobby > div:has(> .tourney-next) { width:100%; }
.tourney-lobby .tourney-header { margin-bottom:12px; }
.tourney-lobby.is-empty .tourney-empty { padding:16px 20px; }
.tourney-lobby.is-empty .match-core-group { min-height:280px; }
.tourney-registration { display:flex; flex-direction:column; align-items:center; gap:14px; width:100%; }
.tourney-registration .match-anim-container { margin:0; height:84px; }
.tourney-registration-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:0 0 12px; border-bottom:1px solid #ffffff12; }
.tourney-registration-heading strong { font-size:14px; font-weight:500; }
.tourney-registration-heading strong span { margin-left:8px; color:var(--tg-accent); font-family:var(--font-primary); }
.tourney-registration-heading small { color:var(--tg-muted); font-size:12px; }
.tourney-entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; width:100%; }
.tourney-entry-card { display:flex; align-items:center; gap:12px; padding:14px; min-width:0; background:rgba(15,25,35,.4); border:1px solid #ffffff18; border-radius:8px; transition:border-color .22s,background .22s; }
.tourney-entry-card.mine { border-color:#ff46555c; background:#ff465509; }
.tourney-entry-card > img { width:44px; height:44px; object-fit:cover; border-radius:6px; border:1px solid #ffffff18; }
.tourney-entry-card > div { min-width:0; flex:1; }
.tourney-entry-card strong { display:block; font-family:var(--font-primary); font-size:17px; overflow-wrap:anywhere; }
.tourney-entry-card small { display:block; color:var(--tg-muted); font-size:11px; margin-top:6px; }
.tourney-entry-card > i { color:var(--tg-green); font-size:12px; }

/* Reserve space below the utility navigation without moving the mode selector. */
@media(min-width:769px) {
 body .main-content:has(.tourney-lobby:not(.is-empty)) > .match-panel .match-card-body { padding-top:72px; }
}

/* Animate stable Vue surfaces once; bracket polling may rebuild its own cards. */
.tourney-lobby > .tourney-header { margin-bottom:18px; animation:tourney-lobby-reveal .28s var(--tg-motion) both; }
.tourney-lobby > .tourney-tabs { animation:tourney-lobby-reveal .28s .04s var(--tg-motion) both; }
.tourney-lobby > .tourney-schedule,
.tourney-lobby > .tourney-roster-tab,
.tourney-lobby > div:has(> .tourney-next) { animation:tourney-lobby-reveal .3s .07s var(--tg-motion) backwards; }
.tourney-lobby > .tourney-maps { animation:tourney-lobby-reveal .28s .11s var(--tg-motion) both; }
.tourney-lobby > .match-core-group,
.tourney-lobby > .match-action-group { animation:tourney-lobby-reveal .28s var(--tg-motion) both; }
.tourney-lobby .tourney-fade-enter-active,
.tourney-lobby .tourney-fade-leave-active { transition:opacity .24s ease,transform .24s var(--tg-motion); }
.tourney-lobby .tourney-fade-enter-from { opacity:0; transform:translateY(8px); }
.tourney-lobby .tourney-fade-leave-to { opacity:0; transform:translateY(-5px); }

.tourney-lobby > .tourney-tabs {
 position:relative; width:min(100%,400px); align-self:center; gap:2px;
 padding:4px; margin:0 auto 22px; border:0; border-radius:12px;
 background:rgba(15,22,35,.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.tourney-lobby .tourney-tabs button {
 flex:1; min-width:0; padding:8px 18px; border:0; border-radius:10px;
 color:rgba(236,232,225,.6); background:transparent; box-shadow:none;
 font:400 14px var(--font-primary); white-space:nowrap;
 transition:color .22s ease,background .22s ease,transform .22s var(--tg-motion);
}
.tourney-lobby .tourney-tabs button.active {
 color:#fff; font-weight:700; background:rgba(255,70,85,.55); box-shadow:none;
}
.tourney-lobby .tourney-tabs button:active { transform:translateY(1px); }
.tourney-lobby .tourney-entry-card,
.tourney-lobby .tourney-roster-member,
.tourney-lobby .tb-match { transition:border-color .24s ease,background .24s ease,box-shadow .24s ease,transform .24s var(--tg-motion); }
.tourney-lobby .tourney-map-chip { transition:border-color .22s ease,color .22s ease,background .22s ease; }
.tourney-lobby .tourney-primary,
.tourney-lobby .tourney-secondary { transition:color .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s var(--tg-motion); }
.tourney-lobby .tourney-primary:active:not(:disabled),
.tourney-lobby .tourney-secondary:active:not(:disabled) { transform:translateY(1px); }
.tourney-lobby .tourney-primary:disabled { transition:opacity .24s ease,background .24s ease; }

/* The schedule fades into the wallpaper on both sides, including while dragging. */
.tourney-lobby .tb-viewport {
 --tg-edge:24px;
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--tg-edge),#000 calc(100% - var(--tg-edge)),transparent);
 mask-image:linear-gradient(90deg,transparent,#000 var(--tg-edge),#000 calc(100% - var(--tg-edge)),transparent);
}
.tourney-lobby .tb-canvas { padding-left:var(--tg-edge,24px); padding-right:var(--tg-edge,24px); }
.tourney-lobby .tb-toolbar { border-bottom-color:transparent; position:relative; }
.tourney-lobby .tb-toolbar::after {
 content:''; position:absolute; inset:auto 0 0; height:1px; pointer-events:none;
 background:linear-gradient(90deg,transparent,#ffffff20 18%,#ffffff20 82%,transparent);
}

@media(hover:hover) and (pointer:fine) {
 .tourney-lobby .tourney-entry-card:hover,
 .tourney-lobby .tourney-roster-member:hover,
 .tourney-lobby .tb-match:hover { transform:translateY(-2px); box-shadow:0 8px 22px #0002; }
 .tourney-lobby .tourney-map-chip:hover { color:var(--text,#ece8e1); border-color:#ffffff2e; background:#ffffff05; }
 .tourney-lobby .tourney-primary:hover:not(:disabled) { box-shadow:0 5px 18px #ff465522; }
 .tourney-lobby .tourney-tabs button:hover:not(.active) { color:#ece8e1; background:rgba(255,255,255,.08); }
 .tourney-lobby .tourney-tabs button.active:hover { color:#fff; background:rgba(255,70,85,.65); }
}

@keyframes tourney-lobby-reveal {
 from { opacity:0; transform:translateY(9px); }
 to { opacity:1; transform:translateY(0); }
}
@media(max-width:768px) {
 .tourney-lobby:not(.is-empty) { padding-top:6px; }
 .tourney-lobby .tourney-tabs button { padding:8px 7px; font-size:12px; }
 .tourney-lobby .tb-viewport { --tg-edge:14px; }
 .tourney-lobby .tb-canvas { padding-left:var(--tg-edge); padding-right:var(--tg-edge); }
}
@media(prefers-reduced-motion:reduce) {
 .tourney-lobby,.tourney-lobby *,
 .tourney-lobby::before,.tourney-lobby::after,
 .tourney-lobby *::before,.tourney-lobby *::after { animation:none!important; transition:none!important; }
 .tourney-lobby .tourney-fade-enter-from,
 .tourney-lobby .tourney-fade-leave-to,
 .tourney-lobby .tb-match:hover,
 .tourney-lobby .tourney-entry-card:hover,
 .tourney-lobby .tourney-roster-member:hover { transform:none; }
}
@media(max-width:767px) { .tourney-lobby .tourney-header { margin-bottom:8px; }.tourney-lobby .tourney-title { font-size:22px; }.tourney-lobby .tourney-eyebrow { font-size:9px; }.tourney-lobby .tourney-header p { font-size:11px; }.tourney-registration { gap:10px; }.tourney-registration-heading { align-items:flex-start; }.tourney-registration-heading small { max-width:145px; text-align:right; font-size:11px; }.tourney-entry-grid { grid-template-columns:1fr; }.tourney-entry-card { padding:12px; }.tourney-registration .match-anim-container { height:68px; }.tourney-history-filter button { flex:1; white-space:nowrap; } }
@media(max-width:767px) { .tourney-manual-finish { align-items:stretch; flex-direction:column; padding:14px; gap:12px; }.tourney-my-evidence { margin:12px 0; }.tourney-complete-action,.tourney-pause-action { margin:12px 0; }.tourney-pause-banner .tourney-primary { margin:12px 0 0; width:100%; }.tourney-evidence-pending { padding:10px 12px; margin:10px 0; font-size:13px; }.tourney-evidence-pending p { margin:7px 0; }.tourney-pause-banner { padding:10px 12px; margin:10px 0; font-size:13px; }.tourney-pause-banner p { margin:7px 0; } }

/* Series room: the existing glass material, with the two teams facing each other. */
.tourney-series{--series-motion:var(--hud-transition-base,.24s);--series-ease:var(--hud-ease,ease);width:100%;min-width:0;padding-bottom:calc(24px + env(safe-area-inset-bottom));color:var(--text)}
.tourney-series .tourney-header{align-items:center;margin-bottom:18px}.tourney-series .tourney-title{font-size:24px}.tourney-series .tourney-pill{border-radius:var(--control-radius,6px);border-color:var(--border);background:var(--card);color:var(--text-muted)}
.tourney-series .tourney-series-score{isolation:isolate;position:relative;gap:24px;padding:26px 24px;margin:0 0 18px;border:var(--glass-border-main);border-radius:var(--radius-lg,14px);background:var(--glass-bg-main);backdrop-filter:var(--glass-filter-main);-webkit-backdrop-filter:var(--glass-filter-main);overflow:hidden}
.tourney-series-score:before,.tourney-series-score:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1}.tourney-series-score:before{background:linear-gradient(110deg,rgba(255,70,85,.1),transparent 40%)}.tourney-series-score:after{background:linear-gradient(250deg,rgba(8,193,138,.08),transparent 40%)}
.tourney-series .tourney-duel-team{position:relative;display:flex;gap:14px;align-items:center;min-width:0}.tourney-series .tourney-duel-team.team-b{flex-direction:row-reverse}.tourney-series .tourney-duel-team img{width:60px;height:60px;flex-shrink:0;padding:4px;border-radius:12px;object-fit:cover;border:1px solid rgba(255,70,85,.35);background:rgba(0,0,0,.16)}.tourney-series .tourney-duel-team.team-b img{border-color:rgba(8,193,138,.35)}.tourney-series .tourney-duel-team h2{font:600 clamp(16px,1.8vw,24px)/1.45 var(--font-secondary);text-align:left;overflow-wrap:anywhere}.tourney-series .tourney-duel-team.team-b h2{text-align:right}.tourney-series .tourney-duel-team.winner h2{color:var(--gold)}.tourney-series .score{font-size:60px;gap:18px;line-height:1;font-variant-numeric:tabular-nums}.tourney-series .score em{color:var(--text-muted);font-size:28px}
.tourney-series .tourney-room-tools{justify-content:space-between;margin:12px 0 20px;gap:12px}.tourney-series .player-room-code{min-width:0}.tourney-series .tourney-primary,.tourney-series .tourney-secondary{border-radius:var(--control-radius,6px);font-family:var(--font-secondary);transition:opacity var(--series-motion) var(--series-ease),background var(--series-motion) var(--series-ease),border-color var(--series-motion) var(--series-ease)}.tourney-series .tourney-primary:hover:not(:disabled){transform:none}.tourney-series .tourney-secondary{border-color:var(--border);background:var(--card)}.tourney-series .tourney-primary:disabled,.tourney-series .tourney-primary.voted{background:rgba(128,138,149,.16);border-color:var(--border);color:var(--text-muted);opacity:1;cursor:not-allowed}
.tourney-series .tourney-code-form{justify-content:flex-start;padding:16px;margin:0 0 18px;border:var(--glass-border-main);border-radius:var(--radius-lg,14px);background:var(--glass-bg-main)}.tourney-series .tourney-code-input{flex:1;max-width:360px}.tourney-series .tourney-code-input input{width:100%;min-height:44px;background:rgba(0,0,0,.25);border-color:var(--border);border-radius:var(--control-radius,6px)}.tourney-series .tourney-code-icon{width:44px;height:44px;color:var(--text-muted)}
.tourney-series .tourney-preparation,.tourney-series .tourney-bp{margin:0 0 18px;padding:22px;border:var(--glass-border-main);border-radius:var(--radius-lg,14px);background:var(--glass-bg-main);backdrop-filter:var(--glass-filter-main);-webkit-backdrop-filter:var(--glass-filter-main)}.tourney-series .tourney-preparation{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}.tourney-preparation>i{color:var(--red);font-size:24px}.tourney-preparation>strong{font-size:16px;font-weight:500}.tourney-preparation>time{font:38px var(--font-primary);font-variant-numeric:tabular-nums;color:var(--text)}.tourney-preparation-progress{grid-column:1/-1;height:3px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.tourney-preparation-progress span{display:block;height:100%;background:var(--red);transition:width 1s linear}
.tourney-series .tourney-bp-turn{display:flex;justify-content:space-between;align-items:center;gap:12px}.tourney-bp-turn strong{font-size:16px;overflow-wrap:anywhere}.tourney-bp-turn>span{font-size:12px;color:var(--text-muted);flex-shrink:0}.tourney-series .tourney-bp-map-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tourney-series .tourney-bp-map-image{border-width:1px;border-radius:var(--hud-radius,8px);transition:border-color var(--series-motion) var(--series-ease),box-shadow var(--series-motion) var(--series-ease)}.tourney-series .tourney-bp-map-image img{transition:filter var(--series-motion) var(--series-ease),transform var(--series-motion) var(--series-ease)}.tourney-series .tourney-bp-map-name{transition:opacity var(--series-motion) var(--series-ease),transform var(--series-motion) var(--series-ease)}.tourney-series .tourney-bp-map.banned.is-viewing img,.tourney-series .tourney-bp-map.banned:focus-visible img{filter:blur(4px) brightness(.6) grayscale(1);transform:scale(1.06)}.tourney-series .tourney-bp-map.picked.is-viewing img,.tourney-series .tourney-bp-map.picked:focus-visible img{filter:blur(4px) brightness(.6) grayscale(0);transform:scale(1.06)}.tourney-series .tourney-bp-map.is-viewing .tourney-bp-map-name,.tourney-series .tourney-bp-map:focus-visible .tourney-bp-map-name{opacity:1;transform:translateY(0)}.tourney-series .tourney-bp-map.is-viewing .tourney-bp-map-mark{opacity:0}.tourney-series .tourney-bp-map-mark{transition:opacity var(--series-motion) var(--series-ease)}
.tourney-series .tourney-game-tabs{margin-top:16px;gap:10px}.tourney-series .tourney-game-tab{border-color:var(--border);background:var(--card);border-radius:var(--hud-radius,8px)}.tourney-series .tourney-game-tab.active{border-color:rgba(255,70,85,.5);background:rgba(255,70,85,.06)}.tourney-series .tourney-game{padding:20px;border:var(--glass-border-main);border-radius:var(--radius-lg,14px);background:var(--glass-bg-main)}.tourney-series .tourney-game-title{margin-bottom:16px}.tourney-series .tourney-game-title h3{font:600 18px var(--font-secondary)}.tourney-series .tourney-game .tourney-empty{padding:24px}.tourney-series .tourney-side-choice{margin:18px 0}.tourney-side-choice>p{font-size:13px;color:var(--text-muted)}.tourney-series .tourney-side-line{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0 18px;font-size:12px;color:var(--text)}.tourney-side-line span{color:var(--text-muted);margin-right:12px}.tourney-side-line i{color:var(--text-muted)}.tourney-series .tourney-complete-action{margin:20px 0;display:flex;justify-content:flex-end}.tourney-series .tourney-complete-action>button{min-width:180px}
.tourney-series .tourney-break,.tourney-series .tourney-next-action,.tourney-series .tourney-pause-banner,.tourney-series .tourney-pause-action{border:var(--glass-border-main);border-radius:var(--hud-radius,8px);background:var(--card);padding:16px}.tourney-series .tourney-break{margin:18px 0}.tourney-series .tourney-break strong{font-weight:500}.tourney-series .tourney-break time{font-size:32px;color:var(--text)}.tourney-series .tourney-break.finished time{font-size:16px;color:var(--green)}.tourney-series .tourney-next-action{position:static;margin:12px 0;box-shadow:none}.tourney-series .tourney-next-action p{font-size:12px;color:var(--text-muted)}.tourney-series .tourney-pause-action>summary{min-height:30px;font-size:12px}.tourney-series .tourney-pause-action button{margin:8px 8px 0 0}.tourney-series .tourney-missing-maps{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tourney-score-confirm{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.tourney-score-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:end;max-width:360px;margin:0 auto}.tourney-score-inputs label{display:flex;flex-direction:column;gap:8px;min-width:0;text-align:center}.tourney-score-inputs label span{font-size:12px;color:var(--text-muted)}.tourney-series .tourney-score-inputs input{min-height:52px;width:100%;background:rgba(0,0,0,.25);border:1px solid var(--border);text-align:center;font:28px var(--font-primary);border-radius:var(--control-radius,6px)}.tourney-score-inputs>span{padding-bottom:12px;font-size:20px;color:var(--text-muted)}.tourney-score-confirm>p{margin:12px 0;text-align:center;font-size:12px;color:var(--text-muted)}.tourney-score-confirm>p.disagreement{color:var(--red)}.tourney-score-confirm>button{width:100%;min-height:48px}.tourney-series .player-screenshot-panel{max-width:none}.tourney-exit-action{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:18px 0}.tourney-exit-action>p{font-size:12px;color:var(--text-muted)}.tourney-stat-edit{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.tourney-stat-edit label{display:flex;flex-direction:column;gap:6px;font-size:12px;flex:1 0 100px}.tourney-stat-edit label input{width:100%}
.tourney-series .tourney-fade-enter-active,.tourney-series .tourney-fade-leave-active,.tourney-series .tourney-map-enter-active,.tourney-series .tourney-map-leave-active{transition:opacity var(--series-motion) var(--series-ease),transform var(--series-motion) var(--series-ease)}.tourney-series .tourney-fade-enter-from,.tourney-series .tourney-fade-leave-to,.tourney-series .tourney-map-enter-from,.tourney-series .tourney-map-leave-to{opacity:0;transform:translateY(8px)}.tourney-series .tourney-map-move{transition:transform var(--series-motion) var(--series-ease)}
@media(hover:hover){.tourney-series .tourney-bp-map.banned:hover img{filter:blur(4px) brightness(.6) grayscale(1);transform:scale(1.06)}.tourney-series .tourney-bp-map.picked:hover img{filter:blur(4px) brightness(.6) grayscale(0);transform:scale(1.06)}.tourney-series .tourney-bp-map.banned:hover .tourney-bp-map-name,.tourney-series .tourney-bp-map.picked:hover .tourney-bp-map-name{opacity:1;transform:none}.tourney-series .tourney-bp-map.banned:hover .tourney-bp-map-mark,.tourney-series .tourney-bp-map.picked:hover .tourney-bp-map-mark{opacity:0}}
@media(max-width:767px){.tourney-series.tourney-shell{padding:12px 0 calc(18px + env(safe-area-inset-bottom))}.tourney-series .tourney-header{margin-bottom:12px}.tourney-series .tourney-title{font-size:20px}.tourney-series .tourney-series-score{padding:20px 12px;gap:10px}.tourney-series .tourney-duel-team,.tourney-series .tourney-duel-team.team-b{flex-direction:column;gap:9px}.tourney-series .tourney-duel-team img{width:48px;height:48px;border-radius:10px}.tourney-series .tourney-duel-team h2,.tourney-series .tourney-duel-team.team-b h2{text-align:center;font-size:13px;line-height:1.45}.tourney-series .score{font-size:42px;gap:8px}.tourney-series .score em{font-size:20px}.tourney-series .tourney-room-tools{align-items:stretch;margin:12px 0;gap:10px}.tourney-series .tourney-room-tools>*{flex:1 0 100%}.tourney-series .player-room-code .room-code-display{width:100%;padding:10px}.tourney-series .player-room-code .room-code-text{margin-right:auto;font-size:1.45rem}.tourney-series .player-voice-link{width:100%;font-size:12px}.tourney-series .tourney-code-form{flex-wrap:wrap;padding:12px;gap:8px}.tourney-series .tourney-code-form .tourney-code-input{max-width:none;flex-basis:100%}.tourney-series .tourney-code-form>button{flex:1}.tourney-series .tourney-bp,.tourney-series .tourney-preparation{padding:14px}.tourney-series .tourney-preparation{gap:12px}.tourney-preparation>strong{font-size:13px}.tourney-preparation>time{font-size:30px}.tourney-series .tourney-bp-turn{align-items:flex-start}.tourney-bp-turn strong{font-size:14px}.tourney-bp-turn>span{font-size:11px}.tourney-series .tourney-bp-map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.tourney-series .tourney-game{padding:14px}.tourney-series .tourney-game-tab{flex-basis:128px;padding:10px}.tourney-series .tourney-game-title h3{font-size:16px}.tourney-series .tourney-complete-action>button{width:100%}.tourney-series .tourney-side-choice .tourney-bp-actions{display:grid;grid-template-columns:1fr 1fr}.tourney-series .tourney-side-choice .tourney-bp-actions>button{min-width:0;padding:12px}.tourney-series .tourney-next-action{align-items:stretch}.tourney-series .tourney-next-action .tourney-primary{width:100%}.tourney-series .tourney-break{padding:14px}.tourney-series .tourney-break time{font-size:28px}.tourney-exit-action{flex-direction:column;align-items:stretch;gap:8px}.tourney-exit-action>p{text-align:center}.tourney-score-inputs{gap:12px}.tourney-series .tourney-score-inputs input{font-size:26px}}
@media(prefers-reduced-motion:reduce){.tourney-series *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.tourney-series .tourney-map-overview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:16px 0}.tourney-series .tourney-map-overview .tourney-bp-map-name{font-size:11px}.tourney-series .tourney-map-overview .tourney-bp-map-mark{width:18px;height:18px;font-size:9px;top:5px;right:5px}
@media(max-width:767px){.tourney-series .tourney-map-overview{grid-template-columns:repeat(7,90px);overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}}

.tourney-series .tourney-game-tab.has-map-background,.tourney-series .tourney-game-tab.has-map-background.active{position:relative;min-height:106px;background-image:linear-gradient(105deg,rgba(0,0,0,.85),rgba(0,0,0,.7)),var(--map-tab-image);background-position:center;background-size:cover;color:var(--text);text-shadow:0 1px 4px rgba(0,0,0,.8)}.tourney-series .tourney-game-tab.has-map-background>span:first-child,.tourney-series .tourney-game-tab.has-map-background>small{color:rgba(236,232,225,.8)}.tourney-series .tourney-game-tab.has-map-background.active{border-color:var(--red);box-shadow:inset 0 -2px 0 var(--red)}.tourney-series .player-screenshot-panel .screenshot-example-button,.tourney-series .player-screenshot-panel .screenshot-remove-btn{min-height:44px}
@media(max-width:767px){.tourney-series .tourney-game-tab.has-map-background{min-height:100px;padding:12px}}

/* Room detail shares the ordinary room header and reserves the series card for results. */
.tourney-series.tourney-series-readonly{padding:0;margin-top:24px}
.tourney-readonly-summary{padding:20px 24px}
.tourney-series-readonly .tourney-header{margin-bottom:16px}
.tourney-series-readonly .tourney-title{font:600 16px var(--font-secondary)}
.tourney-series-readonly .tourney-series-score{padding:0;margin:0;border:0;border-radius:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}
.tourney-series-readonly .tourney-series-score:before,.tourney-series-readonly .tourney-series-score:after{display:none}
.tourney-series-readonly .tourney-duel-team img{width:44px;height:44px}
.tourney-series-readonly .tourney-duel-team h2{font-size:18px}
.tourney-series-readonly .score{font-size:40px}
.tourney-series-readonly .tourney-game-tabs{margin:18px 0 0;padding-bottom:0}
.tourney-series-readonly .tourney-game-tab.has-map-background{min-height:76px;justify-content:center}
.tourney-readonly-review{margin-top:20px;padding:20px 24px;border:1px solid #ff465535;border-radius:8px;background:rgba(15,25,35,.52)}
.tourney-readonly-review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.tourney-readonly-review-header h3{margin:0;font-size:16px}.tourney-readonly-review-header p{margin:5px 0 0;color:var(--tg-muted);font-size:12px}
.tourney-admin-upload{margin-top:16px;padding:14px;border:1px solid #ffffff18;border-radius:8px;background:#ffffff03}.tourney-admin-upload>summary{font-size:13px;color:var(--tg-accent);cursor:pointer}.tourney-admin-upload label{display:flex;flex-direction:column;gap:7px;color:var(--tg-muted);font-size:12px;min-width:0}
.tourney-readonly-review .tourney-evidence-admin,.tourney-readonly-review .tourney-stat-admin{margin-top:16px}.tourney-readonly-review .tourney-admin-review{margin-top:16px}
.tourney-readonly-review .tourney-upload{margin-top:12px}.tourney-readonly-review .tourney-upload-preview{max-height:180px}
@media(max-width:767px){.tourney-readonly-summary{padding:16px 14px}.tourney-series-readonly .tourney-header{margin-bottom:14px}.tourney-series-readonly .tourney-title{font-size:14px}.tourney-series-readonly .tourney-duel-team img{width:40px;height:40px}.tourney-series-readonly .tourney-duel-team h2{font-size:12px}.tourney-series-readonly .score{font-size:32px}.tourney-series-readonly .tourney-game-tabs{margin-top:16px}.tourney-series-readonly .tourney-game-tab.has-map-background{min-height:72px}}
.tourney-series-readonly .tourney-readonly-review{margin-left:0;margin-right:0}.tourney-series-readonly .tourney-readonly-review .tourney-evidence-admin{background:#ffffff03}
@media(max-width:767px){.tourney-readonly-review{padding:16px 14px}.tourney-readonly-review .tourney-upload>input{max-width:100%;min-width:0;flex-basis:100%}.tourney-readonly-review .tourney-stat-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 0}.tourney-readonly-review .tourney-stat-row span{font-size:12px;overflow-wrap:anywhere}.tourney-readonly-review .tourney-stat-row button{font-size:12px;padding:8px 10px}}

/* Player perspective keeps identity colors separate from the team badge's own color. */
.tourney-series .tourney-duel-team{--team-tone:var(--text);--avatar-tone-rgb:107,162,209}
.tourney-series .tourney-duel-team.mine,.tourney-series .score .mine{--team-tone:var(--tg-green);color:var(--tg-green)}
.tourney-series .tourney-duel-team.enemy,.tourney-series .score .enemy{--team-tone:var(--tg-accent);color:var(--tg-accent)}
.tourney-series .tourney-duel-team.left-team{flex-direction:row}.tourney-series .tourney-duel-team.right-team{flex-direction:row-reverse}
.tourney-series .tourney-duel-identity{min-width:0;text-align:left}.tourney-series .tourney-duel-team.right-team .tourney-duel-identity{text-align:right}.tourney-series .tourney-duel-team.left-team h2{text-align:left}.tourney-series .tourney-duel-team.right-team h2{text-align:right}
.tourney-series .tourney-duel-identity small{display:block;margin-bottom:5px;color:var(--team-tone);font-size:11px;font-weight:600;letter-spacing:.04em}
.tourney-series .player-perspective .tourney-duel-team h2{color:var(--team-tone)}
.tourney-series .tourney-team-avatar{position:relative;isolation:isolate;flex:0 0 auto;display:grid;place-items:center;width:60px;height:60px}
.tourney-series .tourney-team-avatar:before{content:'';position:absolute;inset:-15px;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(var(--avatar-tone-rgb),.32),rgba(var(--avatar-tone-rgb),.1) 42%,transparent 72%);filter:blur(6px);transition:background var(--series-motion) var(--series-ease)}
.tourney-series .tourney-duel-team .tourney-team-avatar img{border-color:rgba(var(--avatar-tone-rgb),.5)}
.tourney-series .player-perspective:before{background:linear-gradient(110deg,rgba(107,226,178,.065),transparent 40%)}.tourney-series .player-perspective:after{background:linear-gradient(250deg,rgba(255,70,85,.075),transparent 40%)}
.tourney-series .tourney-bp.mine{--bp-turn-tone:var(--tg-green)}.tourney-series .tourney-bp.enemy{--bp-turn-tone:var(--tg-accent)}.tourney-series .tourney-bp.team-a{--bp-turn-tone:#87bfff}.tourney-series .tourney-bp.team-b{--bp-turn-tone:#ffc873}
.tourney-series .tourney-score-inputs .mine{--score-tone:var(--tg-green)}
.tourney-series .tourney-score-inputs .enemy{--score-tone:var(--tg-accent)}
.tourney-series .tourney-score-inputs label input{border-color:var(--score-tone)}
.tourney-series .tourney-score-inputs label input:focus-visible{outline-color:var(--score-tone)}
.tourney-series .tourney-pause-action button:disabled{background:rgba(128,138,149,.16);border-color:var(--border);color:var(--text-muted);opacity:1;cursor:not-allowed}
.tourney-series .tourney-bp-turn strong{color:var(--bp-turn-tone,var(--text))}.tourney-series .tourney-bp-map.ready{--bp-frame:var(--bp-turn-tone,#ffffff28)}
.tourney-series .tourney-bp-map.mine{--bp-frame:var(--tg-green)}.tourney-series .tourney-bp-map.enemy{--bp-frame:var(--tg-accent)}
.tourney-series .tourney-bp-map.ready:hover:not(:disabled) .tourney-bp-map-image{border-color:var(--bp-turn-tone,var(--tg-accent));box-shadow:0 0 0 1px var(--bp-turn-tone,var(--tg-accent))}
.tourney-series .tourney-bp .tourney-bp-map:focus-visible{outline-color:var(--bp-turn-tone,var(--tg-accent))}
@media(max-width:767px){.tourney-series .tourney-duel-team.left-team,.tourney-series .tourney-duel-team.right-team{flex-direction:column}.tourney-series .tourney-duel-identity,.tourney-series .tourney-duel-team.right-team .tourney-duel-identity{text-align:center}.tourney-series .tourney-team-avatar{width:48px;height:48px}.tourney-series .tourney-duel-identity small{font-size:10px;margin-bottom:4px}.tourney-series .tourney-duel-team.left-team h2,.tourney-series .tourney-duel-team.right-team h2{text-align:center;font-size:13px;line-height:1.45}.tourney-series .tourney-team-avatar:before{inset:-12px}}
