/* Sleek Motion: centered utility, compact right-side bumpers, native-resolution edges. */
#rally-game.dy-edition.pro-v2.battle-playing .battle-actions {
  position:absolute!important;left:50%!important;right:auto!important;top:auto!important;
  bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;
  width:60px!important;margin:0!important;transform:translateX(-50%)!important;
  display:flex!important;justify-content:center!important;z-index:18!important;
}
#rally-game.dy-edition.pro-v2.battle-playing #battle-pause {
  width:60px!important;min-width:60px!important;max-width:60px!important;
  height:44px!important;min-height:44px!important;padding:6px!important;
  font:800 10px Arial!important;border-radius:9px!important;
  background:#132a3fec!important;border-color:#91a1b4!important;
}
#rally-game.dy-edition.pro-v2.battle-playing .pro-desktop-shotbar {bottom:68px!important}
#rally-game.dy-edition.pro-v2.battle-playing:not(.battle-touch) .dy-contact-label {bottom:144px!important}
#rally-game.dy-edition.pro-v2.battle-playing .pro-live-hud {padding-right:12px!important}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-shoulders {
  position:absolute!important;left:auto!important;right:max(24px,env(safe-area-inset-right,0px))!important;
  top:auto!important;bottom:calc(166px + env(safe-area-inset-bottom,0px))!important;
  width:128px!important;display:flex!important;flex-wrap:nowrap!important;
  justify-content:flex-start!important;align-items:center!important;gap:8px!important;
  margin:0!important;padding:0!important;pointer-events:none!important;
}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-shoulders>span {display:none!important}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-shoulders>button {
  flex:0 0 60px!important;width:60px!important;min-width:60px!important;max-width:60px!important;
  height:44px!important;min-height:44px!important;padding:4px!important;
  font:800 9px Arial!important;border-radius:8px 8px 11px 11px!important;
  pointer-events:auto!important;
}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-independent-aim {
  position:absolute!important;left:50%!important;right:auto!important;
  top:auto!important;bottom:calc(220px + env(safe-area-inset-bottom,0px))!important;
  transform:translateX(-50%)!important;width:200px!important;display:flex!important;
  flex-basis:auto!important;flex-wrap:nowrap!important;justify-content:center!important;
  gap:8px!important;margin:0!important;pointer-events:none!important;
}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-independent-aim button {
  flex:0 0 44px!important;width:44px!important;min-width:44px!important;max-width:44px!important;
  min-height:44px!important;padding:4px!important;font-size:8px!important;
}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-handheld-top {
  position:absolute!important;left:50%!important;right:auto!important;top:auto!important;
  bottom:calc(124px + env(safe-area-inset-bottom,0px))!important;
  transform:translateX(-50%)!important;width:76px!important;min-height:0!important;
  flex-direction:column!important;gap:4px!important;
}
#rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-handheld-top .pro-charge-track {
  width:70px!important;height:6px!important;margin:0!important;
}
#rally-game.dy-edition.pro-v2 .battle-court-wrap canvas {image-rendering:auto!important}
@media(min-aspect-ratio:1/1) {
  #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-independent-aim {
    left:max(24px,env(safe-area-inset-left,0px))!important;right:auto!important;
    bottom:calc(166px + env(safe-area-inset-bottom,0px))!important;transform:none!important;
  }
  #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .dy-contact-label {
    bottom:calc(72px + env(safe-area-inset-bottom,0px))!important;max-width:30%!important;
  }
}

.pro-tour-practice{margin-top:24px;padding:24px;border:1px solid #739aa2;border-radius:10px;background:linear-gradient(120deg,#193846,#1c2d42)}.pro-tour-practice>span{font:800 10px Arial;letter-spacing:2px;color:#92ead3}.pro-tour-practice small{display:block;margin-top:16px;font:11px/1.6 Arial;color:#bdd2dc}.pro-tour-practice button{margin-top:8px}

/* Lock In: composure, controlled feet and a committed contact. */
#rally-game.dy-edition.pro-v2.battle-playing .pro-skill-panel{width:236px!important;max-width:calc(100% - 24px)!important}
#rally-game #pro-finish{min-height:44px!important;min-width:104px!important;border-radius:12px!important;font:900 11px Arial!important;letter-spacing:1px!important}
#rally-game.dy-edition.pro-v2.battle-playing #pro-finish-panel button{display:inline-flex!important;align-items:center;justify-content:center}
#rally-game #pro-finish-panel>div{border-radius:14px;padding:6px 8px;gap:8px}
#rally-game #pro-focus-value{display:block;font:800 8px/1.4 Arial;color:#b4edd9;letter-spacing:.4px}
#rally-game #pro-focus-meter:before{background:linear-gradient(90deg,#80e9ca,#ff8575)}
#rally-game[data-finish-state=ready] #pro-finish:not(:disabled),#rally-game[data-finish-state=armed] #pro-finish{color:#fff4e1!important;border:2px solid #ffc4a5!important;background:linear-gradient(145deg,#eb513e,#a51932)!important;box-shadow:0 0 0 3px #ff77572e,0 0 22px #ff624f99;opacity:1}
#rally-game[data-finish-state=armed] #pro-finish{background:linear-gradient(145deg,#ff7651,#c12c32)!important}
#rally-game [data-hh-shot][data-lock-in=active]{color:#fff4e1!important;background:radial-gradient(circle at 40% 30%,#f0744d,#a91f36)!important;border-color:#ffd4b4!important;box-shadow:0 0 0 3px #ff8d5540,0 0 24px #ff543a99!important}
#rally-game .pro-coach-voice{display:flex;gap:12px;align-items:center;box-sizing:border-box;color:#182b35;isolation:isolate}
#rally-game .pro-coach-live{position:absolute;z-index:12;left:max(14px,env(safe-area-inset-left,0px));top:112px;width:310px;max-width:calc(100% - 28px);pointer-events:none;filter:drop-shadow(0 4px 7px #0006)}
#rally-game .pro-coach-avatar{flex:0 0 56px;align-self:flex-end;height:66px;border-radius:24px 24px 14px 14px;background:linear-gradient(140deg,#ffe2a7,#f0a9c9);border:2px solid #162c38;overflow:hidden;box-sizing:border-box}
#rally-game .pro-coach-avatar svg{width:100%;height:100%;display:block}
#rally-game .pro-coach-cloud{flex:1;min-width:0;position:relative;background:#fff4df;border:2px solid #17323f;border-radius:24px 29px 26px 7px;padding:10px 13px;box-shadow:3px 3px 0 #f29fbd}
#rally-game .pro-coach-cloud:before{content:'';position:absolute;left:-10px;bottom:15px;width:15px;height:14px;background:#fff4df;border-left:2px solid #17323f;border-bottom:2px solid #17323f;transform:skew(-24deg) rotate(28deg);z-index:-1}
#rally-game .pro-coach-name{display:flex;justify-content:space-between;gap:6px;font:900 8px/1.2 Arial;letter-spacing:1px;color:#7a4354}
#rally-game .pro-coach-name i{font:700 6px Arial;color:#b66c60;white-space:nowrap}
#rally-game .pro-coach-topic{display:block;margin:4px 0 5px;font:900 11px/1.2 Arial;letter-spacing:.2px;color:#1b3541}
#rally-game .pro-coach-message,#rally-game .pro-coach-message p{font:700 11px/1.45 Arial!important;color:#263b45!important;margin:0!important;letter-spacing:0;text-transform:none}
#rally-game .pro-coach-message p+p{margin-top:9px!important}
#rally-game .pro-coach-voice[data-tone=focus] .pro-coach-cloud{border-color:#a73238;box-shadow:3px 3px 0 #f2695b,0 0 16px #fc775544}
#rally-game .pro-coach-review{margin:24px 0;gap:18px;max-width:760px}
#rally-game .pro-coach-review .pro-coach-avatar{flex-basis:76px;height:88px}
#rally-game .pro-coach-review .pro-coach-cloud{padding:18px 20px;border-radius:30px 35px 29px 7px}
#rally-game .pro-coach-review .pro-coach-message p{font:14px/1.6 Arial!important}
#rally-game .pro-coach-review .pro-coach-name{font-size:9px}
#rally-game .pro-coach-review .pro-coach-topic{font-size:16px;margin:7px 0 10px}
#rally-game.battle-playing .pro-live-coach,#rally-game.battle-playing .dy-practice-hint{display:none!important}
#rally-game.dy-replaying .pro-coach-live{display:none!important}
@media(max-width:700px){
 #rally-game .pro-coach-live{top:144px;width:286px;gap:9px}
 #rally-game .pro-coach-avatar{flex-basis:46px;height:56px}
 #rally-game .pro-coach-cloud{padding:9px 11px}
 #rally-game .pro-coach-review{gap:13px}
 #rally-game .pro-coach-review .pro-coach-avatar{flex-basis:56px;height:66px}
 #rally-game .pro-coach-review .pro-coach-cloud{padding:14px}
}
@media(max-height:600px) and (min-aspect-ratio:1/1){
 #rally-game .pro-coach-live{top:134px;left:50%;width:246px;gap:8px;transform:translateX(-50%)}
 #rally-game .pro-coach-live .pro-coach-avatar{flex-basis:42px;height:50px}
 #rally-game .pro-coach-live .pro-coach-cloud{padding:7px 10px}
 #rally-game .pro-coach-live .pro-coach-topic{font-size:9px;margin:3px 0}
 #rally-game .pro-coach-live .pro-coach-message{font-size:10px!important;line-height:1.3!important}
}
@media(prefers-reduced-motion:no-preference){
 #rally-game[data-finish-state=ready] #pro-finish:not(:disabled){animation:mb-lock-in-glow 2.2s ease-in-out infinite}
 #rally-game .pro-coach-cloud{animation:mb-coach-arrive .24s ease-out both}
 @keyframes mb-lock-in-glow{50%{box-shadow:0 0 0 4px #ff875533,0 0 30px #ff614fcc}}
 @keyframes mb-coach-arrive{from{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){#rally-game #pro-finish,#rally-game .pro-coach-cloud{animation:none!important}}

/* Courtside coaching occupies its own header strip, outside the rendered court. */
#rally-game.dy-edition.pro-v2.battle-playing{--coach-dock-height:44px;--court-header-height:110px}
#rally-game.dy-edition.pro-v2.battle-playing .battle-court-wrap{inset:var(--court-header-height) 0 0!important}
#rally-game.dy-edition.pro-v2.battle-playing .battle-court-wrap canvas{height:calc(100dvh - var(--court-header-height))!important}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live{top:66px!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;height:var(--coach-dock-height)!important;transform:none!important;gap:10px!important;padding:4px max(14px,env(safe-area-inset-right,0px)) 4px max(14px,env(safe-area-inset-left,0px));background:#142a39;border-bottom:1px solid #71868e;filter:none;overflow:hidden}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-avatar{flex:0 0 30px!important;height:35px!important;align-self:center;border-width:1px;border-radius:12px}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-cloud{display:flex;align-items:center;gap:10px;min-height:30px;max-height:100%;padding:3px 10px!important;border-width:1px;border-radius:14px;box-shadow:none!important;animation:none!important;box-sizing:border-box}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-name{display:none}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-topic{flex:0 0 auto;font:900 8px/1.3 Arial!important;margin:0!important;max-width:112px}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-message{font:700 10px/1.35 Arial!important}
#rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-cloud:before{left:-6px;bottom:8px;width:8px;height:8px;border-width:1px}
#rally-game.dy-edition.pro-v2.battle-playing .pro-skill-panel{top:calc(var(--court-header-height) + 4px)!important}
@media(max-aspect-ratio:1/1){
 #rally-game.dy-edition.pro-v2.battle-playing{--coach-dock-height:62px;--court-header-height:128px}
 #rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-cloud{display:block;padding:4px 10px!important}
 #rally-game.dy-edition.pro-v2.battle-playing .pro-coach-live .pro-coach-topic{display:none!important}
}

.pro-play-level{display:flex;align-items:center;gap:24px;padding:18px 0;color:#bcebdc}.pro-play-level label{font:800 10px Arial;letter-spacing:1px;min-width:230px}.pro-play-level select{display:block;margin-top:8px;min-height:44px;width:100%;padding:10px;background:#1b3445;color:#fff;border:1px solid #9dbbb8;border-radius:8px}.pro-play-level p{font:13px/1.6 Arial;color:#ced9df;max-width:600px}
@media(max-width:600px){.pro-play-level{display:block}.pro-play-level label{display:block}}
/* Phone landscape: controls occupy side rails; the court is rendered between them. */
@media(max-height:600px) and (min-aspect-ratio:1/1){
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing{--court-header-height:38px;--coach-dock-height:0px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-coach-live,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-live-hud,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-handheld-top,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .dy-contact-label,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-thumb-label{display:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-touch-panel{inset:38px 0 0!important;height:auto!important;background:none!important;isolation:isolate;padding-bottom:env(safe-area-inset-bottom,0px)!important;padding-left:max(144px,calc(124px + env(safe-area-inset-left,0px)))!important;padding-right:max(144px,calc(124px + env(safe-area-inset-right,0px)))!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-touch-panel:before,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-touch-panel:after{content:'';position:absolute;top:0;bottom:0;width:max(144px,calc(124px + env(safe-area-inset-left,0px)));left:0;background:#122736eb;pointer-events:none;z-index:-1}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-touch-panel:after{left:auto;right:0;width:max(144px,calc(124px + env(safe-area-inset-right,0px)))}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-thumb-row{left:max(12px,env(safe-area-inset-left,0px))!important;right:max(12px,env(safe-area-inset-right,0px))!important;height:120px!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;align-items:flex-end!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing #battle-joystick{width:80px!important;height:80px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing #battle-joystick:before{height:58px;top:10px;left:38px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing #battle-joystick:after{width:58px;left:10px;top:38px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons{width:120px!important;height:120px!important;flex-basis:120px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons button{width:44px!important;height:44px!important;min-height:44px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons .hh-y{left:38px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons .hh-x{top:38px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons .hh-b{top:38px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-face-buttons .hh-a{left:38px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-shoulders{top:calc(8px + env(safe-area-inset-top,0px))!important;bottom:auto!important;right:max(12px,env(safe-area-inset-right,0px))!important;width:120px!important;gap:8px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .hh-shoulders>button{width:56px!important;min-width:56px!important;max-width:56px!important;flex-basis:56px!important;height:44px!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-independent-aim{top:8px!important;bottom:auto!important;left:max(12px,env(safe-area-inset-left,0px))!important;width:96px!important;gap:8px!important;transform:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-independent-aim button:nth-child(n+3){display:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-skill-panel{top:94px!important;left:max(12px,env(safe-area-inset-left,0px))!important;right:auto!important;width:104px!important;min-width:104px!important;max-width:104px!important;transform:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing #pro-finish-panel>div{padding:0;border:0;background:none}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-focus-info,
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing #pro-finish-cue{display:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .battle-status{font-size:8px!important;right:max(152px,calc(132px + env(safe-area-inset-right,0px)))!important;left:max(152px,calc(132px + env(safe-area-inset-left,0px)))!important;top:4px!important;max-width:none!important}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-pause>div{max-height:calc(100dvh - 24px);overflow:auto}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-pause .pro-coach-review{margin:12px 0;gap:8px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-pause .pro-coach-avatar{flex-basis:40px;height:48px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-pause .pro-coach-cloud{padding:10px}
 #rally-game.dy-edition.pro-v2.battle-touch.battle-playing .pro-pause .pro-coach-message p{font:11px/1.4 Arial!important;display:block!important}
}
@media(max-height:280px) and (min-aspect-ratio:1/1){#rally-game.dy-edition.pro-v2.battle-touch.battle-playing #battle-joystick{width:76px!important;height:76px!important}}
