/* Optional replay viewer, isolated from racing canvas and online HUD. */
#frontend .race-replay-launch,#frontend .race-replay-results,#frontend .race-replay-link{cursor:pointer;color:#f2e5c8;border:1px solid #bf9d55;background:#293137;min-height:40px;padding:10px 13px;font:700 12px/1.35 system-ui,sans-serif;letter-spacing:.3px}
#frontend .race-replay-launch:hover,#frontend .race-replay-results:hover,#frontend .race-replay-link:hover{background:#434b51}
#frontend .race-replay-launch:focus-visible,#frontend .race-replay-results:focus-visible,#frontend .race-replay-link:focus-visible{outline:3px solid #ffce6f;outline-offset:2px}
#frontend .ms-nav-extra .race-replay-link{display:block;width:100%;border:0;background:transparent;text-align:left;color:#d3dce2}
#frontend .ms-nav-extra .race-replay-link:hover{background:#313940}
.race-replay-dialog{width:min(1050px,calc(100vw - 24px));max-width:none;max-height:min(93dvh,960px);margin:auto;padding:0;background:#0e151a;color:#f3f6f7;border:1px solid #62737e;border-top:4px solid #ce2230;border-radius:7px;box-shadow:0 18px 85px #000c;overflow:auto;font-family:system-ui,Arial,sans-serif}
.race-replay-dialog::backdrop{background:#020406d0}
.race-replay-dialog *{box-sizing:border-box}
.race-replay-dialog [hidden]{display:none!important}
.race-replay-dialog .race-replay-wrap{min-width:0}
.race-replay-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 22px;background:#191f24;border-bottom:1px solid #465057}
.race-replay-dialog header small{color:#e4b882;font:700 11px system-ui;letter-spacing:1.6px}
.race-replay-dialog h2{font:800 clamp(23px,3vw,35px) system-ui;letter-spacing:-.5px;margin:3px 0 0}
.race-replay-dialog button,.race-replay-dialog select{font:700 13px system-ui,sans-serif;background:#252f36;color:#f4f6f8;border:1px solid #8e9ba4;border-radius:4px;padding:10px 13px;min-height:42px}
.race-replay-dialog button{cursor:pointer}
.race-replay-dialog button:hover:not(:disabled){background:#424f57}
.race-replay-dialog button:focus-visible,.race-replay-dialog select:focus-visible,.race-replay-dialog input:focus-visible{outline:3px solid #ffce6f;outline-offset:3px}
.race-replay-dialog button:disabled{cursor:default;opacity:.45}
.race-replay-dialog header button{width:38px;font-size:25px;line-height:1;padding:5px}
.race-replay-dialog #raceReplayDescription{padding:10px 22px;margin:0;color:#c6d2d9;font-size:13px;line-height:1.6}
.race-replay-dialog .race-replay-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:12px 22px}
.race-replay-dialog .race-replay-toolbar label{display:flex;flex:1;min-width:210px;flex-direction:column;gap:6px;font-size:12px;color:#bac9d2}
.race-replay-dialog .race-replay-toolbar select{min-width:0;width:100%}
.race-replay-dialog #raceReplayDelete{border-color:#bd5863}
.race-replay-dialog .race-replay-transfer{display:flex;align-items:center;flex-wrap:wrap;gap:9px 12px;padding:0 22px 14px;border-bottom:1px solid #36444d}
.race-replay-dialog .race-replay-transfer #raceReplayExport{border-color:#b7a072}
.race-replay-dialog .race-replay-transfer #raceReplayImport{border-color:#79a59a}
.race-replay-dialog .race-replay-transfer small{flex:1 1 230px;line-height:1.45;color:#bac8d1;font-size:11px}
.race-replay-dialog .race-replay-transfer input[hidden]{display:none!important}
.race-replay-dialog .race-replay-stage{margin:0 22px;background:#0b1216;position:relative;border:1px solid #45545d;overflow:hidden;min-height:160px}
.race-replay-dialog canvas{display:block;width:100%;height:auto;aspect-ratio:920/500;object-fit:contain}
.race-replay-dialog .race-replay-legend{position:absolute;top:10px;left:10px;background:#0b1119dd;padding:7px 12px;display:flex;align-items:center;gap:15px;border:1px solid #596671;border-radius:4px;font-size:12px;color:#e3e7eb}
.race-replay-dialog .race-replay-legend span{display:flex;align-items:center;gap:7px}
.race-replay-dialog .race-replay-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.race-replay-dialog .race-replay-me{background:#f9e3a0}
.race-replay-dialog .race-replay-rivals{background:#d85b63}
.race-replay-dialog .race-replay-timeline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:13px 22px 9px;align-items:center}
.race-replay-dialog .race-replay-timeline label{font-size:12px;color:#bfccd4}
.race-replay-dialog .race-replay-timeline input{grid-row:2;grid-column:1/-1;width:100%;accent-color:#e7414c;cursor:pointer;min-height:24px}
.race-replay-dialog .race-replay-timeline output{font:700 13px ui-monospace,Consolas,monospace;white-space:nowrap}
.race-replay-dialog .race-replay-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:7px 22px}
.race-replay-dialog .race-replay-controls #raceReplayPlay{background:#c9202e;border-color:#e83845;min-width:160px}
.race-replay-dialog .race-replay-controls label{display:flex;align-items:center;gap:9px;color:#cbd6dd;font-size:12px}
.race-replay-dialog .race-replay-info{padding:8px 22px;margin:0;min-height:40px;color:#dfc78f;font-size:13px;line-height:1.5}
.race-replay-dialog footer{border-top:1px solid #475159;padding:12px 22px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#9faeb8;font-size:11px;line-height:1.5}
.race-replay-dialog footer span{max-width:740px}
@media(max-width:640px){.race-replay-dialog{width:calc(100vw - 10px);max-height:calc(100dvh - 10px)}.race-replay-dialog header{padding:13px}.race-replay-dialog #raceReplayDescription{padding:9px 13px}.race-replay-dialog .race-replay-toolbar{padding:10px 13px}.race-replay-dialog .race-replay-transfer{padding:0 13px 12px}.race-replay-dialog .race-replay-transfer button{flex:1 1 130px}.race-replay-dialog .race-replay-stage{margin:0 8px}.race-replay-dialog .race-replay-legend{font-size:10px;padding:5px 7px;gap:6px}.race-replay-dialog .race-replay-timeline{padding:9px 13px}.race-replay-dialog .race-replay-controls{gap:6px;padding:7px 10px}.race-replay-dialog .race-replay-controls button{min-height:40px;padding:9px;font-size:11px}.race-replay-dialog .race-replay-controls #raceReplayPlay{min-width:116px}.race-replay-dialog footer{padding:9px 12px;flex-wrap:wrap}.race-replay-dialog .race-replay-info{padding:8px 13px}}
