.mobileControls{display:none}
.mobileGame body{overscroll-behavior:none}
.mobileGame #viewport canvas{touch-action:none}
.mobileGame .mobileControls{display:block;position:absolute;inset:0;pointer-events:none}
.mobileGame .mobileJoystick{position:absolute;left:14px;bottom:calc(133px + env(safe-area-inset-bottom));width:120px;height:120px;border:2px solid #e4b47a;background:#14323abb;border-radius:50%;pointer-events:auto;touch-action:none;user-select:none;box-shadow:0 6px 22px #0008}
.mobileGame .mobileJoystick:before,.mobileGame .mobileJoystick:after{content:'';position:absolute;background:#b8c9c555}
.mobileGame .mobileJoystick:before{width:1px;height:88%;left:50%;top:6%}
.mobileGame .mobileJoystick:after{height:1px;width:88%;top:50%;left:6%}
.mobileGame .mobileJoystickKnob{position:absolute;z-index:1;left:calc(50% - 23px);top:calc(50% - 23px);width:46px;height:46px;border-radius:50%;background:#edb47b;border:3px solid #fff0d8;box-shadow:0 3px 12px #0009;pointer-events:none}
.mobileGame .mobileJoystick span{position:absolute;left:0;right:0;bottom:-21px;text-align:center;color:#f5d5af;font-size:10px;font-weight:800;letter-spacing:2px}
.mobileGame .mobileLookHint{position:absolute;right:16px;bottom:calc(301px + env(safe-area-inset-bottom));padding:7px 9px;background:#10262caa;color:#dfebe5;border:1px solid #819c9699;border-radius:8px;font-size:10px;font-weight:800;letter-spacing:1px}
.mobileGame .mobileActions{position:absolute;right:12px;bottom:calc(137px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;pointer-events:auto}
.mobileGame .mobileActions button{min-width:112px;min-height:47px;padding:8px 12px;background:#e5ad76;color:#153039;border:2px solid #ffe0ad;border-radius:12px;font-size:12px;font-weight:900;letter-spacing:.7px;box-shadow:0 5px 14px #0008;touch-action:manipulation}
.mobileGame .mobileActions button:last-child{background:#24434a;color:#f5ebdc;border-color:#8fb1ad}
.mobileGame .bottom{left:5px;right:5px;bottom:calc(5px + env(safe-area-inset-bottom));height:57px;display:block}
.mobileGame .tooltray{width:100%;max-width:none;height:57px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:4px;gap:4px;touch-action:pan-x}
.mobileGame .tool{flex:0 0 65px;width:65px;height:46px;padding:2px}
.mobileGame .tool span{font-size:21px}.mobileGame .tool small{font-size:8px;margin-top:2px}
.mobileGame .tabletButton{position:absolute;right:5px;bottom:calc(100% + 9px);min-height:46px;padding:7px 10px;border-radius:11px;font-size:12px}
.mobileGame .tabletButton span{display:block;font-size:12px}.mobileGame .tabletButton small{font-size:7px}.mobileGame .tabletButton kbd{display:none}
.mobileGame .whoHudLogo{position:absolute;left:auto;right:160px;bottom:calc(100% + 10px);width:42px;height:42px}
.mobileGame .topbar{height:57px;padding:0 9px;gap:5px}
.mobileGame .brand{font-size:17px;letter-spacing:.5px}.mobileGame .brandmark{width:25px;height:25px}.mobileGame .brand small{font-size:7px;letter-spacing:1px}
.mobileGame .weather{min-width:73px}.mobileGame .weather b{font-size:12px}.mobileGame .weather span{font-size:7px;letter-spacing:.5px}
.mobileGame #fullscreenButton{top:59px;right:8px;padding:7px 8px;font-size:10px}
.mobileGame .objective{left:8px;top:61px;width:min(225px,calc(100vw - 120px));padding:8px 10px;box-shadow:0 4px 12px #08101466}
.mobileGame .objective small{font-size:8px;margin-bottom:3px}.mobileGame .objective div{font-size:11px;line-height:1.3}
.mobileGame .rightHud{top:56%;min-width:160px}.mobileGame #targetName{font-size:16px}.mobileGame #prompt{font-size:10px}
.mobileGame #toast{bottom:calc(325px + env(safe-area-inset-bottom));max-width:85vw;font-size:11px;padding:9px}
.mobileGame .menuContent{min-height:100svh;padding:28px 20px 22px;width:100%}
.mobileGame .menuContent h1{font-size:clamp(67px,16vw,100px);margin:8vh 0 20px}
.mobileGame .menuContent p{font-size:14px;margin-bottom:22px}.mobileGame .menuActions button{min-height:48px}
.mobileGame .menuFooter{flex-wrap:wrap;gap:8px 15px;font-size:8px}
.mobileGame .panel{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:23px 15px 18px;border-radius:12px;overscroll-behavior:contain;touch-action:pan-y}
.mobileGame .panel h2{font-size:clamp(28px,9vw,40px);padding-right:22px}
.mobileGame .panelActions{flex-wrap:wrap}.mobileGame .panelActions button{min-height:44px}
.mobileGame .partGrid,.mobileGame .trainingGrid,.mobileGame .testGrid{grid-template-columns:1fr 1fr}
.mobileGame .tabletCols{grid-template-columns:1fr}.mobileGame .diagnosisTop{grid-template-columns:1fr}
.mobileGame .meterLayout{display:block}
.mobileGame .meterControl{position:relative;grid-template-columns:105px minmax(0,1fr);padding:8px;gap:7px}
.mobileGame .meterFace{grid-column:1;grid-row:1}
.mobileGame .meterModes{grid-column:2;grid-row:1;grid-template-columns:repeat(3,minmax(0,1fr))}
.mobileGame .leadControls,.mobileGame .meterControl .meterSafety,.mobileGame .meterHelp{grid-column:1/-1;grid-row:auto}
.mobileGame .meterFace{min-height:74px}.mobileGame .meterFace strong{font-size:25px}.mobileGame .meterModes button,.mobileGame .leadControls button{min-height:40px}
.mobileGame .leadControls{display:grid;grid-template-columns:1fr 1fr}
.mobileGame .ladderBoards{display:block;overflow-x:auto;touch-action:pan-x}
.mobileGame .ladderBoards:before{content:'Swipe sideways to view the full diagram';display:block;color:#b9cdca;font:11px Arial,sans-serif;margin:0 0 5px}
.mobileGame .ladderSection,.mobileGame .ladderSection.rtuUnified{width:520px;min-width:520px;max-width:none;margin:0 0 10px}
.mobileGame .ladderSection.rtuUnified{width:760px;min-width:760px}
.mobileGame .testPoint{width:44px;height:44px}
@media(max-height:560px){.mobileGame .mobileJoystick{width:94px;height:94px;bottom:calc(75px + env(safe-area-inset-bottom))}.mobileGame .mobileJoystickKnob{left:calc(50% - 18px);top:calc(50% - 18px);width:36px;height:36px}.mobileGame .mobileActions{bottom:calc(132px + env(safe-area-inset-bottom));flex-direction:row}.mobileGame .mobileActions button{min-width:93px;min-height:42px}.mobileGame .mobileLookHint{display:none}.mobileGame .objective{max-height:70px;overflow:auto}.mobileGame .rightHud{top:42%}}
