*{box-sizing:border-box;margin:0;padding:0}html,body{background:0 0;width:1920px;height:1080px;font-family:Barlow,sans-serif;overflow:hidden}:root{--p1-hue:210;--p2-hue:15;--p1-color:hsl(var(--p1-hue), 90%, 58%);--p2-color:hsl(var(--p2-hue), 90%, 58%);--p1-glow:hsl(var(--p1-hue), 90%, 58%);--p2-glow:hsl(var(--p2-hue), 90%, 58%);--gold:gold;--dark:#080c14;--panel:#080c16eb;--border-bright:#ffffff1f;--text:#f0f4ff;--muted:#f0f4ff80;--widget-w:860px}#widget{width:var(--widget-w);cursor:move;-webkit-user-select:none;user-select:none;position:absolute;top:880px;left:30px}.resize-handle{z-index:100;opacity:0;transition:opacity .2s;position:absolute}#widget:hover .resize-handle{opacity:1}#rh-corner{cursor:se-resize;background:#ffffff26;border-radius:3px;width:16px;height:16px;bottom:-5px;right:-5px}#rh-corner:after{content:"";border-bottom:2px solid #fff9;border-right:2px solid #fff9;width:8px;height:8px;position:absolute;bottom:3px;right:3px}#rh-right{cursor:ew-resize;background:#ffffff14;border-radius:0 4px 4px 0;width:10px;top:20%;bottom:20%;right:-5px}#rh-bottom{cursor:ns-resize;background:#ffffff14;border-radius:0 0 4px 4px;height:10px;bottom:-5px;left:20%;right:20%}.card{background:var(--panel);border:1px solid var(--border-bright);border-radius:6px;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg, var(--p1-color) 0%, transparent 45%, transparent 55%, var(--p2-color) 100%);z-index:10;height:2px;position:absolute;top:0;left:0;right:0}.tourney-bar{border-bottom:1px solid var(--border-bright);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#ffffff0a;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:8px;padding:5px 12px;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:600;display:grid}.tourney-bar .brand{color:var(--gold);letter-spacing:.12em;white-space:nowrap;font-size:14px;font-weight:900}.tourney-bar .tourney-center{text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#f0f4ffcc;font-size:13px;overflow:hidden}.tourney-bar .judge-label{text-align:right;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.tourney-bar .judge-label strong{color:#f0f4ffe6;font-weight:700}.scoreboard{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:10px 14px 8px;display:grid}.player{flex-direction:column;gap:3px;display:flex}.player.right{text-align:right;align-items:flex-end}.player-name{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:280px;font-family:Barlow Condensed,sans-serif;font-size:clamp(22px,3.2vw,34px);font-weight:900;line-height:1;overflow:hidden}.p1 .player-name{color:var(--p1-color);text-shadow:0 0 20px var(--p1-glow)}.p2 .player-name{color:var(--p2-color);text-shadow:0 0 20px var(--p2-glow)}.player-side{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:Barlow Condensed,sans-serif;font-size:11px;font-weight:700}.combo-display{flex-direction:column;gap:2px;margin-top:4px;display:flex}.player.right .combo-display{align-items:flex-end}.combo-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.7;font-size:10px;font-weight:700}.combo-parts{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.player.right .combo-parts{justify-content:flex-end}.combo-part{white-space:nowrap;letter-spacing:.02em;border-radius:3px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.p1 .combo-part{color:#93c5fd;text-shadow:0 0 10px #93c5fd80;background:#3b82f638;border:1px solid #93c5fd73}.p2 .combo-part{color:#fca97a;text-shadow:0 0 10px #fca97a80;background:#f9731638;border:1px solid #fca97a73}.combo-dot{color:#f0f4ff59;font-size:10px}.center-score{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.pts-row{align-items:center;gap:8px;display:flex}.pts-num{text-align:center;min-width:44px;font-family:Barlow Condensed,sans-serif;font-size:clamp(40px,6vw,64px);font-weight:900;line-height:1;transition:color .1s}.pts-num.p1-pts{color:var(--p1-color);text-shadow:0 0 20px var(--p1-glow)}.pts-num.p2-pts{color:var(--p2-color);text-shadow:0 0 20px var(--p2-glow)}.pts-num.pop{color:#fff}.pts-divider{color:var(--muted);margin-bottom:4px;font-family:Barlow Condensed,sans-serif;font-size:28px;font-weight:400;line-height:1}.pts-limit{letter-spacing:.1em;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:600}.sets-row{align-items:center;gap:10px;display:flex}.set-dots{gap:4px;display:flex}.dot{border:1.5px solid var(--border-bright);border-radius:50%;width:8px;height:8px;transition:background .1s}.dot.won{transform:scale(1.15)}.dot.p1-dot.won{background:var(--p1-color);border-color:var(--p1-color);box-shadow:0 0 8px var(--p1-glow)}.dot.p2-dot.won{background:var(--p2-color);border-color:var(--p2-color);box-shadow:0 0 8px var(--p2-glow)}.dot.empty{background:0 0}.sets-label{letter-spacing:.12em;color:var(--muted);text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:11px;font-weight:700}#finish-flash{pointer-events:none;z-index:50;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;display:none;position:absolute;inset:0;overflow:hidden}#finish-flash.visible{display:flex}#finish-flash.p1-win{background:#3b82f640}#finish-flash.p2-win{background:#f9731640}.flash-type{letter-spacing:.08em;text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:52px;font-weight:900}.flash-winner{letter-spacing:.15em;text-transform:uppercase;color:#ffffffb3;margin-top:4px;font-family:Barlow Condensed,sans-serif;font-size:22px;font-weight:700}#offline-msg{text-align:center;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:18px 24px;font-family:Barlow Condensed,sans-serif;font-size:16px;font-weight:700;display:none}#offline-msg.visible{display:block}.drag-indicator{cursor:move;opacity:.2;justify-content:center;align-items:center;gap:3px;padding:3px 0 1px;transition:opacity .2s;display:flex}.drag-indicator:hover{opacity:.5}.drag-indicator span{background:var(--text);border-radius:2px;width:24px;height:2px}#scale-wrap{transform-origin:0 0}
