/* PlayStor production virtual pad v2 — migrated from the working SNES laboratory.
 * Extends existing G4.4 controls without replacing Nostalgist, saves, or physical gamepads.
 * Loaded after games-bundle.css so the production touch renderer has its own styles. */
#game-player-overlay.ps-lab-pad-on{
  --ps-pad-size:clamp(104px,31vmin,180px);
  --ps-pad-safe-bottom:max(66px,env(safe-area-inset-bottom));
}
#game-player-overlay .ps-lab-pad{
  position:absolute;inset:0!important;bottom:0!important;left:0!important;right:0!important;
  display:block!important;z-index:69!important;box-sizing:border-box!important;
  padding:0!important;margin:0!important;border:0!important;
  background:transparent!important;overflow:hidden;
  pointer-events:none!important;contain:layout paint;
  touch-action:none;-webkit-user-select:none;user-select:none;
}
#game-player-overlay .ps-lab-pad *{box-sizing:border-box}
#game-player-overlay .ps-lab-pad button{
  pointer-events:auto!important;touch-action:none!important;
  cursor:pointer;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;
  color:#f4f8fe!important;
  background:linear-gradient(160deg,#2c4263ef,#10203bf0)!important;
  border:1px solid #4a678d!important;
  box-shadow:inset 0 2px 2px #ffffff22,0 5px 17px #0008!important;
  font:750 14px/1.05 system-ui,sans-serif!important;
  border-radius:13px;
  min-width:0;min-height:0;
  transition:transform .07s,background .09s,border-color .09s;
}
#game-player-overlay .ps-lab-pad button.pressed{
  background:#3f75bd!important;
  border-color:#9accff!important;
  box-shadow:inset 0 3px 10px #0008,0 0 18px #7dabff68!important;
  transform:scale(.93);
}
#game-player-overlay .ps-lab-pad button:focus-visible{outline:2px solid #e4f4ff;outline-offset:2px}
#game-player-overlay .ps-pad-top{
  position:absolute;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:8px;
  display:flex;justify-content:space-between;gap:8px;align-items:flex-start;
  pointer-events:none;
}
#game-player-overlay .ps-pad-shoulders{display:flex;gap:9px;flex-wrap:wrap;pointer-events:none}
#game-player-overlay .ps-pad-shoulders button{
  pointer-events:auto;height:46px;min-width:clamp(65px,9vw,125px);
  border-radius:16px!important;
  font-size:17px!important;font-weight:800!important;
}
#game-player-overlay .ps-pad-expand{
  width:44px;height:43px;border-radius:15px!important;font-size:21px!important;
}
#game-player-overlay .ps-pad-main{
  position:absolute;bottom:var(--ps-pad-safe-bottom);left:max(10px,env(safe-area-inset-left));
  right:max(10px,env(safe-area-inset-right));
  display:flex;align-items:center;justify-content:space-between;gap:5px;pointer-events:none;
}
#game-player-overlay .ps-pad-dpad{
  position:relative;flex:0 0 var(--ps-pad-size);
  width:var(--ps-pad-size);height:var(--ps-pad-size);
  border-radius:50%;pointer-events:auto!important;touch-action:none!important;
  background:radial-gradient(circle,#1b2943c7 36%,#0d172bcc 66%,#081122d5);
  box-shadow:inset 0 1px 13px #000c,0 6px 16px #0006;
  border:1px solid #314968b0;
}
#game-player-overlay .ps-pad-dpad>span[data-pad-direction]{
  position:absolute;display:grid;place-items:center;
  width:34%;height:34%;pointer-events:none;
  border:1px solid #4a6689;
  border-radius:10px;color:#f5f8ff;font-size:clamp(15px,2.5vw,21px);
  background:linear-gradient(155deg,#294165fa,#14243dfa);
  box-shadow:0 3px 8px #0008,inset 0 1px 2px #ffffff26;
}
#game-player-overlay .ps-pad-dpad>span[data-pad-direction=up]{top:4%;left:33%;border-radius:14px 14px 6px 6px}
#game-player-overlay .ps-pad-dpad>span[data-pad-direction=down]{bottom:4%;left:33%;border-radius:6px 6px 14px 14px}
#game-player-overlay .ps-pad-dpad>span[data-pad-direction=left]{top:33%;left:4%;border-radius:14px 6px 6px 14px}
#game-player-overlay .ps-pad-dpad>span[data-pad-direction=right]{top:33%;right:4%;border-radius:6px 14px 14px 6px}
#game-player-overlay .ps-pad-dpad>span.pressed{background:#396ab3!important;border-color:#94c6fb!important;color:#fff!important;box-shadow:inset 0 2px 12px #0007,0 0 11px #6cb1ff8c}
#game-player-overlay .ps-pad-dpad:before{
  content:"";position:absolute;inset:34%;background:#223651;border-radius:7px;
  border:1px solid #3c587a;pointer-events:none;
}
#game-player-overlay .ps-pad-dpad:after{
  content:"";position:absolute;inset:45%;background:#152641;border-radius:50%;
  border:1px solid #869fc27c;pointer-events:none;
}
#game-player-overlay .ps-pad-faces{
  position:relative;flex:0 0 var(--ps-pad-size);width:var(--ps-pad-size);
  height:var(--ps-pad-size);pointer-events:none;
}
#game-player-overlay .ps-pad-faces button{
  position:absolute;pointer-events:auto;display:grid;place-items:center;
  width:32%;height:32%;border-radius:50%!important;
  font-size:clamp(17px,3.3vw,24px)!important;
  font-weight:800!important;text-shadow:0 1px 3px #0008;
}
#game-player-overlay .ps-pad-faces-diamond .ps-pad-x{top:3%;left:34%;background:linear-gradient(135deg,#465bc9,#232967)!important;border-color:#8199ec!important}
#game-player-overlay .ps-pad-faces-diamond .ps-pad-y{top:34%;left:3%;background:linear-gradient(135deg,#388a5e,#174e37)!important;border-color:#6bac7e!important}
#game-player-overlay .ps-pad-faces-diamond .ps-pad-a{top:34%;right:3%;background:linear-gradient(135deg,#b24763,#792d4f)!important;border-color:#dc7893!important}
#game-player-overlay .ps-pad-faces-diamond .ps-pad-b{bottom:3%;left:34%;background:linear-gradient(135deg,#ba9a3d,#82651e)!important;border-color:#dcbc66!important}
#game-player-overlay .ps-pad-faces-diamond .ps-pad-face.pressed{background:#6d8dd1!important;border-color:#e0ecff!important}
#game-player-overlay .ps-pad-faces-two{
  display:flex;gap:9px;align-items:center;justify-content:center;
}
#game-player-overlay .ps-pad-faces-two button{
  position:relative;width:43%;height:43%;font-size:22px!important;
}
#game-player-overlay .ps-pad-faces-two button:nth-child(1){align-self:flex-end;margin-bottom:8%}
#game-player-overlay .ps-pad-faces-six{
  display:flex;flex-direction:column;justify-content:space-around;gap:7px;
}
#game-player-overlay .ps-pad-faces-six>div{
  width:100%;height:43%;display:flex;justify-content:space-between;gap:4px;
}
#game-player-overlay .ps-pad-faces-six button{
  position:relative;width:31%;height:auto;aspect-ratio:1/1;font-size:15px!important;
}
#game-player-overlay .ps-pad-faces-six>div:nth-child(1) button{background:linear-gradient(155deg,#53517a,#25294a)!important}
#game-player-overlay .ps-pad-faces-six>div:nth-child(2) button{background:linear-gradient(155deg,#3e738c,#1b3e57)!important}
#game-player-overlay .ps-pad-center{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:max(14px,env(safe-area-inset-bottom));
  display:flex;gap:10px;justify-content:center;pointer-events:none;
}
#game-player-overlay .ps-pad-center button{
  pointer-events:auto;min-width:81px;height:38px;padding:0 9px;
  border-radius:99px!important;font-size:12px!important;font-weight:750!important;
  background:linear-gradient(155deg,#364666d9,#1d2b4dd9)!important;
}
/* Portrait gameplay: reserve room for the touchpad and keep the emulated image above it. */
@media (orientation:portrait) and (max-width:950px){
  #game-player-overlay.ps-lab-pad-on{--ps-pad-size:clamp(120px,36vw,174px);--ps-pad-safe-bottom:max(82px,env(safe-area-inset-bottom))}
  #game-player-overlay.ps-lab-pad-on .game-player-stage{
    padding:clamp(50px,7dvh,86px) 7px 260px!important;
    align-items:flex-start!important;justify-content:center!important;
  }
  #game-player-overlay .ps-pad-top{top:auto;bottom:calc(var(--ps-pad-safe-bottom) + var(--ps-pad-size) + 16px)}
  #game-player-overlay .ps-pad-shoulders button{height:38px;min-width:66px;font-size:14px!important}
  #game-player-overlay .ps-pad-expand{width:41px;height:39px}
  #game-player-overlay .ps-pad-center{bottom:max(65px,env(safe-area-inset-bottom) + 48px)}
  #game-player-overlay .ps-pad-center button{min-width:74px;height:35px;font-size:11px!important}
}
@media(max-width:390px) and (orientation:portrait){
  #game-player-overlay.ps-lab-pad-on{--ps-pad-size:clamp(108px,33vw,142px)}
  #game-player-overlay .ps-pad-main{left:7px;right:7px}
  #game-player-overlay .ps-pad-shoulders button{min-width:57px;height:33px}
  #game-player-overlay .ps-pad-center{bottom:57px;gap:6px}
  #game-player-overlay .ps-pad-center button{min-width:69px;height:33px}
}
/* Landscape: screen center, virtual gamepad on opposite sides as in the working lab. */
@media(orientation:landscape){
  #game-player-overlay.ps-lab-pad-on{--ps-pad-size:clamp(100px,33dvh,190px);--ps-pad-safe-bottom:max(12px,env(safe-area-inset-bottom))}
  #game-player-overlay.ps-lab-pad-on .game-player-stage{
    padding:4px calc(var(--ps-pad-size) + 23px) 5px!important;
    align-items:center!important;justify-content:center!important;
  }
  #game-player-overlay .ps-pad-top{top:max(6px,env(safe-area-inset-top));}
  #game-player-overlay .ps-pad-main{bottom:var(--ps-pad-safe-bottom)}
  #game-player-overlay .ps-pad-center{bottom:max(14px,env(safe-area-inset-bottom))}
  #game-player-overlay .ps-pad-shoulders button{height:38px;min-width:clamp(59px,9vw,120px)}
}
@media(max-height:420px) and (orientation:landscape){
  #game-player-overlay.ps-lab-pad-on{--ps-pad-size:clamp(96px,33dvh,137px)}
  #game-player-overlay .ps-pad-top{top:5px}
  #game-player-overlay .ps-pad-shoulders button{height:32px;font-size:13px!important}
  #game-player-overlay .ps-pad-expand{height:33px;width:37px}
  #game-player-overlay .ps-pad-center button{height:30px;min-width:67px}
}
@media(min-width:951px) and (pointer:fine){
  #game-player-overlay.ps-lab-pad-on .game-player-stage{padding:10px!important}
}
