:root{--bg:#0c1014;--panel:#141a20;--panel-2:#1a2128;--line:#2a333c;--text:#f7f8f9;--muted:#929da7;--red:#da2945;--green:#37d29b;--gold:#e7bd63;--silver:#aeb9c2;--bronze:#b77b56}
*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{min-height:100vh;margin:0;color:var(--text);background:radial-gradient(circle at 80% 0,rgba(218,41,69,.08),transparent 30%),var(--bg);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;letter-spacing:0}button{font:inherit;letter-spacing:0}.display-header{height:76px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(12,16,20,.95)}.display-brand{min-width:0;display:flex;align-items:center;gap:13px}.display-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:5px;background:var(--red);font:800 22px/1 Georgia,serif}.display-brand>span:last-child{min-width:0;display:grid;gap:2px}.display-brand small{color:var(--red);font-size:9px;font-weight:800;letter-spacing:1.5px}.display-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.connection{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.connection i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(55,210,155,.1)}.connection time{min-width:58px;color:#d3d9de;font-variant-numeric:tabular-nums}.connection.offline i{background:var(--red);box-shadow:0 0 0 5px rgba(218,41,69,.12)}.connection.offline span{color:#ef8fa0}
.display-rounds{max-width:1440px;margin:0 auto;padding:16px clamp(20px,4vw,64px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.display-rounds button{min-height:58px;padding:9px 14px;display:grid;gap:3px;color:var(--muted);text-align:left;border:1px solid var(--line);border-radius:6px;background:var(--panel);cursor:pointer}.display-rounds button:hover{background:var(--panel-2)}.display-rounds button.active{color:var(--text);border-color:var(--red);background:rgba(218,41,69,.1);box-shadow:inset 0 0 0 1px var(--red)}.display-rounds small{font-size:9px;font-weight:800}.display-rounds strong{font-size:14px}
main{max-width:1440px;margin:auto;padding:18px clamp(20px,4vw,64px) 70px}.display-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:12px 0 24px}.display-heading p{margin:0 0 6px;color:var(--red);font-size:11px;font-weight:800;letter-spacing:1.5px}.display-heading h1{margin:0;font:700 clamp(30px,4vw,52px)/1.1 Georgia,"Songti SC",serif}.display-summary{display:flex;gap:34px}.display-summary span{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:5px}.display-summary b{font-size:25px;font-variant-numeric:tabular-nums}.display-summary small{color:var(--muted);font-size:11px}
.podium{min-height:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.podium:empty{display:none}.podium-item{position:relative;min-height:118px;padding:20px;display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:15px;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}.podium-item:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--medal)}.podium-rank{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;color:#111820;background:var(--medal);font:800 22px/1 Georgia,serif}.podium-name{min-width:0;display:grid;gap:5px}.podium-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}.podium-name small{color:var(--muted)}.podium-score{text-align:right;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}.podium-score small{display:block;color:var(--muted);font-size:10px;font-weight:500}.podium-1{--medal:var(--gold)}.podium-2{--medal:var(--silver)}.podium-3{--medal:var(--bronze)}
.ranking-section{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}.ranking-head,.ranking-row{display:grid;grid-template-columns:90px minmax(200px,1fr) 220px 160px;align-items:center}.ranking-head{min-height:42px;color:var(--muted);background:#10151a;font-size:10px;font-weight:800;text-transform:uppercase}.ranking-head span,.ranking-row>span{padding:0 18px}.ranking-row{min-height:66px;border-top:1px solid var(--line);transition:background .2s}.ranking-row:hover{background:var(--panel-2)}.rank-number{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.rank-number.pending{color:var(--muted)}.competitor{min-width:0;display:flex;align-items:center;gap:12px}.competitor b{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;color:#ef8fa0;background:rgba(218,41,69,.12);border-radius:4px;font-size:11px}.competitor strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.score-progress{display:flex;align-items:center;gap:10px}.score-progress i{width:100px;height:5px;border-radius:3px;background:#303943;overflow:hidden}.score-progress i:after{content:"";display:block;width:var(--progress);height:100%;border-radius:inherit;background:var(--green)}.score-progress small{min-width:40px;color:var(--muted);font-variant-numeric:tabular-nums}.final{color:var(--red);font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.final.pending{color:var(--muted);font-size:12px;font-weight:600}.display-empty{padding:70px 20px;text-align:center;color:var(--muted)}footer{position:fixed;inset:auto 0 0;height:42px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;color:var(--muted);background:#090c0f;border-top:1px solid var(--line);font-size:10px}
@media(max-width:800px){.display-header{height:64px}.connection span{display:none}.display-rounds{padding:10px 14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.display-rounds button{min-width:0}.display-heading{align-items:flex-start;flex-direction:column}.display-summary{width:100%;justify-content:space-between;gap:10px}.display-summary span{display:grid}.podium{grid-template-columns:1fr}.podium-item{min-height:88px}.ranking-head,.ranking-row{grid-template-columns:54px minmax(150px,1fr) 100px}.ranking-head span:nth-child(3),.score-progress{display:none}.ranking-head span,.ranking-row>span{padding:0 10px}.ranking-row>span:last-child{text-align:right}.ranking-row{min-height:60px}footer span:last-child{display:none}}
