/* Player overlays never participate in page layout or replace the video element. */
.player .playback-message{position:absolute;inset:0;max-width:none;width:100%;padding:0;pointer-events:none}
.player .playback-message #start-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:auto}
.player .playback-message #play-error{position:absolute;left:16px;right:16px;top:calc(50% + 38px);margin:0;color:#d8e3f1}
.play-caption{position:absolute;left:8px;right:8px;top:calc(50% + 48px);color:#fff;font-size:16px;line-height:1.5;text-align:center;pointer-events:none;text-shadow:0 1px 4px #000}
.player-shell .play-caption{top:calc(50% + 38px);font-size:13px}
.player .playback-message [hidden],.player .playback-resume-bar[hidden]{display:none!important}
.player #start-play .replay-icon,.player-shell #play .replay-icon{width:40px;height:40px;transform:none;fill:none;stroke:#111;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.player-shell #play .replay-icon{width:32px;height:32px}
.playback-resume-bar{position:absolute;inset:auto 0 0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 18px;background:#101827ed;color:#c8d4e3;font-size:14px;font-variant-numeric:tabular-nums}
.playback-resume-bar button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:#fff;border:0;border-radius:4px;font:inherit;min-height:44px;padding:4px 8px;cursor:pointer;white-space:nowrap}
.playback-resume-bar button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.playback-resume-bar button:focus-visible,.player #start-play:focus-visible,.player-shell #play:focus-visible{outline:2px solid #8cbaff;outline-offset:2px}
.player-shell .playback-resume-bar{min-height:44px;padding:0 8px;font-size:12px}
.has-playback-overlay .prism-big-play-btn,.has-playback-overlay .vjs-big-play-button,.is-replay .prism-cover{display:none!important}
.player.is-replay #vod-player .prism-cover{display:none!important}
.playback-notices{position:absolute;left:10px;right:10px;bottom:6px;z-index:30;text-align:center;pointer-events:none;font-size:12px;line-height:1.4;color:#d8e3f1}
.playback-notices:has(#message:not(:empty)),.playback-notices:has(#save:not(:empty)),.playback-notices:has(#progress-status:not(:empty)){background:#101827ed;border-radius:5px;padding:5px 8px}
.playback-notices #message,.playback-notices #save{margin:0;min-height:0;color:inherit}
.playback-notices .error{color:#ffd5c4}
.playback-failure{position:absolute;inset:0;z-index:26;background:#101827;overflow:auto;padding:8px 14px;display:flex;align-items:center;justify-content:center;text-align:center}
.playback-failure-inner{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:340px;width:100%;margin:auto}
.playback-failure .failure-icon{width:24px;height:24px;fill:none;stroke:#c8d4e3;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.playback-failure h3{font-size:17px;line-height:1.3;margin:0;color:#fff;font-weight:600}
.playback-failure p{font-size:12px;line-height:1.4;margin:0;color:#bac5d6;max-width:290px}
.playback-failure small{font-size:11px;line-height:1.3;color:#95a3b8}
.playback-failure #copy-website{width:80%;min-height:44px;border:0;padding:8px 12px;border-radius:7px;background:#2563eb;color:#fff;font-size:13px;line-height:1.4}
.playback-failure #copy-status{margin:0;color:#bac5d6;font-size:11px}
.playback-failure #copy-status:empty{display:none}
.playback-failure #manual-copy{margin:0;width:100%;font-size:11px;color:#bac5d6}
.playback-failure #website{font-size:12px;padding:5px}
@media(max-width:360px){.playback-failure{padding:6px 10px}.playback-failure .failure-icon{display:none}.playback-failure h3{font-size:15px}.playback-failure-inner{gap:3px}.player-shell .play-caption{top:calc(50% + 34px);font-size:12px}.player-shell .playback-resume-bar{font-size:11px}}

.player-shell.has-resume .playback-overlay{bottom:44px}
.player.has-resume .playback-message{bottom:48px}
.player-shell.has-resume .play-caption{top:calc(50% + 34px);font-size:12px}

/* At the end, the replay action is the only player control over the last frame. */
.is-replay .prism-controlbar,.is-replay .prism-progress,.is-replay .vjs-control-bar{visibility:hidden!important}

/* SDK startup must not flash a second play icon before the first video frame.
   Native big play remains available only after an actual user pause. */
.player-shell:not(.is-paused) #player .prism-big-play-btn,
.player-shell:not(.is-paused) #player .vjs-big-play-button{display:none!important}
.player-shell.playback-starting #player .prism-loading,
.player-shell.playback-starting #player .vjs-loading-spinner{visibility:hidden!important}

/* Desktop startup follows the same single-control rule as the mini player. */
.player:not(.is-paused) #vod-player .prism-big-play-btn,
.player:not(.is-paused) #vod-player .vjs-big-play-button{display:none!important}
.player.playback-starting #vod-player .prism-loading,
.player.playback-starting #vod-player .vjs-loading-spinner{visibility:hidden!important}
