:root{--yellow:#ffcc21;--yellow-2:#f4b800;--black:#101010;--ink:#1a1a1a;--muted:#6d6d6d;--paper:#fff;--line:#e8e5dc;--danger:#c83b32;--shadow:0 22px 60px rgba(0,0,0,.2)}
button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#101010;color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;min-width:320px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 0%,rgba(255,204,33,.16),transparent 34%),linear-gradient(135deg,transparent 0 48%,rgba(255,255,255,.025) 48% 52%,transparent 52%);background-size:auto,44px 44px}
button,input,select{font:inherit}.page-shell{width:min(1480px,100%);margin:auto;padding:28px 36px 44px;position:relative}.site-header{display:flex;align-items:center;justify-content:space-between;color:white;margin-bottom:28px}.brand{display:flex;align-items:center;gap:18px}.brand-logo{width:104px;height:104px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 0 0 5px var(--yellow),0 10px 30px rgba(0,0,0,.4)}h1,h2,h3,p{margin-top:0}.store-name{font-size:13px;font-weight:800;letter-spacing:.08em;color:var(--yellow);margin-bottom:3px}.brand h1{font-size:clamp(24px,3vw,40px);margin:0;letter-spacing:.02em}.event-type{display:inline-block;margin:5px 0 4px;padding:3px 10px;background:var(--yellow);color:#111;border-radius:6px;font-weight:900;font-size:15px}.subtitle{margin:0;color:#d8d8d8}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.18em;color:var(--yellow-2);margin-bottom:5px}.header-actions{display:flex;align-items:center;gap:8px}.sound-toggle,.event-switch{border:1px solid #4a493f;background:rgba(255,255,255,.06);color:#ddd;padding:9px 12px}.sound-toggle:hover,.event-switch:hover{border-color:var(--yellow);color:var(--yellow)}.admin-entry,.text-button{border:0;background:transparent;color:#aaa;cursor:pointer;padding:10px}.admin-entry:hover,.text-button:hover{color:var(--yellow)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.7fr);gap:20px}.panel{background:var(--paper);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.draw-stage{border-top:7px solid var(--yellow)}.section-heading,.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.section-heading h2,.match-heading h2,.admin-heading h2{font-size:28px;margin:0}.capacity{text-align:right;display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:end}.capacity strong{font-size:44px}.capacity span{font-weight:800}.capacity small{grid-column:1/-1;color:var(--muted)}
.main-nav{display:flex;gap:8px;margin:0 0 24px;overflow:auto;padding-bottom:3px}.main-nav button{border:1px solid #3d3d38;background:#1b1b19;color:#aaa;padding:10px 16px;white-space:nowrap}.main-nav button.active{background:var(--yellow);border-color:var(--yellow);color:#111}.view-section{animation:view-in .25s ease}@keyframes view-in{from{opacity:.4;transform:translateY(6px)}}
#drawForm{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin-top:26px}label{display:grid;gap:8px;font-weight:700;font-size:14px}input,select{width:100%;border:1px solid #d7d4ca;border-radius:12px;padding:14px 15px;background:#faf9f5;outline:none}input:focus,select:focus{border-color:var(--yellow-2);box-shadow:0 0 0 3px rgba(255,204,33,.18)}button{border-radius:12px;font-weight:800;cursor:pointer}.primary-button{border:0;background:var(--yellow);color:#111;padding:15px 24px;box-shadow:0 5px 0 #c99800}.primary-button:hover{background:#ffd94f}.primary-button:active{transform:translateY(3px);box-shadow:0 2px 0 #c99800}.form-note{color:var(--muted);font-size:13px;margin:15px 0 0}.status-panel{background:var(--yellow);color:#111}.status-panel .eyebrow{color:#111}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.stats-grid div{background:rgba(255,255,255,.55);border-radius:14px;padding:14px 8px;text-align:center}.stats-grid strong{display:block;font-size:30px}.stats-grid span{font-size:12px}.progress-track{height:9px;background:rgba(0,0,0,.13);border-radius:20px;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:#111;transition:width .4s}.status-panel>p{margin:15px 0 0;font-size:14px}.storage-status{border-top:1px solid rgba(0,0,0,.15);padding-top:10px;font-size:12px!important;font-weight:800}.storage-status.saved:before{content:"● ";color:#17833b}.storage-status.error:before{content:"● ";color:#b72920}
.match-section{margin-top:34px}.match-heading{color:white;margin-bottom:16px}.legend{font-size:13px;color:#bbb}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--yellow);margin-right:6px}.match-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.match-card{background:#f7f6f1;border-radius:15px;padding:14px;border:1px solid transparent}.match-card.ready{border-color:var(--yellow);box-shadow:inset 0 0 0 1px var(--yellow)}.match-label{font-size:11px;font-weight:900;color:#9a7600;letter-spacing:.1em;margin-bottom:9px}.player-row{display:flex;align-items:center;gap:9px;min-height:39px}.player-row+.player-row{border-top:1px solid var(--line)}.slot-chip{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#171717;color:var(--yellow);font-weight:900;flex:none}.player-data{min-width:0}.player-data strong,.player-data small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-data small{font-size:11px;color:var(--muted)}.player-placeholder{font-size:13px;color:#999}.pending-tag{font-size:11px;color:#9a7600}footer{text-align:center;color:#777;font-size:12px;margin-top:30px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.78);display:none;place-items:center;padding:18px;z-index:20}.modal.open{display:grid}.modal-card{background:white;border-radius:24px;padding:30px;position:relative;width:min(500px,100%);max-height:92vh;overflow:auto;box-shadow:var(--shadow)}.modal-close{position:absolute;right:14px;top:12px;border:0;background:none;font-size:28px;color:#888}.result-card{text-align:center;overflow:hidden}.slot-ball{width:190px;height:190px;border-radius:50%;display:grid;place-content:center;margin:20px auto;background:var(--yellow);border:10px solid #171717;box-shadow:0 0 0 5px var(--yellow),0 20px 40px rgba(0,0,0,.2);position:relative;z-index:2}.slot-ball:after{content:"";position:absolute;inset:-20px;border:2px solid rgba(255,204,33,.55);border-radius:50%;opacity:0}.slot-ball span{font-size:90px;font-weight:950;line-height:.9}.slot-ball small{font-weight:800;margin-top:8px}.slot-ball.rolling{animation:ball-roll .45s ease-in-out infinite alternate;box-shadow:0 0 0 5px var(--yellow),0 0 55px rgba(255,204,33,.7)}.slot-ball.rolling span{animation:number-flip .11s infinite alternate}.slot-ball.revealed{animation:reveal-pop .75s cubic-bezier(.2,1.5,.35,1)}.slot-ball.revealed:after{animation:ring-out .85s ease-out}@keyframes number-flip{to{transform:scale(1.12) rotate(3deg);filter:blur(1px)}}@keyframes ball-roll{to{transform:translateY(-7px) rotate(2deg)}}@keyframes reveal-pop{0%{transform:scale(.65) rotate(-8deg)}55%{transform:scale(1.14) rotate(3deg)}100%{transform:scale(1)}}@keyframes ring-out{0%{opacity:1;transform:scale(.7)}100%{opacity:0;transform:scale(1.45)}}.celebration{position:absolute;inset:0;pointer-events:none;overflow:hidden}.spark{position:absolute;left:50%;top:43%;width:9px;height:18px;border-radius:3px;background:var(--yellow);opacity:0;animation:spark-fly 1.2s ease-out forwards;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-35px)}.spark:nth-child(3n){background:#111}.spark:nth-child(3n+1){width:7px;height:7px;border-radius:50%}@keyframes spark-fly{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-45px) scale(.7)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-235px) rotate(180deg) scale(1.15)}}.opponent-info{background:#f6f4ed;padding:13px;border-radius:12px;margin:16px 0;position:relative;z-index:2}.result-actions{display:flex;gap:12px;position:relative;z-index:2}.result-actions button{flex:1}.secondary-button{border:1px solid #d1cdc0;background:#fff;padding:11px 14px;color:#222}.danger-button{border:1px solid #e7aaa5;background:#fff5f4;color:var(--danger);padding:11px 14px}.hidden{display:none!important}
.admin-card{width:min(1050px,100%)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.file-button{cursor:pointer;font-size:13px;font-weight:800}.file-button input{display:none}.admin-list{display:grid;gap:8px}.admin-row{display:grid;grid-template-columns:54px 1fr 135px 105px auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:10px}.admin-slot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);font-weight:900}.admin-person strong,.admin-person small{display:block}.admin-person small{color:var(--muted)}.status-badge{font-size:12px;color:#8b6800}.row-actions{display:flex;gap:6px}.row-actions button{border:0;background:#f2f0e8;padding:7px 9px;font-size:12px}.row-actions .delete{color:var(--danger)}.editor-card{width:min(430px,100%)}.editor-card form,#adminAuthForm,.event-card form{display:grid;gap:15px;margin-top:20px}.event-card{width:min(520px,100%);border-top:7px solid var(--yellow)}.event-divider{display:flex;align-items:center;gap:12px;color:#999;font-size:12px}.event-divider:before,.event-divider:after{content:"";height:1px;background:var(--line);flex:1}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#1b1b1b;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:50;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#fff;margin-bottom:20px}.page-heading h2{font-size:30px;margin:0}.state-badge{background:#2a2924;border:1px solid #4a493f;border-radius:99px;padding:9px 14px;color:#ccc}.control-lock{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff4cd;border:1px solid #e4bd35;border-radius:14px;padding:12px 16px;margin-bottom:14px}.control-lock.unlocked{background:#eaf8ee;border-color:#8bc99c}.control-toolbar{display:flex;gap:10px;margin-bottom:18px}.control-layout{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:16px}.control-column{background:#fff;border-radius:18px;padding:18px;min-width:0}.control-column h3,.fee-columns h3{margin-bottom:12px}.stack-list{display:grid;gap:9px}.empty-card{color:#888;padding:18px;text-align:center;border:1px dashed #ccc;border-radius:12px}.schedule-card,.fee-card{border:1px solid var(--line);border-radius:13px;padding:12px;background:#faf9f5}.schedule-card header,.fee-card header{display:flex;justify-content:space-between;gap:8px}.schedule-card .versus{font-weight:900;margin:8px 0}.inline-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-controls select{width:auto;padding:8px}.inline-controls button{padding:8px 10px;border:0;background:var(--yellow)}.inline-controls .danger-button{background:#fff5f4}.table-board{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.table-tile{border-radius:13px;padding:14px;background:#f4f2eb;border:1px solid #dedad0}.table-tile.busy{background:#fff1bd;border-color:#e3b91f}.table-tile strong,.table-tile small{display:block}.bracket-board{display:grid;grid-template-columns:repeat(6,minmax(190px,1fr));gap:14px;overflow:auto;padding-bottom:16px}.bracket-round{min-width:190px}.bracket-round h3{color:var(--yellow);font-size:14px}.bracket-match{background:#fff;border-radius:11px;padding:10px;margin-bottom:9px;border-left:4px solid #777}.bracket-match.completed{border-left-color:#29944b}.bracket-match.playing{border-left-color:#e0382c}.bracket-match.ready{border-left-color:var(--yellow)}.bracket-match header{display:flex;justify-content:space-between;font-size:11px;color:#777}.bracket-player{display:flex;justify-content:space-between;gap:8px;padding:5px 0}.bracket-player.winner{font-weight:900;color:#167936}.fee-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:16px}.fee-columns>div{background:#fff;border-radius:18px;padding:18px}.fee-card.unpaid{border-color:#e28e87;background:#fff5f4}.fee-card.paid{border-color:#8cc79c;background:#f2fbf4}.fee-summary{color:#fff}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;margin:30px auto;max-width:720px}.podium-card{background:#fff;border-radius:18px;padding:24px;text-align:center}.podium-card.first{order:2;padding-top:45px;border-top:8px solid #e2b400}.podium-card.second{order:1;border-top:8px solid #aaa}.podium-card.third{order:3;border-top:8px solid #b56b34}.podium-card strong{font-size:24px}.ranking-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ranking-row{background:#fff;border-radius:12px;padding:13px;display:flex;gap:10px}.rank-number{font-weight:950;color:#a77e00}.export-menu{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr}.match-grid{grid-template-columns:repeat(2,1fr)}#drawForm{grid-template-columns:1fr 1fr}.primary-button{grid-column:1/-1}.admin-row{grid-template-columns:48px 1fr 100px auto}.admin-phone{display:none}}
@media(max-width:980px){.control-layout{grid-template-columns:1fr 1fr}.control-column.wide{grid-column:1/-1}.fee-columns{grid-template-columns:1fr}.ranking-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.page-shell{padding:18px 14px 30px}.site-header{align-items:flex-start}.brand{gap:12px}.brand-logo{width:72px;height:72px}.store-name{font-size:10px}.brand h1{font-size:18px;line-height:1.25}.event-type{font-size:11px;padding:2px 7px}.subtitle{font-size:11px}.header-actions{display:grid;justify-items:end}.sound-toggle{font-size:0;padding:7px}.sound-toggle:before{content:"🔊";font-size:15px}.sound-toggle[aria-pressed="false"]:before{content:"🔇"}.event-switch{font-size:10px;padding:5px 7px}.admin-entry{font-size:0;padding:5px 2px}.admin-entry:after{content:"管理";font-size:12px}.panel{padding:22px 18px;border-radius:18px}#drawForm{grid-template-columns:1fr}.match-grid{grid-template-columns:1fr}.section-heading h2,.match-heading h2{font-size:23px}.capacity strong{font-size:34px}.match-heading{align-items:flex-end}.modal-card{padding:26px 18px}.slot-ball{width:165px;height:165px}.slot-ball span{font-size:76px}.result-actions{flex-direction:column}.admin-row{grid-template-columns:42px 1fr auto}.admin-attempts,.admin-phone{display:none}.row-actions{grid-column:1/-1}.row-actions button{flex:1}.admin-toolbar>*{flex:1 1 44%;text-align:center}}
@media(max-width:620px){.main-nav{margin-bottom:16px}.control-layout{grid-template-columns:1fr}.control-column.wide{grid-column:auto}.control-toolbar,.page-heading{align-items:flex-start;flex-direction:column}.table-board{grid-template-columns:1fr 1fr}.ranking-list{grid-template-columns:1fr}.podium{grid-template-columns:1fr}.podium-card.first,.podium-card.second,.podium-card.third{order:initial;padding-top:24px}.export-menu{width:100%}.export-menu button{flex:1}}
@media print{body{background:#fff}.site-header,.main-nav,footer,.page-heading button{display:none!important}.page-shell{width:100%;padding:0}.view-section{display:none!important}[data-view-section="bracket"]{display:block!important}.bracket-board{grid-template-columns:repeat(6,1fr);gap:5px}.bracket-match{font-size:9px;padding:5px;margin-bottom:4px}.page-heading{color:#111}}

/* 已完成场次的胜负全程标识 */
.bracket-player{align-items:center;padding:6px 7px;margin-top:3px;border-radius:6px}
.bracket-player b{flex:0 0 auto;font-size:12px}
.bracket-player.winner{font-weight:900;color:#126d30;background:#e7f7eb;border:1px solid #9bd3a9}
.bracket-player.loser{font-weight:900;color:#b42318;background:#fff0ef;border:1px solid #efaaa4}

.payment-modal-card{width:min(520px,100%);text-align:center;border-top:7px solid #07c160}
.payment-fixed-info{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;background:#eefaf2;border:1px solid #9cdeb4;border-radius:14px;padding:12px 15px;margin:14px 0}
.payment-fixed-info strong{font-size:28px;color:#087c3a}.payment-fixed-info p{grid-column:1/-1;margin:5px 0 0}.payment-qr{display:block;width:min(320px,100%);max-height:54vh;object-fit:contain;margin:0 auto;border-radius:12px}.payment-tip{font-size:13px;color:#666;margin:12px 0}.payment-modal-card form{display:grid}.payment-modal-card .primary-button{background:#07c160;color:#fff;border-color:#07c160}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.celebration{display:none}}

/* 桌台状态：空闲绿色，已叫号或比赛中蓝色 */
.table-tile{background:#e8f8ed;border-color:#86cea0;color:#126c32}
.table-tile.busy{background:#e8f2ff;border-color:#76a9ef;color:#1459a6}
.table-tile small{color:inherit;opacity:.82}

.fee-card p{display:flex;align-items:center;gap:8px;margin:9px 0}.fee-card p small{color:#666}
.payment-status-tag{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:900;line-height:1}
.payment-status-tag.unpaid{color:#b42318;background:#ffe9e7;border:1px solid #efaaa4}
.payment-status-tag.paid{color:#126d30;background:#e4f7e9;border:1px solid #94d2a5}

.table-tile .table-duration{margin-top:7px;padding-top:7px;border-top:1px solid currentColor;font-size:13px;font-weight:900;letter-spacing:.03em}
.table-tile .table-duration.waiting{font-weight:700;letter-spacing:0}

/* 1920x1080 投屏赛程看板：实体墙板式双败树 */
.scoreboard-view{color:#111}.scoreboard-shell{position:relative;overflow:hidden;min-height:820px;padding:14px 16px 8px;border:3px solid #171717;border-radius:20px;background:#ffd21f;box-shadow:0 28px 80px rgba(0,0,0,.42)}
.scoreboard-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;background:radial-gradient(circle at 50% 42%,rgba(255,249,183,.88),transparent 40%),repeating-conic-gradient(from 0deg at 50% 44%,rgba(255,255,255,.18) 0deg 3deg,transparent 3deg 12deg)}
.scoreboard-header,.scoreboard-stats,.scoreboard-content,.scoreboard-footer{position:relative;z-index:1}.scoreboard-header{display:grid;grid-template-columns:1.25fr 1fr 1.2fr;align-items:center;gap:14px;min-height:66px;border-bottom:2px solid rgba(0,0,0,.72)}
.scoreboard-brand{display:flex;align-items:center;gap:11px;min-width:0}.scoreboard-brand img{width:56px;height:56px;border-radius:50%;object-fit:contain;background:#fff;border:2px solid #111}.scoreboard-brand p{margin:0 0 2px;font-size:10px;font-weight:900}.scoreboard-brand h2{max-width:460px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:19px;line-height:1.2}.scoreboard-heading{text-align:center}.scoreboard-heading strong{display:block;font-size:30px;letter-spacing:.06em}.scoreboard-heading span{font-size:9px;font-weight:900;letter-spacing:.2em}.scoreboard-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}.scoreboard-actions time{font-size:22px;font-weight:950;font-variant-numeric:tabular-nums}.scoreboard-actions button{border:1px solid #111;background:#111;color:#ffcc21;padding:8px 10px}
.scoreboard-stats{position:absolute;right:16px;top:76px;z-index:3;display:flex;align-items:center;height:42px;border:1px solid #111;border-radius:9px;background:rgba(255,255,255,.9);overflow:hidden}.scoreboard-stats>span{padding:0 10px;font-size:11px;font-weight:950}.scoreboard-stats>div{display:flex;height:100%}.scoreboard-stats>div div{display:flex;align-items:baseline;gap:5px;padding:8px 10px;border-left:1px solid #111}.scoreboard-stats span{font-size:9px;font-weight:800}.scoreboard-stats strong{font-size:16px}.scoreboard-stats>div div:first-child{background:#111;color:#fff}.scoreboard-stats>div div:nth-child(2) strong{color:#1469cf}
.scoreboard-content{display:grid;grid-template-columns:minmax(0,1fr) 148px;gap:10px;padding-top:8px}.scoreboard-rounds{display:grid;grid-template-rows:48% 42% 10%;min-width:0;height:690px;border:1px solid rgba(0,0,0,.48);border-radius:10px;background:rgba(255,235,91,.18);overflow:hidden}.scoreboard-winners,.scoreboard-losers{display:grid;grid-template-columns:38px minmax(0,1fr);min-height:0}.scoreboard-winners{border-bottom:2px solid #111}.scoreboard-bracket-label{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#111;color:#ffd21f;border-radius:0 7px 7px 0;writing-mode:vertical-rl}.scoreboard-bracket-label strong{font-size:17px;letter-spacing:.16em}.scoreboard-bracket-label span{font-size:7px;letter-spacing:.08em}.scoreboard-winner-tree{display:flex;flex-direction:column;gap:3px;padding:7px 8px 4px}.scoreboard-loser-tree{display:grid;grid-template-columns:1.4fr 1.4fr .82fr .82fr .55fr .55fr .7fr;gap:8px;padding:25px 8px 5px}.scoreboard-stage{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0}.scoreboard-stage h4{position:absolute;top:-19px;left:0;width:100%;margin:0;text-align:center;font-size:8px}.scoreboard-stage>div{display:grid;align-content:space-around;height:100%;gap:3px}.scoreboard-loser-tree .scoreboard-stage:not(:first-child):before{content:"";position:absolute;left:-9px;top:10%;bottom:10%;width:8px;border-left:1px solid #24200f;border-top:1px solid #24200f;border-bottom:1px solid #24200f}.scoreboard-winner-tree .scoreboard-stage{flex:1}.scoreboard-winner-tree .scoreboard-stage h4{top:0;z-index:2;width:auto;padding:1px 4px;background:#ffd21f}.scoreboard-winner-tree .scoreboard-stage>div{align-items:center;gap:7px;padding-top:10px}.scoreboard-winner-tree .scoreboard-stage:after{content:"";position:absolute;left:10%;right:10%;bottom:-2px;border-bottom:1px solid #24200f}.scoreboard-winner-tree .stage-w5:after{left:50%;right:auto;height:7px;border-left:1px solid #24200f}.stage-w5>div{grid-template-columns:minmax(90px,160px);justify-content:center}.stage-w4>div{grid-template-columns:repeat(2,minmax(90px,180px));justify-content:space-around}.stage-w3>div{grid-template-columns:repeat(4,minmax(80px,170px));justify-content:space-around}.stage-w2>div{grid-template-columns:repeat(8,minmax(65px,1fr))}.stage-w1>div{grid-template-columns:repeat(16,minmax(52px,1fr))}.scoreboard-winner-tree .stage-w1 .scoreboard-match,.scoreboard-winner-tree .stage-w2 .scoreboard-match{padding:2px}.scoreboard-winner-tree .stage-w1 .scoreboard-player,.scoreboard-winner-tree .stage-w2 .scoreboard-player{font-size:6px;padding:1px 2px}.stage-l1>div,.stage-l2>div{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-l3>div,.stage-l4>div,.stage-l7>div{grid-template-columns:1fr}
.scoreboard-match{position:relative;min-width:0;padding:3px;border:1px solid rgba(0,0,0,.36);border-radius:5px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12)}.scoreboard-match header{display:grid;grid-template-columns:auto 1fr auto;gap:3px;align-items:center;color:#665c36;font-size:6px;line-height:1.1}.scoreboard-match header span{text-align:center}.scoreboard-match header time{font-variant-numeric:tabular-nums}.scoreboard-match footer{margin:2px -3px -3px;padding:1px 3px;border-radius:0 0 4px 4px;background:#f1efe7;color:#625f55;text-align:right;font-size:6px;font-weight:900}.scoreboard-match.playing,.scoreboard-match.called{border:2px solid #176fde;background:#eaf3ff;box-shadow:0 0 0 2px rgba(23,111,222,.16)}.scoreboard-match.playing footer,.scoreboard-match.called footer{background:#176fde;color:#fff}.scoreboard-match.completed footer{background:#7b5910;color:#fff}.scoreboard-match.ready{border-color:#a47800}.scoreboard-player{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:2px 3px;border-radius:3px;font-size:7px;line-height:1.05}.scoreboard-player span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scoreboard-player b{font-size:6px}.scoreboard-player.win{color:#08752d;background:#dff5e5;font-weight:950}.scoreboard-player.lose{color:#b01f16;background:#ffe6e3;font-weight:950}
.scoreboard-final-tree{display:grid;grid-template-columns:200px 250px;justify-content:center;align-items:center;gap:12px;border-top:1px solid rgba(0,0,0,.36)}.scoreboard-final-tree .scoreboard-match{min-width:190px}.final-podium{display:grid;grid-template-columns:auto 1fr;align-items:center;padding:6px 14px;border:2px solid #d2a625;border-radius:7px;background:#111;color:#ffd21f}.final-podium span{grid-column:1/-1;font-size:7px}.final-podium strong{font-size:18px}.final-podium b{text-align:center;color:#fff;font-size:14px}.scoreboard-empty{display:grid;place-items:center;font-size:28px;font-weight:950}
.scoreboard-side{display:flex;flex-direction:column;padding:9px;border-radius:11px;background:#111;color:#fff}.scoreboard-side h3{margin:0 0 7px;color:#ffcc21;font-size:13px}.scoreboard-tables{display:grid;gap:5px}.scoreboard-table{padding:7px;border-radius:6px;background:#e4f7e9;color:#126d30}.scoreboard-table.busy{background:#1e70df;color:#fff}.scoreboard-table b,.scoreboard-table span,.scoreboard-table time{display:block}.scoreboard-table b{font-size:11px}.scoreboard-table span,.scoreboard-table time{font-size:7px}.scoreboard-table time{margin-top:2px;font-variant-numeric:tabular-nums}.scoreboard-champion{margin-top:auto;padding:10px 6px;text-align:center;border:1px solid #ffcc21;border-radius:8px}.scoreboard-champion span{display:block;color:#ffcc21;font-size:9px}.scoreboard-champion strong{font-size:16px}.scoreboard-legend{display:flex;justify-content:center;gap:4px;margin-top:7px}.scoreboard-legend span{padding:3px 5px;border-radius:99px;font-size:7px;font-weight:900}.scoreboard-legend .win{background:#dff5e5;color:#08752d}.scoreboard-legend .lose{background:#ffe6e3;color:#b01f16}.scoreboard-legend .live{background:#176fde;color:#fff}.scoreboard-footer{text-align:center;padding-top:6px;font-size:8px;font-weight:900;letter-spacing:.14em}
body.scoreboard-presentation{overflow:hidden;background:#ffcc21}body.scoreboard-presentation .page-shell{width:100vw;max-width:none;height:100vh;padding:0}body.scoreboard-presentation .site-header,body.scoreboard-presentation .main-nav,body.scoreboard-presentation .page-shell>footer{display:none!important}body.scoreboard-presentation main,body.scoreboard-presentation .scoreboard-view,body.scoreboard-presentation .scoreboard-shell{height:100vh}body.scoreboard-presentation .scoreboard-shell{min-height:0;border:0;border-radius:0;padding:10px 12px 5px}body.scoreboard-presentation .scoreboard-rounds{height:calc(100vh - 96px)}body.scoreboard-presentation .scoreboard-header{min-height:62px}body.scoreboard-presentation .scoreboard-stats{top:69px}
@media(max-width:1200px){.scoreboard-content{grid-template-columns:1fr}.scoreboard-side{display:none}.scoreboard-rounds{min-width:1150px;overflow:hidden}.scoreboard-view{overflow:auto}.scoreboard-header{grid-template-columns:1fr}.scoreboard-heading{text-align:left}.scoreboard-actions{justify-content:flex-start}.scoreboard-stats{display:none}}

/* 赛程看板高保真布局：固定树形层级与空白占位 */
.scoreboard-rounds{grid-template-rows:50% 37% 13%}
.scoreboard-winners,.scoreboard-losers{grid-template-columns:58px minmax(0,1fr)}
.scoreboard-bracket-label strong{font-size:22px}.scoreboard-bracket-label span{font-size:8px}
.scoreboard-winner-tree,.scoreboard-loser-tree{display:flex;flex-direction:column;gap:0;padding:3px 10px 2px}
.scoreboard-tree-row{position:relative;display:grid;grid-template-columns:94px minmax(0,1fr);align-items:center;flex:1;min-height:0}
.scoreboard-tree-row h4{position:static;width:auto;margin:0;padding-right:8px;text-align:right;font-size:9px;line-height:1.15}
.scoreboard-tree-row>div{position:relative;z-index:1;display:grid;align-items:center;justify-content:space-around;gap:7px;height:100%;padding:5px 0}
.scoreboard-tree-row:not(:last-child)>div:after{content:"";position:absolute;left:8%;right:8%;bottom:0;border-bottom:1px solid rgba(32,28,12,.78);z-index:-1}
.scoreboard-tree-row:not(:last-child) .scoreboard-match:after{content:"";position:absolute;left:50%;bottom:-7px;height:7px;border-left:1px solid rgba(32,28,12,.78)}
.scoreboard-winner-tree .tree-1>div{grid-template-columns:minmax(140px,210px)}
.scoreboard-winner-tree .tree-2>div{grid-template-columns:repeat(2,minmax(140px,230px));padding-inline:15%}
.scoreboard-winner-tree .tree-4>div{grid-template-columns:repeat(4,minmax(125px,210px));padding-inline:5%}
.scoreboard-winner-tree .tree-8>div{grid-template-columns:repeat(8,minmax(95px,1fr))}
.scoreboard-winner-tree .tree-16>div{grid-template-columns:repeat(16,minmax(62px,1fr))}
.scoreboard-loser-tree .loser-8>div{grid-template-columns:repeat(8,minmax(110px,1fr))}
.scoreboard-loser-tree .loser-4>div{grid-template-columns:repeat(4,minmax(150px,250px));padding-inline:5%}
.scoreboard-loser-tree .loser-2>div{grid-template-columns:repeat(2,minmax(190px,310px));padding-inline:17%}
.scoreboard-match{min-height:42px;padding:4px 5px;border-radius:7px}
.scoreboard-match header{font-size:7px}.scoreboard-player{min-height:11px;font-size:8px}.scoreboard-player.placeholder{background:#fff}.scoreboard-match footer{margin:2px -5px -4px;padding:2px 4px;font-size:7px}
.scoreboard-winner-tree .tree-16 .scoreboard-match{min-height:38px;padding:3px}.scoreboard-winner-tree .tree-16 .scoreboard-player{font-size:6px}.scoreboard-winner-tree .tree-16 .scoreboard-match footer{margin:1px -3px -3px;font-size:6px}
.scoreboard-final-tree{position:relative;z-index:2;grid-template-columns:minmax(0,1fr) 330px;gap:18px;padding:8px 18%;background:#ffd21f}.scoreboard-final-matches{display:grid;grid-template-columns:repeat(3,minmax(150px,240px));justify-content:center;gap:10px}.scoreboard-final-tree .scoreboard-match{min-width:0}.final-podium{min-height:55px;padding:7px 18px}.final-podium strong{font-size:23px}.final-podium b{font-size:18px}
body.scoreboard-presentation .scoreboard-rounds{height:calc(100vh - 94px)}

/* 严格按确认效果图的可见层级复刻 */
body.scoreboard-presentation .scoreboard-header{height:88px;min-height:88px}
body.scoreboard-presentation .scoreboard-actions{display:none}
body.scoreboard-presentation .scoreboard-stats{top:14px;right:16px;height:52px}
body.scoreboard-presentation .scoreboard-content{height:calc(100vh - 98px);padding-top:0}
body.scoreboard-presentation .scoreboard-rounds{height:100%;grid-template-rows:46% 54%}
body.scoreboard-presentation .scoreboard-footer{display:none}
.scoreboard-winner-tree{padding:2px 10px 0}
.scoreboard-loser-tree{padding:0 10px 4px}
.scoreboard-winner-tree .scoreboard-tree-row{grid-template-columns:98px minmax(0,1fr)}
.scoreboard-loser-tree .scoreboard-tree-row{grid-template-columns:98px minmax(0,1fr)}
.scoreboard-winner-tree .tree-1{flex:1.18}.scoreboard-winner-tree .tree-2{flex:1.1}.scoreboard-winner-tree .tree-4{flex:1.08}.scoreboard-winner-tree .tree-8{flex:1}.scoreboard-winner-tree .tree-16{flex:1.18}
.scoreboard-tree-row h4{font-size:10px}
.scoreboard-tree-row h4:empty{visibility:hidden}
.scoreboard-winner-tree .tree-1>div{grid-template-columns:220px}
.scoreboard-winner-tree .tree-2>div{grid-template-columns:repeat(2,210px);padding-inline:15%}
.scoreboard-winner-tree .tree-4>div{grid-template-columns:repeat(4,180px);padding-inline:4%}
.scoreboard-winner-tree .tree-8>div{grid-template-columns:repeat(8,minmax(125px,1fr))}
.scoreboard-winner-tree .tree-16>div{grid-template-columns:repeat(16,minmax(70px,1fr))}
.scoreboard-winner-tree .tree-1 .scoreboard-match{min-height:70px}.scoreboard-winner-tree .tree-2 .scoreboard-match{min-height:64px}.scoreboard-winner-tree .tree-4 .scoreboard-match{min-height:60px}
.scoreboard-loser-tree .loser-8{flex:1}.scoreboard-loser-tree .loser-6{flex:1}.scoreboard-loser-tree>.scoreboard-final-tree{flex:1.15}
.scoreboard-loser-tree .loser-8>div{grid-template-columns:repeat(8,minmax(130px,1fr))}
.scoreboard-loser-tree .loser-6>div{grid-template-columns:repeat(6,minmax(145px,185px));justify-content:start;padding-left:4%}
.scoreboard-loser-tree>.scoreboard-final-tree{display:grid;grid-template-columns:minmax(0,650px) 310px;justify-content:start;align-items:center;gap:18px;margin-left:98px;padding:8px 0 4px;background:transparent;border-top:0}
.scoreboard-loser-tree>.scoreboard-final-tree .scoreboard-final-matches{grid-template-columns:repeat(2,260px);justify-content:start;gap:54px}
.scoreboard-loser-tree>.scoreboard-final-tree .scoreboard-match,.scoreboard-loser-tree>.scoreboard-final-tree .final-podium{min-height:76px}
.scoreboard-match{min-height:52px;padding:5px 6px}.scoreboard-match header{font-size:8px}.scoreboard-player{min-height:14px;font-size:9px}.scoreboard-match footer{margin:2px -6px -5px;padding:2px 5px;font-size:8px}
.scoreboard-winner-tree .tree-16 .scoreboard-match{min-height:58px}.scoreboard-winner-tree .tree-16 .scoreboard-player{font-size:7px;min-height:15px}
.scoreboard-winner-tree .tree-8 .scoreboard-match{min-height:54px}
.scoreboard-side{border-radius:14px}.scoreboard-side h3{font-size:17px;text-align:center}.scoreboard-tables{gap:7px}.scoreboard-table{min-height:58px;padding:9px}.scoreboard-table b{font-size:14px}.scoreboard-table span,.scoreboard-table time{font-size:9px}
.scoreboard-champion{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:2px 8px;margin-top:auto;padding:10px;background:#111}.scoreboard-champion img{grid-row:1/3;width:42px;height:42px;border-radius:50%;background:#fff}.scoreboard-champion strong{font-size:18px;text-align:left}.scoreboard-champion span{color:#fff;font-size:8px;text-align:left}
body.scoreboard-presentation .scoreboard-brand img{width:66px;height:66px}body.scoreboard-presentation .scoreboard-brand h2{font-size:22px}body.scoreboard-presentation .scoreboard-brand p{font-size:11px}body.scoreboard-presentation .scoreboard-heading strong{font-size:34px}

/* 最终确认方案：完整62场上下树 + 右侧7桌单列 */
body.scoreboard-presentation .scoreboard-header{height:102px;min-height:102px;grid-template-columns:minmax(0,1fr) auto}
body.scoreboard-presentation .scoreboard-heading{display:none}
body.scoreboard-presentation .scoreboard-brand img{width:78px;height:78px}
body.scoreboard-presentation .scoreboard-brand h2{max-width:760px;font-size:32px}
body.scoreboard-presentation .scoreboard-brand p{font-size:13px}
.scoreboard-subtitle{display:block;margin-top:3px;font-size:15px;font-weight:900}
body.scoreboard-presentation .scoreboard-actions{display:flex;align-self:start;padding-top:8px}
body.scoreboard-presentation .scoreboard-actions time{font-size:26px;background:#111;color:#ffd21f;border-radius:8px;padding:8px 18px}
body.scoreboard-presentation .scoreboard-actions button{display:none}
body.scoreboard-presentation .scoreboard-stats{top:57px;right:182px;height:40px;background:transparent;border:0}
body.scoreboard-presentation .scoreboard-stats>span{font-size:13px}
body.scoreboard-presentation #scoreboardStats>div:not(:first-child){display:none}
body.scoreboard-presentation .scoreboard-stats>div div:first-child{background:transparent;color:#111;border:0}
body.scoreboard-presentation .scoreboard-stats strong{font-size:24px}
body.scoreboard-presentation .scoreboard-content{height:calc(100vh - 112px);grid-template-columns:minmax(0,1fr) 170px;gap:10px}
body.scoreboard-presentation .scoreboard-rounds{height:100%;grid-template-rows:43% 57%}
.scoreboard-winners,.scoreboard-losers{grid-template-columns:52px minmax(0,1fr)}
.scoreboard-bracket-label strong{font-size:21px}
.scoreboard-winner-tree{padding:3px 8px}.scoreboard-loser-tree{padding:3px 8px}
.scoreboard-winner-tree .scoreboard-tree-row,.scoreboard-loser-tree .scoreboard-tree-row{grid-template-columns:68px minmax(0,1fr)}
.scoreboard-winner-tree .tree-1,.scoreboard-winner-tree .tree-2,.scoreboard-winner-tree .tree-4,.scoreboard-winner-tree .tree-8,.scoreboard-winner-tree .tree-16{flex:1}
.scoreboard-winner-tree .tree-1>div{grid-template-columns:180px}.scoreboard-winner-tree .tree-2>div{grid-template-columns:repeat(2,180px);padding-inline:18%}.scoreboard-winner-tree .tree-4>div{grid-template-columns:repeat(4,150px);padding-inline:8%}.scoreboard-winner-tree .tree-8>div{grid-template-columns:repeat(8,minmax(105px,1fr))}.scoreboard-winner-tree .tree-16>div{grid-template-columns:repeat(16,minmax(55px,1fr))}
.scoreboard-winner-tree .tree-1 .scoreboard-match{min-height:48px}.scoreboard-winner-tree .tree-2 .scoreboard-match{min-height:46px}.scoreboard-winner-tree .tree-4 .scoreboard-match{min-height:44px}.scoreboard-winner-tree .tree-8 .scoreboard-match{min-height:42px}.scoreboard-winner-tree .tree-16 .scoreboard-match{min-height:58px}
.scoreboard-loser-tree>.scoreboard-tree-row{flex:1}.scoreboard-loser-tree>.scoreboard-final-tree{flex:1.18}
.scoreboard-loser-tree .loser-8>div{grid-template-columns:repeat(8,minmax(105px,1fr))}.scoreboard-loser-tree .loser-4>div{grid-template-columns:repeat(4,minmax(145px,220px));padding-inline:8%}.scoreboard-loser-tree .loser-2>div{grid-template-columns:repeat(2,minmax(180px,300px));padding-inline:20%}.scoreboard-loser-tree .loser-1>div{grid-template-columns:minmax(190px,310px);justify-content:center}
.scoreboard-loser-tree .scoreboard-match{min-height:34px;padding:3px 5px}.scoreboard-loser-tree .scoreboard-match header{font-size:6px}.scoreboard-loser-tree .scoreboard-player{min-height:8px;font-size:7px;padding:1px 3px}.scoreboard-loser-tree .scoreboard-match footer{margin:1px -5px -3px;padding:1px 4px;font-size:6px}
.scoreboard-loser-tree>.scoreboard-final-tree{min-height:0;grid-template-columns:260px 310px;justify-content:center;gap:26px;margin:0;padding:0;background:transparent}.scoreboard-loser-tree>.scoreboard-final-tree .scoreboard-final-matches{display:block;min-height:0}.scoreboard-loser-tree>.scoreboard-final-tree .scoreboard-match{min-height:38px}.scoreboard-loser-tree>.scoreboard-final-tree .final-podium{min-height:40px;padding:3px 10px}
.scoreboard-content>.scoreboard-side{width:170px;padding:10px}.scoreboard-tables{grid-template-columns:1fr;gap:7px}.scoreboard-table{min-height:55px;padding:8px}.scoreboard-table b{font-size:14px}.scoreboard-table span,.scoreboard-table time{font-size:9px}.scoreboard-champion{display:none}.scoreboard-legend{margin-top:auto;padding-top:8px;border-top:1px solid #695d1c}

/* HTML品牌确认弹窗 */
.confirm-modal{backdrop-filter:blur(6px)}.confirm-card{width:min(470px,100%);padding:34px;border-top:7px solid var(--yellow);text-align:left}.confirm-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;background:#fff3c2;color:#8a6500;font-size:28px;font-weight:950}.confirm-card h2{margin-bottom:10px;font-size:27px}.confirm-message{color:#555;line-height:1.75;white-space:pre-line}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}.confirm-actions button{min-height:48px}.confirm-actions .danger-confirm{background:#c83b32;color:#fff;box-shadow:0 5px 0 #8f211b}.confirm-actions .danger-confirm:hover{background:#db4b41}

/* 赛程节点精简版：仅显示场次编号与选手姓名 */
body.scoreboard-presentation .scoreboard-content{grid-template-columns:minmax(0,1fr) 145px}
body.scoreboard-presentation .scoreboard-stats{right:157px}
.scoreboard-content>.scoreboard-side{width:145px;padding:8px}
.scoreboard-side h3{font-size:15px}.scoreboard-tables{gap:5px}.scoreboard-table{min-height:49px;padding:7px}.scoreboard-table b{font-size:12px}.scoreboard-table span,.scoreboard-table time{font-size:8px}
.scoreboard-match{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:stretch;min-width:0!important;min-height:30px!important;padding:0!important;overflow:hidden;border:1px solid #9a9a9a;border-radius:5px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.scoreboard-match-number{display:grid;place-items:center;border-right:1px solid #d0d0d0;background:#f3f3f3;font-size:10px;line-height:1;font-weight:950}
.scoreboard-match-names{display:grid;grid-template-rows:1fr 1fr;min-width:0}
.scoreboard-player{display:block;min-width:0!important;min-height:0!important;padding:2px 4px!important;border:0!important;border-radius:0!important;background:#fff!important;font-size:8px!important;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scoreboard-player+.scoreboard-player{border-top:1px solid #e2e2e2!important}
.scoreboard-player.win{color:#11813b!important;font-weight:950}.scoreboard-player.lose{color:#c52b26!important;font-weight:900}
.scoreboard-player span{display:block;overflow:hidden;text-overflow:ellipsis}
.scoreboard-winner-tree .tree-1>div{grid-template-columns:118px}.scoreboard-winner-tree .tree-2>div{grid-template-columns:repeat(2,116px)}.scoreboard-winner-tree .tree-4>div{grid-template-columns:repeat(4,108px)}.scoreboard-winner-tree .tree-8>div{grid-template-columns:repeat(8,96px)}.scoreboard-winner-tree .tree-16>div{grid-template-columns:repeat(16,minmax(62px,76px))}
.scoreboard-loser-tree .loser-8>div{grid-template-columns:repeat(8,96px)}.scoreboard-loser-tree .loser-4>div{grid-template-columns:repeat(4,118px)}.scoreboard-loser-tree .loser-2>div{grid-template-columns:repeat(2,145px)}.scoreboard-loser-tree .loser-1>div{grid-template-columns:175px}
.scoreboard-loser-tree>.scoreboard-final-tree{grid-template-columns:190px 255px}.scoreboard-loser-tree>.scoreboard-final-tree .scoreboard-match{min-height:30px!important}

/* 赛程看板可读性优化：分区线避让边框，首轮编号置底 */
.scoreboard-winners{border-bottom:0}
.scoreboard-bracket-label{margin:6px 0 6px 6px;border-radius:7px}
.scoreboard-winner-tree{margin:5px 8px 5px 6px;padding:0 8px 5px;border-bottom:2px solid #111}
.scoreboard-loser-tree{margin:5px 8px 6px 6px;padding:0 8px}
.scoreboard-tree-row:not(:last-child)>div:after{left:12%;right:12%}
.scoreboard-tree-row:not(:last-child) .scoreboard-match:after{bottom:-6px;height:6px}
.scoreboard-tree-row>div{padding:3px 0;gap:6px}
.scoreboard-tree-row h4{padding-right:10px;font-size:12px;line-height:1.2}
.scoreboard-match{min-height:36px!important}
.scoreboard-match-number{font-size:12px}
.scoreboard-player{padding:3px 4px!important;font-size:10px!important;line-height:1.18;text-overflow:clip}
.scoreboard-player span{width:100%;overflow:visible;text-overflow:clip}
.scoreboard-winner-tree .tree-1>div{grid-template-columns:132px}.scoreboard-winner-tree .tree-2>div{grid-template-columns:repeat(2,130px)}.scoreboard-winner-tree .tree-4>div{grid-template-columns:repeat(4,122px)}.scoreboard-winner-tree .tree-8>div{grid-template-columns:repeat(8,108px)}
.scoreboard-loser-tree .loser-8>div{grid-template-columns:repeat(8,108px)}.scoreboard-loser-tree .loser-4>div{grid-template-columns:repeat(4,132px)}.scoreboard-loser-tree .loser-2>div{grid-template-columns:repeat(2,158px)}.scoreboard-loser-tree .loser-1>div{grid-template-columns:188px}
.scoreboard-winner-tree .tree-16>div{grid-template-columns:repeat(16,minmax(72px,84px));gap:5px}
.scoreboard-winner-tree .tree-16 .scoreboard-match{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 15px;min-height:45px!important}
.scoreboard-winner-tree .tree-16 .scoreboard-match-number{grid-row:2;grid-column:1;border-top:1px solid #d0d0d0;border-right:0;background:#f3f3f3;font-size:9px}
.scoreboard-winner-tree .tree-16 .scoreboard-match-names{grid-row:1;grid-column:1}
.scoreboard-winner-tree .tree-16 .scoreboard-player{padding:2px 3px!important;font-size:9.5px!important;line-height:1.15}
.scoreboard-loser-tree>.scoreboard-final-tree{grid-template-columns:205px 270px;gap:22px}

/* 顶部进度独立展示，底部冠亚军荣誉区 */
body.scoreboard-presentation .scoreboard-header{grid-template-columns:560px 330px minmax(0,1fr) auto;gap:18px}
body.scoreboard-presentation .scoreboard-brand{grid-column:1}body.scoreboard-presentation .scoreboard-stats{grid-column:2}body.scoreboard-presentation .scoreboard-actions{grid-column:4}
body.scoreboard-presentation .scoreboard-stats{position:static;align-self:center;display:grid;grid-template-columns:auto 1fr;height:64px;border:2px solid #111;border-radius:10px;background:rgba(255,255,255,.86);box-shadow:0 3px 0 rgba(0,0,0,.18)}
body.scoreboard-presentation .scoreboard-stats>span{display:grid;place-items:center;align-self:stretch;padding:0 15px;border-right:2px solid #111;background:#111;color:#ffd21f;font-size:14px;letter-spacing:.08em}
body.scoreboard-presentation .scoreboard-stats>div{display:grid;grid-template-columns:1fr 1fr 1fr;height:100%}
body.scoreboard-presentation .scoreboard-stats>div div{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 8px;border:0;border-left:1px solid #bbb;background:transparent!important;color:#111!important}
body.scoreboard-presentation .scoreboard-stats>div div:first-child{border-left:0}
body.scoreboard-presentation .scoreboard-stats span{font-size:9px}body.scoreboard-presentation .scoreboard-stats strong{font-size:20px;line-height:1.05}
body.scoreboard-presentation .scoreboard-content{padding:8px 0 10px}
body.scoreboard-presentation .scoreboard-rounds,body.scoreboard-presentation .scoreboard-side{min-height:0;height:auto}
.scoreboard-loser-tree>.scoreboard-final-tree{grid-template-columns:205px 430px;gap:24px}
.final-honors{display:grid;grid-template-columns:1.15fr 1fr;gap:8px;min-width:0}
.honor-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;align-items:center;min-height:48px;padding:6px 12px;border-radius:8px;overflow:hidden}
.honor-card span{grid-column:1/-1;font-size:7px;font-weight:950;letter-spacing:.13em}.honor-card strong{font-size:20px}.honor-card b{text-align:right;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.honor-card.champion{border:2px solid #f2bd1b;background:#111;color:#ffd21f;box-shadow:0 0 0 2px rgba(255,210,31,.22),0 0 18px rgba(255,192,0,.48);animation:champion-glow 2.2s ease-in-out infinite alternate}
.honor-card.champion b{color:#fff}.honor-card.runner-up{border:2px solid #8d9198;background:linear-gradient(135deg,#fff,#dadddf);color:#24272b;box-shadow:0 3px 8px rgba(0,0,0,.2)}
@keyframes champion-glow{from{box-shadow:0 0 0 2px rgba(255,210,31,.18),0 0 10px rgba(255,192,0,.32)}to{box-shadow:0 0 0 3px rgba(255,210,31,.32),0 0 24px rgba(255,192,0,.68)}}

/* 顶部进度与时间合并，冠亚季军移入右侧状态栏 */
body.scoreboard-presentation .scoreboard-header{grid-template-columns:minmax(0,1fr) 330px auto;gap:0}
body.scoreboard-presentation .scoreboard-brand{grid-column:1}body.scoreboard-presentation .scoreboard-stats{grid-column:2;border-radius:10px 0 0 10px}
body.scoreboard-presentation .scoreboard-actions{grid-column:3;align-self:center;padding:0;gap:0}
body.scoreboard-presentation .scoreboard-actions time{display:grid;place-items:center;height:64px;min-width:132px;padding:0 17px;border:2px solid #111;border-left:0;border-radius:0 10px 10px 0;font-size:25px}
.scoreboard-loser-tree>.scoreboard-final-tree{grid-template-columns:205px;justify-content:center;gap:0}
.scoreboard-champion{display:block;margin:18px 0 0;padding:0;border:0;text-align:left}
.scoreboard-champion>p{margin:0 0 7px;color:#ffd21f;font-size:13px;font-weight:950;letter-spacing:.08em}
.side-honor{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;min-height:48px;margin-top:7px;padding:7px;border-radius:7px;border:2px solid transparent}
.side-honor span{font-size:12px;font-weight:950}.side-honor b{overflow:hidden;text-align:right;font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.side-honor.champion{border-color:#f2bd1b;background:#18140a;color:#ffd21f;box-shadow:0 0 14px rgba(255,192,0,.46);animation:champion-glow 2.2s ease-in-out infinite alternate}
.side-honor.champion b{color:#fff}.side-honor.runner-up{border-color:#9ca1a8;background:#eef0f2;color:#30343a}.side-honor.third{border-color:#b56d36;background:#f4dfcf;color:#743b18}

/* 深色侧栏前八名荣誉榜 */
.scoreboard-champion{margin-top:14px}
.scoreboard-champion>p{margin-bottom:6px;color:#fff;font-size:12px;text-align:center}
.side-honor{grid-template-columns:20px 38px minmax(0,1fr);min-height:31px;margin-top:4px;padding:4px 6px;border-width:1px;background:#202225;color:#fff;box-shadow:none;animation:none}
.side-honor .trophy-icon{display:block;width:17px;height:17px;background:#e5a928;mask:url("assets/trophy.svg") center/contain no-repeat;-webkit-mask:url("assets/trophy.svg") center/contain no-repeat}
.side-honor span{font-size:10px;color:#f6d98a}.side-honor b{font-size:11px;color:#fff;text-shadow:0 1px 1px #000}
.side-honor.rank-1{border-color:#f6c928;background:#392f08;box-shadow:0 0 12px rgba(255,196,0,.42);animation:champion-glow 2.2s ease-in-out infinite alternate}.side-honor.rank-1 .trophy-icon{background:#ffd52e}.side-honor.rank-1 span{color:#ffe86a}
.side-honor.rank-2{border-color:#c7ced6;background:#34383d}.side-honor.rank-2 .trophy-icon{background:#eef2f5}.side-honor.rank-2 span{color:#f2f4f6}
.side-honor.rank-3{border-color:#d28a50;background:#3b2619}.side-honor.rank-3 .trophy-icon{background:#e29a5c}.side-honor.rank-3 span{color:#ffc08b}
.side-honor.rank-4,.side-honor.rank-5,.side-honor.rank-6,.side-honor.rank-7,.side-honor.rank-8{border-color:#695a2a;background:#24231e}.side-honor.rank-4 .trophy-icon,.side-honor.rank-5 .trophy-icon,.side-honor.rank-6 .trophy-icon,.side-honor.rank-7 .trophy-icon,.side-honor.rank-8 .trophy-icon{background:#c99b31}

/* 首轮标签单行与连续树形连接线 */
.scoreboard-winner-tree .scoreboard-tree-row,.scoreboard-loser-tree .scoreboard-tree-row{grid-template-columns:88px minmax(0,1fr)}
.scoreboard-tree-row h4{white-space:nowrap;font-size:10px;letter-spacing:-.04em}
.scoreboard-tree-row>div{overflow:visible}
.scoreboard-tree-row .scoreboard-match{overflow:visible}
.scoreboard-winner-tree .scoreboard-tree-row:not(:last-child) .scoreboard-match:after{bottom:-17px;height:17px}
.scoreboard-winner-tree .scoreboard-tree-row:not(:first-child) .scoreboard-match:before{content:"";position:absolute;left:50%;top:-17px;height:17px;border-left:1px solid rgba(32,28,12,.78)}
.scoreboard-loser-tree .scoreboard-tree-row:not(:last-child) .scoreboard-match:after{bottom:-7px;height:7px}
.scoreboard-loser-tree .scoreboard-tree-row:not(:first-child) .scoreboard-match:before{content:"";position:absolute;left:50%;top:-7px;height:7px;border-left:1px solid rgba(32,28,12,.78)}

/* 赛程姓名统一黑色；进度与时间固定在标题栏右侧 */
.scoreboard-player,.scoreboard-player.win,.scoreboard-player.lose{color:#111!important;font-weight:800}
body.scoreboard-presentation .scoreboard-header{position:relative;display:block}
body.scoreboard-presentation .scoreboard-brand{width:calc(100% - clamp(400px,34vw,480px));height:100%;padding-right:12px}
body.scoreboard-presentation .scoreboard-brand h2{max-width:100%;font-size:clamp(23px,1.9vw,32px)}
body.scoreboard-presentation .scoreboard-stats{position:absolute;top:19px;right:clamp(112px,10vw,132px);width:clamp(288px,24vw,330px);height:64px}
body.scoreboard-presentation .scoreboard-actions{position:absolute;top:19px;right:0;width:clamp(112px,10vw,132px);height:64px}
body.scoreboard-presentation .scoreboard-actions time{width:100%;min-width:0;font-size:clamp(20px,1.5vw,25px)}
@media(max-width:1050px){body.scoreboard-presentation .scoreboard-brand p,body.scoreboard-presentation .scoreboard-subtitle{display:none}body.scoreboard-presentation .scoreboard-brand img{width:64px;height:64px}body.scoreboard-presentation .scoreboard-brand h2{font-size:21px}}

/* 奖牌决定场特别标识 */
.scoreboard-tree-row.medal-decider h4{justify-self:end;width:max-content;padding:5px 7px;border:1px solid #b66b32;border-radius:5px;background:#3a2416;color:#ffc18e;font-size:9px;font-weight:950;letter-spacing:0;box-shadow:0 2px 6px rgba(0,0,0,.22)}
.scoreboard-final-feature{display:grid;grid-template-columns:1fr;gap:1px;align-items:center;min-width:205px}
.scoreboard-final-feature .final-feature-label{display:block;padding:2px 7px;border:1px solid #efbd18;border-radius:5px 5px 0 0;background:#111;color:#ffd52e;text-align:center;font-size:9px;font-weight:950;letter-spacing:.05em;box-shadow:0 0 10px rgba(255,194,0,.35)}
.scoreboard-final-feature .scoreboard-match{min-height:32px!important;border-radius:0 0 5px 5px}.scoreboard-final-feature .scoreboard-player{padding:1px 4px!important;font-size:9px!important}
.scoreboard-final-feature small{display:block;color:#5d4500;text-align:center;font-size:7px;font-weight:900;line-height:1}

/* V2.1 对称汇聚式赛程：仅替换中间胜者组与败者组编排 */
body.scoreboard-presentation .scoreboard-rounds:has(.converging-bracket){display:grid;grid-template-rows:minmax(0,41fr) 112px minmax(0,45fr);height:100%;padding:8px 10px 10px;overflow:hidden}
.converging-bracket{position:relative;min-height:0;padding-left:84px}
.converging-bracket>header{position:absolute;left:4px;top:8px;z-index:3;display:grid;gap:1px;color:#111}
.converging-bracket>header strong{font-size:20px;line-height:1}.converging-bracket>header span{font-size:8px;font-weight:900;letter-spacing:.04em}
.converging-winners{border-bottom:1px solid rgba(33,29,12,.45)}
.converging-grid{display:grid;height:100%;min-width:0;align-items:stretch}
.winner-grid{grid-template-columns:1.18fr 1.08fr 1fr .94fr 1.16fr .94fr 1fr 1.08fr 1.18fr;gap:9px}
.loser-grid{grid-template-columns:1.15fr 1.12fr 1fr 1fr .88fr .88fr 1.06fr .88fr .88fr 1fr 1fr 1.12fr 1.15fr;gap:7px}
.converging-column{position:relative;display:grid;grid-template-rows:28px minmax(0,1fr);min-width:0}
.converging-column h4{display:flex;align-items:center;justify-content:center;margin:0;text-align:center;color:#3d3100;font-size:9px;line-height:1.05;white-space:nowrap}
.converging-column>div{position:relative;display:flex;flex-direction:column;justify-content:space-around;gap:5px;min-height:0;padding:4px 0 6px}
.converging-column .scoreboard-match{z-index:2;width:100%;min-height:35px!important;background:#fff}
.converging-column .scoreboard-match-number{font-size:10px}.converging-column .scoreboard-player{font-size:8.5px!important;padding:2px 3px!important}
.converging-column.left:not(.center) .scoreboard-match:after,.converging-column.right:not(.center) .scoreboard-match:before{content:"";position:absolute;top:50%;width:10px;height:0;border-top:1px solid rgba(29,26,12,.82)}
.converging-column.left:not(.center) .scoreboard-match:after{left:100%}.converging-column.right:not(.center) .scoreboard-match:before{right:100%;left:auto}
.converging-column>div:before{content:"";position:absolute;top:10%;bottom:10%;width:0;border-left:1px solid rgba(29,26,12,.72);z-index:0}
.converging-column.left>div:before{right:-10px}.converging-column.right>div:before{left:-10px}.converging-column.center>div:before{display:none}
.winner-final .scoreboard-match{border:2px solid #2c83eb;box-shadow:0 0 0 2px rgba(44,131,235,.18),0 3px 8px rgba(0,0,0,.2)}
.loser-final>div{justify-content:center;gap:32px}.loser-final .scoreboard-match[data-board-match="61"]{border:2px solid #bf7a27;box-shadow:0 0 0 2px rgba(191,122,39,.13)}
.converging-grand-final{position:relative;z-index:5;display:grid;grid-template-columns:260px 250px;align-items:center;justify-content:center;gap:18px;padding:7px 0}
.converging-grand-final>span{justify-self:end;color:#3d3100;font-size:10px;font-weight:950;white-space:nowrap}
.converging-grand-final .scoreboard-final-feature{min-width:0}.converging-grand-final .scoreboard-match{min-height:40px!important;border-width:2px;border-color:#111}
.converging-grand-final:before,.converging-grand-final:after{content:"";position:absolute;left:50%;height:13px;border-left:2px solid #2c83eb}.converging-grand-final:before{top:-6px}.converging-grand-final:after{bottom:-6px}
.converging-losers{padding-top:0}.converging-losers>header{top:2px}
@media(max-width:1250px){body.scoreboard-presentation .scoreboard-rounds:has(.converging-bracket){padding-inline:5px}.converging-bracket{padding-left:66px}.winner-grid{gap:5px}.loser-grid{gap:4px}.converging-column h4{font-size:7px}.converging-column .scoreboard-player{font-size:7px!important}.converging-column .scoreboard-match-number{font-size:8px}.converging-column.left:not(.center) .scoreboard-match:after,.converging-column.right:not(.center) .scoreboard-match:before{width:6px}.converging-column.left>div:before{right:-6px}.converging-column.right>div:before{left:-6px}}

/* V2.1.2 看板节点与赛程走向优化 */
.converging-column .scoreboard-match,
.converging-grand-final .scoreboard-match{
  grid-template-columns:1fr;
  grid-template-rows:minmax(0,1fr) 13px;
  width:82%;
  min-height:39px!important;
  overflow:visible;
}
.converging-column.left .scoreboard-match{align-self:flex-start}
.converging-column.right .scoreboard-match{align-self:flex-end}
.converging-column.center .scoreboard-match,
.converging-grand-final .scoreboard-match{justify-self:center;align-self:center}
.converging-column .scoreboard-match-names,
.converging-grand-final .scoreboard-match-names{grid-row:1;grid-column:1;overflow:hidden;border-radius:4px 4px 0 0;background:#fff}
.converging-column .scoreboard-match-number,
.converging-grand-final .scoreboard-match-number{
  grid-row:2;
  grid-column:1;
  border-top:1px solid #c8c8c8;
  border-right:0;
  border-radius:0 0 4px 4px;
  background:#eee;
  color:#555;
  font-size:7px;
  letter-spacing:.04em;
}
.converging-column .scoreboard-player{padding:2px 5px!important;font-size:8.5px!important;line-height:1.12}
.converging-column.left:not(.center) .scoreboard-match:after,
.converging-column.right:not(.center) .scoreboard-match:before{
  top:50%;
  width:calc(22% + 10px);
  border-top:2px solid rgba(24,22,12,.9);
}
.converging-column.left>div:before,
.converging-column.right>div:before{
  top:8%;
  bottom:8%;
  border-left:2px solid rgba(24,22,12,.9);
}
.converging-column.left>div:before{right:-10px}
.converging-column.right>div:before{left:-10px}
.converging-column>div:has(.scoreboard-match:only-child):before{display:none}
.winner-final .scoreboard-match:before,
.winner-final .scoreboard-match:after{
  content:"";
  position:absolute;
  top:50%;
  width:calc(11% + 12px);
  border-top:2px solid rgba(24,22,12,.9);
}
.winner-final .scoreboard-match:before{right:100%}
.winner-final .scoreboard-match:after{left:100%}
.loser-final .scoreboard-match:first-child:before,
.loser-final .scoreboard-match:first-child:after{
  content:"";
  position:absolute;
  top:50%;
  width:calc(11% + 12px);
  border-top:2px solid rgba(24,22,12,.9);
}
.loser-final .scoreboard-match:first-child:before{right:100%}
.loser-final .scoreboard-match:first-child:after{left:100%}
.loser-final>div:after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  height:32px;
  border-left:2px solid rgba(24,22,12,.9);
}
.winner-grid,.loser-grid{column-gap:12px}
.winner-final .scoreboard-match,
.loser-final .scoreboard-match{width:92%}
.converging-grand-final .scoreboard-match{width:100%;overflow:hidden}
@media(max-width:1250px){
  .converging-column .scoreboard-match{width:86%}
  .converging-column.left:not(.center) .scoreboard-match:after,
  .converging-column.right:not(.center) .scoreboard-match:before{width:calc(16.3% + 6px)}
  .winner-grid,.loser-grid{column-gap:6px}
}

/* V2.2.0 真实赛事关系连线：SVG 按 sourceA/sourceB 自动绘制 */
body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){
  position:relative;
  display:grid;
  grid-template-rows:minmax(0,46fr) minmax(132px,17fr) minmax(0,37fr);
  isolation:isolate;
  padding:7px 9px 9px;
  overflow:hidden;
}
.scoreboard-connectors{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.scoreboard-route{fill:none;stroke:#2e2918;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.96}
.scoreboard-route.advanced{stroke:#0a8b31;stroke-width:2.45;opacity:1}
.scoreboard-route.active{stroke:#1876e5;stroke-width:3;opacity:1;filter:drop-shadow(0 0 2px rgba(24,118,229,.72))}
.scoreboard-route.winner-to-loser-final{stroke-width:2.2;opacity:.9}
.scoreboard-route.champion-route{stroke-width:3}
.converging-bracket,.converging-grand-final{z-index:1}
.converging-column>div:before,
.converging-column .scoreboard-match:before,
.converging-column .scoreboard-match:after,
.converging-grand-final:before,
.converging-grand-final:after,
.loser-final>div:after{display:none!important}
.converging-grid{column-gap:13px}
.converging-column .scoreboard-match{width:88%;min-height:42px!important;overflow:hidden;box-shadow:0 2px 5px rgba(56,42,0,.22)}
.converging-column.left .scoreboard-match{align-self:flex-end}
.converging-column.right .scoreboard-match{align-self:flex-start}
.converging-column.center .scoreboard-match{align-self:center;width:94%}
.converging-winners .first-round .scoreboard-match{grid-template-rows:minmax(0,1fr) 11px;min-height:34px!important}
.converging-winners .first-round .scoreboard-player{padding:1px 4px!important;font-size:7.5px!important;line-height:1.05}
.converging-winners .first-round .scoreboard-match-number{font-size:6px;line-height:1}
.converging-column .scoreboard-player{position:relative;display:flex;align-items:center;justify-content:space-between;gap:3px;padding:2px 5px!important;color:#111!important;background:#fff!important;font-size:8.5px!important;font-weight:800}
.converging-column .scoreboard-player.win,
.converging-grand-final .scoreboard-player.win{color:#08752d!important;background:#ddf3df!important}
.converging-column .scoreboard-player.lose,
.converging-grand-final .scoreboard-player.lose{color:#c5241b!important;background:#ffe4e1!important}
.scoreboard-player .player-result{flex:0 0 auto;margin-left:auto;font-size:8px;line-height:1}
.scoreboard-player .win-mark{color:#079132}.scoreboard-player .lose-mark{color:#df2018}
.scoreboard-player.placeholder{min-height:13px;background:#fff!important}
.scoreboard-player.placeholder .player-result{display:none}
.scoreboard-match.playing,.scoreboard-match.called{border:2px solid #1876e5!important;box-shadow:0 0 0 2px rgba(24,118,229,.19),0 2px 7px rgba(0,0,0,.23)}
.scoreboard-match.playing .scoreboard-match-meta,.scoreboard-match.called .scoreboard-match-meta{background:#1876e5;color:#fff}

.scoreboard-match-names{position:relative}
.scoreboard-match-meta{grid-row:2;grid-column:1;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 4px;border-top:1px solid #c8c8c8;border-radius:0 0 4px 4px;background:#eee;color:#555;line-height:1}
.scoreboard-match-meta .scoreboard-match-number{display:block;position:static;min-width:0;padding:0;border:0;background:transparent!important;color:inherit!important;font-size:6.5px;line-height:1;letter-spacing:.02em}
.scoreboard-match-status{flex:0 0 auto;font-size:6.5px;font-weight:950;white-space:nowrap}
.scoreboard-match.ready .scoreboard-match-status,.scoreboard-match.waiting .scoreboard-match-status{color:#6a6250}
.scoreboard-match.completed .scoreboard-match-status{color:#08752d}
.scoreboard-match.called .scoreboard-match-status,.scoreboard-match.playing .scoreboard-match-status{color:#fff}

.converging-grand-final{display:grid;grid-template-columns:minmax(245px,285px);align-items:center;justify-content:center;padding:4px 0;background:rgba(255,202,26,.42)}
.grand-final-stack{display:grid;grid-template-columns:1fr;align-items:center;gap:4px;min-width:0}
.converging-grand-final .scoreboard-final-feature{display:grid;min-width:0;align-self:center}
.converging-grand-final .scoreboard-match{width:100%;min-height:50px!important;overflow:hidden;border:2px solid #111;box-shadow:0 3px 9px rgba(0,0,0,.28)}
.converging-grand-final .scoreboard-player{color:#111!important;background:#fff!important;font-size:10px!important;font-weight:900}
.converging-grand-final .scoreboard-player.win{color:#08752d!important;background:#ddf3df!important}
.converging-grand-final .scoreboard-player.lose{color:#c5241b!important;background:#ffe4e1!important}
.converging-grand-final .final-feature-label{padding:4px 8px;border-radius:7px 7px 0 0;font-size:10px}
.converging-grand-final .scoreboard-match{border-radius:0 0 7px 7px}
.converging-grand-final .scoreboard-match-number{font-size:7px}
.converging-grand-final small{margin-top:3px;font-size:8px}
.grand-final-match{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) 13px!important;padding:0!important}
.grand-finalist-row{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;min-height:19px;padding:2px 7px;border-bottom:1px solid #ddd;background:#fff}
.grand-finalist-row span{color:#5b4b10;font-size:7px;font-weight:950}.grand-finalist-row b{min-height:12px;color:#111;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.champion-feature{position:relative;display:grid;grid-template-columns:34px 52px minmax(70px,1fr);grid-template-rows:auto auto;align-items:center;min-height:48px;padding:4px 10px;border:2px solid #f5c326;border-radius:10px;background:#111;color:#ffd72f;box-shadow:0 0 0 2px rgba(255,211,34,.2),0 0 18px rgba(255,181,0,.52);animation:champion-glow 2.2s ease-in-out infinite alternate}
.champion-feature img{grid-row:1/3;width:28px;height:28px;filter:brightness(0) saturate(100%) invert(84%) sepia(87%) saturate(1222%) hue-rotate(349deg) brightness(104%)}
.champion-feature span{font-size:16px;font-weight:950}.champion-feature b{grid-column:2/4;min-height:14px;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* V2.2.2 对局状态与轮次标题清晰度 */
.converging-bracket>header{top:7px;gap:3px}
.converging-bracket>header strong{font-size:22px;font-weight:950;line-height:1.05;letter-spacing:.02em}
.converging-bracket>header span{font-size:9px;font-weight:950;line-height:1.1;letter-spacing:.06em}
.converging-column{grid-template-rows:31px minmax(0,1fr)}
.converging-column h4{padding:0 2px;color:#211b07;font-size:9.5px;font-weight:950;line-height:1.08;letter-spacing:-.01em;text-shadow:0 1px 0 rgba(255,255,255,.28)}
.converging-losers>header{top:4px}

@media(max-width:1250px){
  body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){grid-template-rows:minmax(0,46fr) minmax(120px,17fr) minmax(0,37fr);padding-inline:4px}
  .converging-bracket{padding-left:64px}.converging-grid{column-gap:5px}
  .converging-column .scoreboard-match{width:91%}.converging-column h4{font-size:7px}
  .converging-column .scoreboard-player{padding-inline:3px!important;font-size:7px!important}
  .converging-grand-final{grid-template-columns:minmax(230px,270px);padding-inline:2%}.grand-final-stack{gap:3px}
  .champion-feature{grid-template-columns:32px 48px minmax(58px,1fr);padding:6px}.champion-feature img{width:28px;height:28px}.champion-feature span{font-size:15px}.champion-feature b{font-size:12px}
}

/* V2.3.0 参考看板中轴压缩、冠军姓名框与败者组阶梯 */
body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
.converging-grand-final{position:absolute;left:50%;top:50%;z-index:6;width:252px;padding:0;background:transparent;transform:translate(-50%,-50%)}
.grand-final-stack{gap:5px}.converging-grand-final .scoreboard-final-feature{width:252px}
.converging-grand-final .final-feature-label{min-height:24px;padding:5px 8px;font-size:10px;line-height:1.15}
.converging-grand-final .scoreboard-match{min-height:58px!important}
.grand-final-match{grid-template-rows:minmax(0,1fr) 16px!important}
.grand-finalist-row{grid-template-columns:82px minmax(0,1fr);min-height:21px;padding:2px 9px}
.grand-finalist-row span{font-size:8px}.grand-finalist-row b{font-size:11px}
.grand-finalist-row.win{background:#ddf3df}.grand-finalist-row.win span,.grand-finalist-row.win b{color:#08752d}
.grand-finalist-row.lose{background:#ffe4e1}.grand-finalist-row.lose span,.grand-finalist-row.lose b{color:#c5241b}
.converging-grand-final .scoreboard-match-meta{min-height:16px;padding-inline:7px}
.converging-grand-final .scoreboard-match-number,.converging-grand-final .scoreboard-match-status{font-size:8px}

.champion-feature{display:grid;grid-template-columns:1fr;grid-template-rows:25px 42px;gap:2px;min-height:71px;padding:4px 12px 7px;border:2px solid #e8b91b;border-radius:10px;background:#111}
.champion-feature .champion-title{color:#ffd42a;text-align:center;font-size:19px;font-weight:950;line-height:25px}
.champion-name-row{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:7px;min-width:0}
.champion-name-row img{grid-row:1!important;display:block;width:28px;height:38px;object-fit:cover;object-position:center;background:#111;filter:none}
.champion-name-row img:last-child{justify-self:end}
.champion-name-row b{grid-row:1!important;grid-column:2!important;display:grid;place-items:center;min-width:0;height:34px;padding:3px 8px;border-radius:4px;background:#fff;color:#111;font-size:13px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.converging-column .scoreboard-match{min-height:46px!important}
.converging-winners .first-round .scoreboard-match{min-height:36px!important;grid-template-rows:minmax(0,1fr) 12px}
.converging-column .scoreboard-player{font-size:9.3px!important;font-weight:850;line-height:1.15}
.converging-winners .first-round .scoreboard-player{font-size:8.1px!important}
.scoreboard-match-meta{min-height:15px;padding-inline:5px}
.scoreboard-match-meta .scoreboard-match-number,.scoreboard-match-status{font-size:7.5px}
.converging-winners .first-round .scoreboard-match-number,.converging-winners .first-round .scoreboard-match-status{font-size:6.8px}

.converging-losers{padding-top:0}
.converging-losers .converging-column{grid-template-rows:25px minmax(0,1fr)}
.converging-losers .merged-stage-title{grid-template-rows:0 minmax(0,1fr)}
.converging-losers .merged-stage-title h4{display:none}
.converging-losers .merged-stage-title>div{grid-row:2}
.loser-stagger-outer>div{transform:translateY(-18px)}
.loser-stagger-inner>div{transform:translateY(20px)}
.loser-final>div{gap:20px}

@media(max-width:1250px){
  body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
  .converging-grand-final{width:240px}.converging-grand-final .scoreboard-final-feature{width:240px}
  .converging-column .scoreboard-player{font-size:8px!important}
  .converging-winners .first-round .scoreboard-player{font-size:7.3px!important}
}

/* V2.4.0 大屏实时同步状态与进行中动效 */
.scoreboard-sync-status{display:flex;align-items:center;justify-content:center;gap:6px;margin:-2px 0 8px;padding:5px 7px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#202020;color:#d8d8d8;font-size:8px;font-weight:850;white-space:nowrap}
.scoreboard-sync-status i{width:7px;height:7px;border-radius:50%;background:#9a9a9a;box-shadow:0 0 0 2px rgba(154,154,154,.18)}
.scoreboard-sync-status.online{color:#bdf5c7}.scoreboard-sync-status.online i{background:#27c650;box-shadow:0 0 0 2px rgba(39,198,80,.2),0 0 8px rgba(39,198,80,.68)}
.scoreboard-sync-status.offline{color:#ffd0ca}.scoreboard-sync-status.offline i{background:#ef4438;box-shadow:0 0 0 2px rgba(239,68,56,.2)}
.scoreboard-sync-status.demo{color:#ffe586}.scoreboard-sync-status.demo i{background:#f4c820}

.scoreboard-match.playing{position:relative;z-index:3;animation:live-match-pulse 1.65s ease-in-out infinite}
.scoreboard-match.playing .scoreboard-match-meta{position:relative;overflow:hidden}
.scoreboard-match.playing .scoreboard-match-meta:after{content:"";position:absolute;top:0;bottom:0;left:-38%;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);transform:skewX(-18deg);animation:live-status-sweep 2.15s ease-in-out infinite}
.scoreboard-match.playing .scoreboard-match-status:before{content:"";display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.24);vertical-align:1px;animation:live-dot 1s ease-in-out infinite}
.scoreboard-route.active{animation:live-route-pulse 1.65s ease-in-out infinite}

@keyframes live-match-pulse{0%,100%{box-shadow:0 0 0 2px rgba(24,118,229,.18),0 2px 7px rgba(0,0,0,.23)}50%{box-shadow:0 0 0 3px rgba(38,145,255,.42),0 0 13px rgba(24,118,229,.72),0 3px 8px rgba(0,0,0,.26)}}
@keyframes live-status-sweep{0%,35%{left:-38%}72%,100%{left:118%}}
@keyframes live-dot{0%,100%{opacity:.42;transform:scale(.78)}50%{opacity:1;transform:scale(1.12)}}
@keyframes live-route-pulse{0%,100%{stroke:#1876e5;stroke-width:3;filter:drop-shadow(0 0 1px rgba(24,118,229,.45))}50%{stroke:#43a0ff;stroke-width:3.6;filter:drop-shadow(0 0 3px rgba(24,118,229,.9))}}

@media(prefers-reduced-motion:reduce){
  .scoreboard-match.playing,.scoreboard-match.playing .scoreboard-match-meta:after,.scoreboard-match.playing .scoreboard-match-status:before,.scoreboard-route.active{animation:none!important}
}

/* V2.5.0 参考图式后半程：放大决胜卡、连续主干与中轴总决赛 */
body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){
  grid-template-rows:minmax(0,58fr) minmax(0,42fr);
  padding:8px 10px 10px;
}
.converging-winners{padding-bottom:10px;border-bottom:2px solid rgba(35,29,8,.58)}
.converging-losers{padding-top:6px}
.winner-grid{grid-template-columns:1.18fr 1.08fr 1fr 1.08fr 1.3fr 1.08fr 1fr 1.08fr 1.18fr;column-gap:14px}
.loser-grid{grid-template-columns:1.22fr 1.1fr 1.02fr 1.08fr 1.18fr 1.44fr 1.18fr 1.08fr 1.02fr 1.1fr 1.22fr;column-gap:13px}
.converging-column{grid-template-rows:32px minmax(0,1fr)}
.converging-column h4{font-size:10px;line-height:1.08;letter-spacing:0}

.winner-grid .converging-column .scoreboard-match{width:94%;min-height:50px!important}
.winner-grid .first-round .scoreboard-match{width:90%;min-height:44px!important}
.winner-grid .converging-column:nth-child(2) .scoreboard-match,
.winner-grid .converging-column:nth-child(8) .scoreboard-match{min-height:46px!important}
.winner-grid .converging-column:nth-child(3) .scoreboard-match,
.winner-grid .converging-column:nth-child(7) .scoreboard-match{width:97%;min-height:55px!important}
.winner-grid .converging-column:nth-child(4) .scoreboard-match,
.winner-grid .converging-column:nth-child(6) .scoreboard-match{width:100%;min-height:61px!important}
.winner-grid .winner-final .scoreboard-match{width:100%;min-height:68px!important}
.winner-grid .winner-final>div{justify-content:center;transform:translateY(-14%)}
.winner-grid .converging-column:nth-child(4)>div,
.winner-grid .converging-column:nth-child(6)>div{transform:translateY(-8%)}

.loser-grid .converging-column .scoreboard-match{width:95%;min-height:49px!important}
.loser-grid .first-round .scoreboard-match{width:92%;min-height:44px!important}
.loser-grid .loser-semi .scoreboard-match{width:100%;min-height:54px!important}
.loser-grid .loser-chain .scoreboard-match{width:100%;min-height:57px!important}
.loser-grid .loser-chain>div{justify-content:center;gap:34px;padding-block:8px}
.loser-grid .loser-final .scoreboard-match{width:100%;min-height:62px!important}
.loser-grid .loser-final>div{justify-content:center;gap:40px;padding-block:6px}

.converging-column .scoreboard-player{font-size:9.5px!important;line-height:1.2}
.winner-grid .first-round .scoreboard-player,.loser-grid .first-round .scoreboard-player{font-size:8.2px!important}
.winner-grid .converging-column:nth-child(4) .scoreboard-player,
.winner-grid .converging-column:nth-child(5) .scoreboard-player,
.winner-grid .converging-column:nth-child(6) .scoreboard-player,
.loser-grid .loser-chain .scoreboard-player,
.loser-grid .loser-final .scoreboard-player{font-size:10.2px!important}
.scoreboard-match-meta{min-height:16px;padding-inline:6px}
.scoreboard-match-meta .scoreboard-match-number,.scoreboard-match-status{font-size:8px}

.scoreboard-route{stroke:#24200f;stroke-width:2.15;opacity:1}
.scoreboard-route.advanced{stroke:#079330;stroke-width:2.75}
.scoreboard-route.active{stroke-width:3.4}
.scoreboard-route.winner-to-loser-final{stroke:#24200f;stroke-width:2.4;opacity:1}
.scoreboard-route.winner-to-loser-final.active{stroke:#1876e5;stroke-width:3.4}

.converging-grand-final{left:calc(50% + 36px);top:49%;width:285px}
.grand-final-stack{gap:7px}
.converging-grand-final .scoreboard-final-feature{width:285px;gap:0}
.converging-grand-final .final-feature-label{min-height:26px;padding:3px 4px;border:0;background:transparent;color:#211600;text-shadow:none;box-shadow:none;font-size:12.5px;line-height:1.15}
.converging-grand-final .scoreboard-match{min-height:92px!important;border:3px solid #151515;border-radius:9px;box-shadow:0 0 0 2px rgba(232,185,27,.75),0 4px 12px rgba(0,0,0,.3)}
.grand-final-match{grid-template-rows:21px minmax(0,1fr) 18px!important}
.grand-final-card-head{grid-row:1;display:flex;align-items:center;justify-content:space-between;padding:0 9px;background:#111;color:#fff;font-size:10px;font-weight:900}
.grand-final-match .scoreboard-match-names{grid-row:2;grid-column:1;border-radius:0}
.grand-final-match .scoreboard-match-meta{grid-row:3;grid-column:1;min-height:18px;border-radius:0 0 6px 6px}
.grand-finalist-row{grid-template-columns:101px minmax(0,1fr);min-height:24px;padding:2px 10px}
.grand-finalist-row span{font-size:10px}.grand-finalist-row b{font-size:13px}
.converging-grand-final .scoreboard-match-number,.converging-grand-final .scoreboard-match-status{font-size:9px}

.champion-feature{grid-template-rows:29px 47px;min-height:82px;padding:5px 13px 8px;border-width:3px}
.champion-feature .champion-title{font-size:22px;line-height:29px}
.champion-name-row{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px}
.champion-name-row img{width:32px;height:42px}
.champion-name-row b{height:38px;font-size:15px}

@media(max-width:1250px){
  body.scoreboard-presentation .scoreboard-rounds:has(.scoreboard-connectors){grid-template-rows:minmax(0,58fr) minmax(0,42fr);padding-inline:5px}
  .winner-grid{column-gap:7px}.loser-grid{column-gap:6px}
  .converging-column h4{font-size:7.5px}
  .converging-column .scoreboard-player{font-size:8px!important}
  .winner-grid .first-round .scoreboard-player,.loser-grid .first-round .scoreboard-player{font-size:7.2px!important}
  .converging-grand-final{left:calc(50% + 29px);width:265px}.converging-grand-final .scoreboard-final-feature{width:265px}
}

/* V2.6.0 压缩标题栏、释放组名留白并强化场次底栏 */
body.scoreboard-presentation .scoreboard-shell{padding:6px 10px 3px}
body.scoreboard-presentation .scoreboard-header{height:82px;min-height:82px}
body.scoreboard-presentation .scoreboard-brand{width:calc(100% - clamp(390px,33vw,462px));padding-right:10px}
body.scoreboard-presentation .scoreboard-brand img{width:62px;height:62px}
body.scoreboard-presentation .scoreboard-brand p{margin-bottom:1px;font-size:10px}
body.scoreboard-presentation .scoreboard-brand h2{font-size:clamp(22px,1.65vw,28px)}
body.scoreboard-presentation .scoreboard-subtitle{margin-top:1px;font-size:12px}
body.scoreboard-presentation .scoreboard-stats{top:9px;right:clamp(108px,9vw,126px);width:clamp(282px,23vw,320px);height:58px}
body.scoreboard-presentation .scoreboard-actions{top:9px;right:0;width:clamp(108px,9vw,126px);height:58px}
body.scoreboard-presentation .scoreboard-actions time{height:58px;font-size:clamp(19px,1.35vw,23px)}
body.scoreboard-presentation .scoreboard-content{height:calc(100vh - 89px);padding:5px 0 7px;gap:8px}

.converging-bracket{padding-left:60px}
.converging-bracket>header{left:2px}
.converging-bracket>header strong{font-size:20px}
.converging-bracket>header span{font-size:8px;letter-spacing:.03em}
.converging-grand-final{left:calc(50% + 30px)}
.winner-grid{grid-template-columns:1.16fr 1.06fr 1fr 1.11fr 1.38fr 1.11fr 1fr 1.06fr 1.16fr}
.loser-grid{grid-template-columns:1.18fr 1.08fr 1.02fr 1.1fr 1.22fr 1.54fr 1.22fr 1.1fr 1.02fr 1.08fr 1.18fr}

.converging-column .scoreboard-match{grid-template-rows:minmax(0,1fr) 21px}
.converging-winners .first-round .scoreboard-match{grid-template-rows:minmax(0,1fr) 20px}
.scoreboard-match-meta{min-height:21px;padding-inline:7px}
.scoreboard-match-meta .scoreboard-match-number,.scoreboard-match-status{font-size:9.5px;line-height:1.05}
.converging-winners .first-round .scoreboard-match-number,
.converging-winners .first-round .scoreboard-match-status,
.converging-losers .first-round .scoreboard-match-number,
.converging-losers .first-round .scoreboard-match-status{font-size:8.6px}
.winner-grid .converging-column .scoreboard-match{min-height:54px!important}
.winner-grid .first-round .scoreboard-match{min-height:48px!important}
.winner-grid .converging-column:nth-child(3) .scoreboard-match,
.winner-grid .converging-column:nth-child(7) .scoreboard-match{min-height:59px!important}
.winner-grid .converging-column:nth-child(4) .scoreboard-match,
.winner-grid .converging-column:nth-child(6) .scoreboard-match{min-height:65px!important}
.winner-grid .winner-final .scoreboard-match{min-height:72px!important}
.loser-grid .converging-column .scoreboard-match{min-height:53px!important}
.loser-grid .first-round .scoreboard-match{min-height:48px!important}
.loser-grid .loser-semi .scoreboard-match{min-height:58px!important}
.loser-grid .loser-chain .scoreboard-match{min-height:61px!important}
.loser-grid .loser-final .scoreboard-match{min-height:66px!important}
.grand-final-match{grid-template-rows:21px minmax(0,1fr) 20px!important}

@media(max-width:1250px){
  body.scoreboard-presentation .scoreboard-header{height:76px;min-height:76px}
  body.scoreboard-presentation .scoreboard-brand img{width:56px;height:56px}
  body.scoreboard-presentation .scoreboard-brand h2{font-size:20px}
  body.scoreboard-presentation .scoreboard-content{height:calc(100vh - 83px)}
  .converging-bracket{padding-left:50px}
  .converging-grand-final{left:calc(50% + 25px)}
  .scoreboard-match-meta .scoreboard-match-number,.scoreboard-match-status{font-size:8.5px}
}

@media(max-height:800px){
  body.scoreboard-presentation .scoreboard-header{height:72px;min-height:72px}
  body.scoreboard-presentation .scoreboard-brand img{width:52px;height:52px}
  body.scoreboard-presentation .scoreboard-brand h2{font-size:21px}
  body.scoreboard-presentation .scoreboard-brand p{font-size:8px}
  body.scoreboard-presentation .scoreboard-subtitle{font-size:10px}
  body.scoreboard-presentation .scoreboard-stats,
  body.scoreboard-presentation .scoreboard-actions{top:7px;height:52px}
  body.scoreboard-presentation .scoreboard-actions time{height:52px;font-size:19px}
  body.scoreboard-presentation .scoreboard-content{height:calc(100vh - 79px);padding-block:4px 5px}
  .converging-column{grid-template-rows:27px minmax(0,1fr)}
  .converging-column h4{font-size:8px}
  .converging-column .scoreboard-match{grid-template-rows:minmax(0,1fr) 19px}
  .converging-winners .first-round .scoreboard-match{grid-template-rows:minmax(0,1fr) 19px}
  .scoreboard-match-meta{min-height:19px;padding-inline:5px}
  .scoreboard-match-meta .scoreboard-match-number,.scoreboard-match-status{font-size:8.5px}
  .converging-winners .first-round .scoreboard-match-number,
  .converging-winners .first-round .scoreboard-match-status,
  .converging-losers .first-round .scoreboard-match-number,
  .converging-losers .first-round .scoreboard-match-status{font-size:7.8px}
  .winner-grid .converging-column .scoreboard-match{min-height:47px!important}
  .winner-grid .first-round .scoreboard-match{min-height:40px!important}
  .winner-grid .converging-column:nth-child(3) .scoreboard-match,
  .winner-grid .converging-column:nth-child(7) .scoreboard-match{min-height:50px!important}
  .winner-grid .converging-column:nth-child(4) .scoreboard-match,
  .winner-grid .converging-column:nth-child(6) .scoreboard-match{min-height:55px!important}
  .winner-grid .winner-final .scoreboard-match{min-height:60px!important}
  .loser-grid .converging-column .scoreboard-match{min-height:45px!important}
  .loser-grid .first-round .scoreboard-match{min-height:40px!important}
  .loser-grid .loser-semi .scoreboard-match{min-height:49px!important}
  .loser-grid .loser-chain .scoreboard-match{min-height:52px!important}
  .loser-grid .loser-final .scoreboard-match{min-height:56px!important}
  .loser-grid .loser-chain>div{gap:22px}
  .loser-grid .loser-final>div{gap:26px}
  .converging-grand-final{top:49.5%;width:260px}
  .converging-grand-final .scoreboard-final-feature{width:260px}
  .converging-grand-final .final-feature-label{min-height:21px;font-size:10.5px}
  .converging-grand-final .scoreboard-match{min-height:76px!important}
  .grand-final-match{grid-template-rows:18px minmax(0,1fr) 17px!important}
  .grand-finalist-row{min-height:19px;padding-block:1px}
  .grand-finalist-row span{font-size:8px}.grand-finalist-row b{font-size:10px}
  .champion-feature{grid-template-rows:23px 38px;min-height:65px;padding:3px 10px 5px}
  .champion-feature .champion-title{font-size:18px;line-height:23px}
  .champion-name-row img{width:27px;height:34px}
  .champion-name-row b{height:31px;font-size:12px}
}

/* V2.6.1 明确标注胜者组决赛败者落位，避免与总决赛中轴混淆 */
.scoreboard-route.winner-to-loser-final.loser-drop-route{
  stroke:#a95600;
  stroke-width:3.1;
  opacity:1;
  animation:none;
  filter:none;
}
.scoreboard-route-label{
  fill:#241800;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:10px;
  font-weight:900;
  letter-spacing:.02em;
  paint-order:stroke;
  stroke:#ffdf43;
  stroke-width:4px;
  stroke-linejoin:round;
  pointer-events:none;
}
@media(max-width:1250px), (max-height:800px){
  .scoreboard-route-label{font-size:8.5px;stroke-width:3px}
}

/* V2.8.0 放大标题栏比赛进度，并预留与赛事标题的安全间距 */
body.scoreboard-presentation .scoreboard-brand{
  width:calc(100% - clamp(470px,38vw,540px));
}

/* V2.8.3 区分已叫号待开赛与正式比赛中 */
.scoreboard-match.called{border:2px solid #b78300!important;background:#fffaf0;box-shadow:0 0 0 2px rgba(183,131,0,.14),0 2px 7px rgba(0,0,0,.18)}
.scoreboard-match.called .scoreboard-match-meta{background:#e3ad19;color:#17120a}
.scoreboard-match.called .scoreboard-match-status{color:#17120a}
.scoreboard-table.busy.called{background:#f3bd28;color:#17120a}
.scoreboard-table.busy.playing{background:#1e70df;color:#fff}
body.scoreboard-presentation .scoreboard-stats{
  width:clamp(350px,28vw,410px);
}
body.scoreboard-presentation .scoreboard-stats span{
  font-size:11px;
}
body.scoreboard-presentation .scoreboard-stats>span{
  padding-inline:18px;
  font-size:17px;
}
body.scoreboard-presentation .scoreboard-stats strong{
  font-size:22px;
}
@media(max-width:1250px), (max-height:800px){
  body.scoreboard-presentation .scoreboard-brand{
    width:calc(100% - clamp(430px,39vw,490px));
  }
  body.scoreboard-presentation .scoreboard-stats{
    width:clamp(320px,29vw,360px);
  }
  body.scoreboard-presentation .scoreboard-stats span{font-size:11px}
  body.scoreboard-presentation .scoreboard-stats>span{
    padding-inline:12px;
    font-size:16px;
  }
  body.scoreboard-presentation .scoreboard-stats strong{font-size:21px}
}

/* V2.7.0 独立赛程看板入口 */
.scoreboard-entry-card{width:min(720px,calc(100vw - 28px));border-top:7px solid var(--yellow)}
.scoreboard-entry-card h2{margin-bottom:8px;font-size:28px}
.scoreboard-address-editor{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 10px;margin-top:18px;padding:14px;border:1px solid #e0d9c7;border-radius:12px;background:#faf9f5}
.scoreboard-address-editor label{margin:0}.scoreboard-address-editor input{margin-top:6px;background:#fff}
.scoreboard-address-editor button{height:46px;white-space:nowrap}
.scoreboard-address-editor p{grid-column:1/-1;margin:0;color:#777;font-size:12px}
.scoreboard-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.scoreboard-entry-option{display:grid;grid-template-columns:54px 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 12px;min-height:112px;padding:18px;border:2px solid #e0d9c7;border-radius:16px;background:#fff;color:#111;text-align:left;cursor:pointer;transition:.18s ease}
.scoreboard-entry-option:hover{border-color:#d3a400;transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.scoreboard-entry-option span{grid-row:1/3;display:grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#fff0ae;color:#111;font-size:34px;font-weight:950}
.scoreboard-entry-option strong{font-size:18px}.scoreboard-entry-option small{color:#777;font-size:12px}
.scoreboard-entry-option.screen{background:#111;color:#ffd21f;border-color:#111}.scoreboard-entry-option.screen span{background:#ffd21f}.scoreboard-entry-option.screen small{color:#ddd}
.scoreboard-qr-panel{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:22px;margin-top:20px;padding:18px;border:1px solid #e0d9c7;border-radius:16px;background:#faf9f5}
.scoreboard-qr-code{width:220px;height:220px;padding:8px;background:#fff;border-radius:8px}.scoreboard-qr-code img,.scoreboard-qr-code canvas{display:block;width:204px!important;height:204px!important}
.scoreboard-qr-panel strong{font-size:20px}.scoreboard-qr-panel p{margin:8px 0;color:#666}.scoreboard-qr-panel code{display:block;overflow-wrap:anywhere;padding:10px;border-radius:8px;background:#eee;font-size:11px}
@media(max-width:620px){.scoreboard-address-editor{grid-template-columns:1fr}.scoreboard-address-editor button,.scoreboard-address-editor p{grid-column:1}.scoreboard-entry-actions{grid-template-columns:1fr}.scoreboard-entry-option{min-height:94px}.scoreboard-qr-panel{grid-template-columns:1fr;justify-items:center;text-align:center}.scoreboard-qr-panel code{text-align:left}}

/* V2.6.11 关键场次尺寸和精确对齐由脚本按同阶段相邻卡片实时计算 */

/* V2.6.3 组名只占顶部，首轮卡片复用左侧纵向空间 */
.converging-bracket{padding-left:14px}
.converging-bracket>header{left:3px;top:4px;width:96px;pointer-events:none}
.converging-bracket>header strong{font-size:19px}
.converging-bracket>header span{font-size:7.5px}
.converging-grid>.first-round>h4{
  position:relative;
  z-index:4;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  justify-content:flex-start;
  padding-left:88px;
  overflow:visible;
}
.converging-grid>.first-round>div{padding-top:4px}
.converging-grand-final{left:calc(50% + 7px)}

@media(max-width:1250px){
  .converging-bracket{padding-left:10px}
  .converging-bracket>header{left:2px;width:84px}
  .converging-bracket>header strong{font-size:17px}
  .converging-bracket>header span{font-size:6.5px}
  .converging-grid>.first-round>h4{padding-left:76px}
  .converging-grid>.first-round>div{padding-top:4px}
  .converging-grand-final{left:calc(50% + 5px)}
}

/* V2.6.5 场次底栏文字与左边框保持呼吸间距 */
.scoreboard-match footer.scoreboard-match-meta{padding-inline-start:10px}
@media(max-width:1250px), (max-height:800px){
  .scoreboard-match footer.scoreboard-match-meta{padding-inline-start:8px}
}

/* V2.6.6 总决赛标题并入第62场黑色栏，底栏状态与右边框保持呼吸间距 */
.converging-grand-final .scoreboard-final-feature{gap:0}
.converging-grand-final .grand-final-match{min-height:118px!important;grid-template-rows:46px minmax(0,1fr) 20px!important;border-radius:9px}
.grand-final-card-head{
  display:grid;
  grid-template-rows:minmax(22px,1fr) 17px;
  align-items:center;
  justify-content:stretch;
  min-width:0;
  padding:3px 10px 2px;
  background:#101010;
  color:#fff;
}
.grand-final-card-head>strong{
  display:block;
  min-width:0;
  overflow:hidden;
  color:#ffd83b;
  font-size:10.5px;
  font-weight:950;
  letter-spacing:-.025em;
  line-height:1.15;
  text-align:center;
  white-space:nowrap;
  text-shadow:0 1px 5px rgba(255,194,0,.35);
}
.grand-final-card-head>span{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#f7f7f7;font-size:8px;font-weight:850;line-height:1}
.grand-final-card-head>span b{color:#fff;font-size:8.5px}
.grand-final-card-head>span i{overflow:hidden;color:#d9d9d9;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.scoreboard-match footer.scoreboard-match-meta{padding-inline-end:10px}
.scoreboard-loser-target{flex:0 0 auto;padding:1px 4px;border:1px solid rgba(197,34,24,.28);border-radius:999px;background:#ffe5e2;color:#c52218;font-size:8px;font-weight:950;line-height:1;white-space:nowrap}
.scoreboard-match.playing .scoreboard-loser-target,.scoreboard-match.called .scoreboard-loser-target{border-color:#ffd1cc;background:#fff0ee;color:#b91f16}
.converging-winners .first-round .scoreboard-loser-target{padding-inline:2px;font-size:6.3px}
@media(max-width:1250px), (max-height:800px){
  .converging-grand-final .grand-final-match{min-height:101px!important;grid-template-rows:40px minmax(0,1fr) 18px!important}
  .grand-final-card-head{grid-template-rows:minmax(19px,1fr) 14px;padding:2px 8px 1px}
  .grand-final-card-head>strong{font-size:10px}
  .grand-final-card-head>span,.grand-final-card-head>span b{font-size:7.5px}
  .scoreboard-match footer.scoreboard-match-meta{padding-inline-end:8px}
  .scoreboard-loser-target{padding-inline:2px;font-size:7px}
}

/* V2.6.7 首轮标签与卡片对称对齐，第62场编号回到底栏 */
.converging-bracket>header{left:-2px;width:44px}
.converging-bracket>header strong{font-size:14px}
.converging-bracket>header span{font-size:5.2px;letter-spacing:0}
.converging-grid>.first-round>h4{
  justify-self:auto;
  justify-content:center;
  padding-inline:0;
  overflow:visible;
}
.winner-grid>.first-round>h4{width:90%}
.loser-grid>.first-round>h4{width:92%}
.converging-grid>.first-round.left>h4{justify-self:end}
.converging-grid>.first-round.right>h4{justify-self:start}
.converging-grand-final .grand-final-match{min-height:102px!important;grid-template-rows:30px minmax(0,1fr) 20px!important}
.grand-final-card-head{display:flex;align-items:center;justify-content:center;padding:3px 10px}
@media(max-width:1250px), (max-height:800px){
  .converging-bracket>header{left:-2px;width:40px}
  .converging-bracket>header strong{font-size:13px}
  .converging-bracket>header span{font-size:5px;letter-spacing:0}
  .converging-grand-final .grand-final-match{min-height:88px!important;grid-template-rows:27px minmax(0,1fr) 18px!important}
}

/* V2.6.8 决赛区错层、标题强化与比赛卡片轻量收窄 */
.winner-grid .converging-column .scoreboard-match{width:90%}
.winner-grid .first-round .scoreboard-match{width:86%}
.winner-grid .converging-column:nth-child(3) .scoreboard-match,
.winner-grid .converging-column:nth-child(7) .scoreboard-match{width:93%}
.winner-grid .converging-column:nth-child(4) .scoreboard-match,
.winner-grid .converging-column:nth-child(6) .scoreboard-match,
.winner-grid .winner-final .scoreboard-match{width:96%}
.loser-grid .converging-column .scoreboard-match{width:91%}
.loser-grid .first-round .scoreboard-match{width:88%}
.loser-grid .loser-semi .scoreboard-match,
.loser-grid .loser-chain .scoreboard-match,
.loser-grid .loser-final .scoreboard-match{width:96%}
.winner-grid>.first-round>h4{width:86%}
.loser-grid>.first-round>h4{width:88%}
.winner-grid .winner-final>div{transform:translateY(-28%)}
.loser-grid .loser-final>div{gap:62px}
.converging-grand-final{top:46.5%}
.grand-final-match .grand-final-card-head{display:flex;align-items:center;justify-content:center}
.grand-final-card-head>strong{font-size:11px;letter-spacing:-.04em;text-align:center}
@media(max-width:1250px), (max-height:800px){
  .winner-grid .winner-final>div{transform:translateY(-24%)}
  .loser-grid .loser-final>div{gap:42px}
  .converging-grand-final{top:46.8%}
  .grand-final-card-head>strong{font-size:10.3px}
}

/* V2.6.10 决赛中轴再拉开，并恢复两条高辨识度总决赛进线 */
.loser-grid .loser-final>div{gap:90px}
.converging-grand-final{top:45.2%}
.scoreboard-route.grand-final-feed-route{
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:1;
  vector-effect:non-scaling-stroke;
}
.scoreboard-route.grand-final-feed-route.winner-feed,
.scoreboard-route.grand-final-feed-route.loser-feed{
  stroke:#1478ed;
  stroke-width:5;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 0 4px rgba(20,120,237,.95));
}
@media(max-width:1250px), (max-height:800px){
  .loser-grid .loser-final>div{gap:58px}
  .converging-grand-final{top:45.5%}
  .scoreboard-route.grand-final-feed-route.winner-feed,
  .scoreboard-route.grand-final-feed-route.loser-feed{stroke-width:4.2}
}
