:root{--panel: rgba(15, 23, 42, .82);--text: #f8fafc;--muted: #94a3b8;--accent: #e5484d;--good: #4ade80;--bad: #f87171;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1e3a5f;touch-action:none;user-select:none;-webkit-user-select:none}canvas{display:block;width:100vw;height:100dvh}.hidden{display:none!important}.panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;border-radius:14px;background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 50px #00000059}h1,h2{margin:0 0 4px;font-size:28px}.sub{margin:0 0 18px;color:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(148,163,184,.2)}.stepper{display:flex;align-items:center;gap:12px}.stepper strong{min-width:2ch;text-align:center;font-size:18px}button{font:inherit;color:var(--text);background:#94a3b833;border:0;border-radius:8px;padding:6px 14px;cursor:pointer;touch-action:none}button.primary{width:100%;margin-top:18px;padding:12px;font-size:17px;font-weight:600;background:var(--accent)}.segmented{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.segmented button.selected{background:var(--accent)}.players{padding:8px 0;border-bottom:1px solid rgba(148,163,184,.2)}.players ol{margin:8px 0;padding:0;list-style:none;display:grid;gap:6px}.players li{display:flex;gap:6px}.players select{font:inherit;color:var(--text);background:#94a3b826;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:6px 8px}.players select option{color:#0f172a}.players input{flex:1;min-width:0;font:inherit;color:var(--text);background:#94a3b826;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:6px 10px;user-select:text;-webkit-user-select:text}.tag{margin-left:6px;padding:0 5px;border-radius:4px;background:#94a3b840;color:var(--muted);font-size:11px;font-weight:600;vertical-align:middle}.score td.rank{width:2.5ch;color:var(--muted)}.score th{padding:5px 0;color:var(--muted);font-weight:500;text-align:right}.score th:first-child,.score th:nth-child(2){text-align:left}.podium td{font-weight:600}.buttons{display:flex;gap:8px}.buttons button.primary{flex:2}.buttons button.secondary{flex:1;margin-top:18px}h3{margin:18px 0 4px;font-size:15px;color:var(--muted);font-weight:600}.controls{margin:16px 0 0;padding:0;list-style:none;color:var(--muted);font-size:14px;line-height:1.75}kbd{display:inline-block;min-width:1.6em;padding:0 6px;border-radius:4px;background:#94a3b840;color:var(--text);font:600 12px system-ui,sans-serif;text-align:center}.score{width:100%;border-collapse:collapse;margin-top:8px;font-variant-numeric:tabular-nums}.score td{padding:5px 0;border-bottom:1px solid rgba(148,163,184,.2)}.score td:last-child{text-align:right}.score tr.total td{font-weight:700;font-size:18px;border-bottom:0}.judges{display:flex;gap:6px;margin:12px 0}.judges span{flex:1;padding:6px 0;border-radius:6px;text-align:center;background:#94a3b833;font-variant-numeric:tabular-nums}.judges span.dropped{opacity:.4;text-decoration:line-through}.notes{margin:0;padding-left:18px;color:var(--muted);font-size:14px}.best{color:var(--good);font-weight:600}.crash{color:var(--bad)}.hint{position:fixed;left:50%;bottom:24px;transform:translate(-50%);max-width:calc(100vw - 32px);padding:8px 14px;border-radius:8px;background:#0f172a99;font-size:15px;text-align:center;pointer-events:none}.hint:empty{display:none}.touch{display:none}@media(pointer:coarse){.touch{position:fixed;inset:auto 0 0;display:flex;justify-content:space-between;align-items:flex-end;padding:0 16px calc(16px + env(safe-area-inset-bottom));pointer-events:none}.touch button{pointer-events:auto;background:#0f172a8c;border:2px solid rgba(248,250,252,.35)}.touch button.active{background:#e5484db3}.lean{display:flex;gap:10px}.lean button{width:84px;height:64px;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.lean span{font-size:11px}.action{width:110px;height:110px;border-radius:50%;font-size:17px;font-weight:600}.hint{bottom:auto;top:90px}.controls-help{display:none}}.jury{color:#fde68a;font-weight:600}button.wide{width:100%;margin-top:8px;padding:10px;font-weight:600}.challenge-form{display:grid;gap:6px;margin-top:8px}.challenge-form input,.challenge-form select{font:inherit;color:var(--text);background:#94a3b826;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:8px 10px;user-select:text;-webkit-user-select:text}.challenge-form select option{color:#0f172a}.challenge-form .pair{display:flex;gap:6px}.challenge-form .pair input{flex:1;min-width:0}.score tr.me td{color:#fde68a}.score tr.link{cursor:pointer}.score td.muted,.empty{color:var(--muted)}.error{color:var(--bad);font-weight:600}.status{margin:12px 0 0;color:var(--muted);font-size:14px}.status.ok{color:var(--good)}.records-tabs{justify-content:flex-start;margin-top:8px}#menu h3{margin-top:16px}details.more{border-bottom:1px solid rgba(148,163,184,.2)}details.more summary{padding:10px 0;color:var(--muted);font-weight:600;cursor:pointer;list-style:none}details.more summary::-webkit-details-marker{display:none}details.more summary:after{content:"▸";float:right;transition:transform .15s}details.more[open] summary:after{transform:rotate(90deg)}details.more .row:last-child{border-bottom:0}details.more .controls{margin:0 0 10px}body:not([data-screen=jump]):not([data-screen=replay]) .touch{display:none}body[data-lean=off] .touch .lean{visibility:hidden}@media(pointer:coarse)and (max-height:500px)and (orientation:landscape){.touch{padding:0 max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.lean button{width:64px;height:50px;font-size:16px}.action{width:84px;height:84px;font-size:15px}.hint{top:auto;bottom:calc(14px + env(safe-area-inset-bottom));max-width:calc(100vw - 360px);padding:6px 10px;font-size:13px}.panel{padding:16px 20px;max-height:calc(100dvh - 16px)}#menu{width:min(760px,calc(100vw - 32px));display:flex;gap:28px;align-items:flex-start}.menu-col{flex:1;min-width:0}#menu h1{font-size:24px}#menu .players{padding-top:0}}.touch-only{display:none}@media(pointer:coarse){.touch-only{display:flex}}
