.live-score-heading{flex-wrap:nowrap;gap:6px}
.live-score-heading h2{margin-right:auto;white-space:nowrap;flex-shrink:0}
.live-score-heading .score-fullscreen{width:auto;flex-shrink:0;white-space:nowrap;padding:0 7px;font-size:11px;height:30px;background:#f1f2ff;color:#454bcb;border:1px solid #d8dbff;border-radius:6px;cursor:pointer}
.score-ladder{--ladder-gold:#d9bd85;position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;padding:24px clamp(16px,3vw,56px) 32px;box-sizing:border-box;color:#ecf3fd;background:radial-gradient(ellipse at 50% 15%,#21466b80,transparent 48%),linear-gradient(180deg,#111e32,#07121f 65%,#10253b);overflow:auto;color-scheme:dark}
.score-ladder::backdrop{background:#07121f}
.score-ladder::before{content:'';position:fixed;inset:10px;border:1px solid #c4a67338;pointer-events:none;background:linear-gradient(115deg,transparent 42%,#d1bf9310 42.1%,transparent 42.3%),linear-gradient(245deg,transparent 42%,#d1bf9310 42.1%,transparent 42.3%)}
.score-ladder-open{overflow:hidden}
.ladder-svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.score-ladder .ladder-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:24px;align-items:center;max-width:1600px;margin:0 auto;padding:15px 0 20px;background:linear-gradient(180deg,#101e32 85%,#101e3200);border-bottom:1px solid #d5b87b55}
.ladder-eyebrow{color:#a7977c;font-size:11px;letter-spacing:.24em;margin:0 0 6px}
.score-ladder h1{font-size:clamp(28px,3vw,44px);font-weight:600;font-family:"Songti SC","STSong","SimSun",serif;margin:0;color:#f3e2b8;text-shadow:0 2px 8px #000,0 0 30px #d0aa581c;letter-spacing:.18em}
.score-ladder #ladderContext{color:#98adc4;margin:8px 0 0;font-size:13px}
.ladder-actions{display:flex;gap:12px;flex-wrap:wrap}
.score-ladder button,.score-ladder select{border:1px solid #a98f615e;border-radius:2px;background:linear-gradient(180deg,#263b52,#152538);color:#e8d8b5;padding:10px 18px;cursor:pointer;font-size:14px;box-shadow:inset 0 0 0 2px #101d2e}
.score-ladder button:hover{border-color:#ddbf82;background:#2d435b}
.score-ladder button:focus-visible,.score-ladder select:focus-visible{outline:3px solid #83c9ff;outline-offset:3px}
.ladder-tabs{display:flex;gap:0;justify-content:center;margin:26px auto 30px;flex-wrap:wrap}
.ladder-tabs button{min-width:150px;position:relative;background:none;border:0;border-bottom:1px solid #68758a50;color:#95a9c0;box-shadow:none;padding:14px 22px;letter-spacing:.1em}
.ladder-tabs button[aria-pressed=true]{background:linear-gradient(0deg,#c8ae7630,transparent);color:#f3dfad;border-bottom:2px solid #e1c68e;text-shadow:0 0 18px #d4b37b90}
.ladder-tabs button[aria-pressed=true]::after{content:'◆';position:absolute;bottom:-8px;left:calc(50% - 5px);font-size:11px;color:#ead09b}
.ladder-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;max-width:1600px;margin:auto}
.score-ladder[data-view=group] .ladder-boards,.score-ladder[data-view=personal] .ladder-boards{grid-template-columns:minmax(0,1fr);max-width:1100px}
.ladder-board{border:1px solid #b298654a;border-top:2px solid #d5b57b99;background:linear-gradient(180deg,#20354d30,#14273965);padding:22px;min-width:0;position:relative}
.ladder-board::before,.ladder-board::after{content:'';position:absolute;top:-2px;width:28px;height:16px;border-top:2px solid #e3c88d;pointer-events:none}
.ladder-board::before{left:-1px;border-left:2px solid #e3c88d}.ladder-board::after{right:-1px;border-right:2px solid #e3c88d}
.ladder-board-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}
.ladder-board-kicker{font-size:9px;letter-spacing:.22em;color:#8d9baf}
.score-ladder h2{font-size:22px;letter-spacing:.15em;color:#e9d8b3;font-weight:500;margin-top:3px}
.ladder-board-heading>span{color:#869bb2;font-size:12px;border:1px solid #526077;padding:3px 9px}
.score-ladder ol{list-style:none;padding:0;margin:0}
.score-ladder .ladder-podium-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;padding:12px 0 22px}
.ladder-row{--medal-color:#8da7c1;display:flex;align-items:center;gap:18px;padding:12px 18px;border-bottom:1px solid #4e66823d;background:linear-gradient(90deg,#293e5530,transparent);min-width:0;position:relative}
.ladder-podium{--medal-color:#bdcbdd;min-height:266px;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;padding:20px 8px 18px;border:1px solid #8e9fb64d;border-bottom:3px solid var(--medal-color);background:radial-gradient(ellipse at 50% 30%,#45638945,transparent 70%),linear-gradient(180deg,#1b304500,#1c3046);text-align:center}
.ladder-podium::before{content:'';position:absolute;inset:5px;border:1px solid #c5d6e512;pointer-events:none}
.ladder-podium:nth-child(1){grid-column:2;grid-row:1;min-height:300px}
.ladder-podium:nth-child(2){grid-column:1;grid-row:1}.ladder-podium:nth-child(3){grid-column:3;grid-row:1}
.ladder-podium-list.ladder-solo{grid-template-columns:minmax(0,300px);justify-content:center}.ladder-solo .ladder-podium:nth-child(1){grid-column:1}
.ladder-rank-1{--medal-color:#f0d292}.ladder-podium.ladder-rank-1{border-color:#c7a76799;background:radial-gradient(ellipse at 50% 30%,#c4a76430,transparent 70%),linear-gradient(180deg,#32364210,#3d3a2b80);box-shadow:0 0 28px #d3b26a14}
.ladder-rank-2{--medal-color:#c2d8ef}.ladder-rank-3{--medal-color:#d4a58c}.ladder-podium.ladder-rank-3{border-color:#b8917859;background:radial-gradient(ellipse at 50% 30%,#cfa78720,transparent 70%),linear-gradient(180deg,#28304500,#3c303e70)}
.ladder-crest{width:112px;height:96px;overflow:visible;filter:drop-shadow(0 6px 8px #0008)}
.ladder-rank-1 .ladder-crest{width:138px;height:116px;filter:drop-shadow(0 0 14px #d3b97145)}
.ladder-rank-2 .ladder-crest{filter:grayscale(.85) drop-shadow(0 0 10px #a3d4ff40)}.ladder-rank-3 .ladder-crest{filter:sepia(.4) saturate(.8) drop-shadow(0 0 10px #ffbda620)}
.ladder-honor{font-size:10px;color:var(--medal-color);letter-spacing:.16em}
.ladder-rank{font-size:18px;min-width:35px;font-variant-numeric:tabular-nums;color:var(--medal-color);font-family:Georgia,serif}
.ladder-podium .ladder-rank{position:absolute;top:10px;left:12px;font-size:14px;opacity:.8;min-width:0}
.ladder-name{min-width:0;flex:1}
.ladder-name strong{display:block;overflow-wrap:anywhere;font-size:18px;font-weight:500}
.ladder-name small,.ladder-points small{display:block;color:#8fa6bf;font-size:11px;margin-top:4px}
.ladder-name .ladder-members{color:#b1c3d7;font-size:13px;line-height:1.65;margin-top:8px;overflow-wrap:anywhere}
.ladder-members>span{display:inline-block;max-width:100%;vertical-align:top}
.ladder-members>span:not(:last-child)::after{content:'、'}
.ladder-podium .ladder-name{flex:none;width:100%}.ladder-podium .ladder-name strong{font-size:19px;color:#f1e5ce;font-family:"Songti SC","STSong",serif;font-weight:600}
.ladder-points{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
.ladder-points b{font-size:22px;font-weight:500;color:#c4dbf0;font-family:Georgia,serif}
.ladder-podium .ladder-points{text-align:center}.ladder-podium .ladder-points b{font-size:32px;color:var(--medal-color)}.ladder-podium .ladder-points small{display:inline;margin-left:5px;font-size:10px}
.ladder-stars{color:var(--medal-color);font-size:10px;letter-spacing:5px;margin-top:3px;text-shadow:0 0 10px #d7c59c80}
.ladder-list-heading{display:flex;justify-content:space-between;padding:10px 18px;color:#7f95ad;font-size:10px;border-top:1px solid #c5ab723d;letter-spacing:.15em}
.score-ladder .ladder-rest-list{display:grid;gap:4px}.ladder-rest-list .ladder-row:nth-child(even){background:#1931483d}
.ladder-empty{display:flex;align-items:center;flex-direction:column;gap:12px;padding:40px 10px 60px;text-align:center;color:#c2cce3}.ladder-empty .ladder-crest{width:180px;height:150px;opacity:.7}.ladder-empty strong{color:#e4d1a9;font-size:20px;letter-spacing:.12em}.ladder-empty small{font-size:13px;color:#8fa6bf}
.ladder-footer{display:flex;justify-content:space-between;gap:12px;max-width:1600px;margin:24px auto 0;color:#7f95ad;font-size:11px;flex-wrap:wrap}
@media(min-width:1500px){.ladder-podium{min-height:300px}.ladder-podium:nth-child(1){min-height:336px}.ladder-crest{width:138px;height:116px}.ladder-rank-1 .ladder-crest{width:168px;height:140px}}
@media(max-width:1050px){.ladder-boards{grid-template-columns:minmax(0,1fr);max-width:900px}}
@media(max-width:760px){.score-ladder{padding:14px 16px 24px}.score-ladder .ladder-header{align-items:flex-start;flex-direction:column;gap:14px;padding:12px 0 18px}.ladder-eyebrow{font-size:9px}.score-ladder h1{font-size:30px}.ladder-actions{gap:8px}.ladder-board{padding:15px 10px}.ladder-boards{gap:24px}.ladder-tabs{margin:20px auto 26px}.ladder-tabs button{min-width:0;flex:1;padding:12px 6px;font-size:12px}.score-ladder button,.score-ladder select{padding:8px 12px}.score-ladder h2{font-size:18px}.score-ladder .ladder-podium-list{gap:6px}.ladder-podium{padding:20px 5px 14px;min-height:230px}.ladder-podium:nth-child(1){min-height:252px}.ladder-crest{width:75px;height:65px}.ladder-rank-1 .ladder-crest{width:88px;height:76px}.ladder-podium .ladder-name strong{font-size:15px}.ladder-podium .ladder-points b{font-size:26px}.ladder-honor{font-size:9px;letter-spacing:0}.ladder-podium .ladder-rank{left:7px;top:5px;font-size:10px}.ladder-row{gap:10px;padding:10px 12px}.ladder-name strong{font-size:16px}.ladder-stars{letter-spacing:1px}}
@media print{.score-ladder{display:none!important}}
/* 信息科技课堂：电路纹理和芯片徽章沿用原榜单的荣耀层级。 */
.score-ladder{background-image:url('/assets/score-circuit.svg'),radial-gradient(ellipse at 50% 15%,#21466b80,transparent 48%),linear-gradient(180deg,#111e32,#07121f 65%,#10253b);background-size:600px 600px,auto,auto;background-attachment:fixed}
.score-ladder::before{background:none}
.ladder-motto{display:flex;align-items:center;gap:12px;margin:10px 0 0;color:#a6d5e5;font-size:11px;letter-spacing:.18em}
.ladder-motto i{color:#b69c68;font-style:normal;font-size:9px}
.ladder-board-kicker{color:#88b9cb;letter-spacing:.12em}
.ladder-stars{color:#a8d9e8}.ladder-rank-1 .ladder-stars{color:#f0d292}
.score-ladder h1,.ladder-podium .ladder-name strong{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
.score-ladder h1{font-weight:650;font-size:clamp(26px,2.8vw,42px);letter-spacing:.12em}
@media(max-width:760px){.score-ladder h1{font-size:26px;letter-spacing:.08em}.ladder-motto{gap:9px;margin-top:8px}.ladder-board-kicker{font-size:9px;letter-spacing:.04em}}

/* 触屏榜单在页面内打开，关闭后直接回到快捷加分。 */
.score-ladder.ladder-mobile{-webkit-text-size-adjust:100%;text-size-adjust:100%;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.ladder-mobile .ladder-actions{flex-shrink:0}.ladder-mobile button,.ladder-mobile select{min-height:44px;touch-action:manipulation}.ladder-mobile select{font-size:16px}
@media(max-height:500px) and (min-width:500px){.ladder-mobile .ladder-header{flex-direction:row;align-items:center;gap:12px;padding:6px 0 10px}.ladder-mobile h1{font-size:23px}.ladder-mobile .ladder-eyebrow,.ladder-mobile .ladder-motto{display:none}.ladder-mobile #ladderContext{margin-top:4px;font-size:11px}.ladder-mobile .ladder-tabs{margin:10px auto 14px}.ladder-mobile .ladder-tabs button{padding:8px}.ladder-mobile .ladder-board{padding:12px}.ladder-mobile .ladder-board-heading{margin-bottom:8px}.ladder-mobile .ladder-podium{min-height:190px;padding-top:16px}.ladder-mobile .ladder-podium:nth-child(1){min-height:210px}.ladder-mobile .ladder-crest{width:72px;height:62px}.ladder-mobile .ladder-rank-1 .ladder-crest{width:88px;height:76px}}
