
:root{--amber:#f0b33d;--ct:#58a6ff;--t:#ff6b57;--panel:rgba(7,11,14,.82)}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080a0c;color:#fff;font-family:Inter,Arial,sans-serif}
canvas{display:block}
#hud{position:fixed;inset:0;z-index:5;pointer-events:none;user-select:none}
#damage{position:absolute;inset:0;background:radial-gradient(circle,transparent 35%,rgba(190,0,0,0) 100%);transition:.08s}
#vignette{position:absolute;inset:0;background:radial-gradient(circle,transparent 50%,rgba(0,0,0,.33) 100%)}
#top{position:absolute;top:14px;left:50%;transform:translateX(-50%);display:flex;gap:15px;align-items:center;padding:9px 15px;border:1px solid #ffffff20;border-radius:9px;background:var(--panel);backdrop-filter:blur(6px);font-size:13px;font-weight:850;white-space:nowrap}
#top .ct{color:var(--ct)}#top .t{color:var(--t)}#timer{font-size:19px;min-width:58px;text-align:center}
#objective{position:absolute;left:50%;top:60px;transform:translateX(-50%);padding:6px 10px;border-radius:6px;background:#0007;font-size:12px;letter-spacing:.5px}
#leftHud{position:absolute;left:20px;bottom:20px;display:flex;gap:9px}
.card{background:var(--panel);border:1px solid #ffffff18;border-radius:9px;padding:9px 12px;min-width:96px}
.lab{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.58}.val{font-size:23px;font-weight:950;margin-top:1px}
#weaponHud{position:absolute;right:20px;bottom:20px;text-align:right;min-width:185px;background:var(--panel);border:1px solid #ffffff18;border-radius:9px;padding:9px 13px}
#weaponName{font-size:11px;opacity:.62;letter-spacing:1px}.ammo{font-size:31px;font-weight:950}.ammo small{font-size:15px;opacity:.62}
#slots{margin-top:5px;font-size:11px;opacity:.62}
#slots b{color:#fff;opacity:1}
#crosshair{--gap:5px;position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%)}
.ch{position:absolute;background:#fff;box-shadow:0 0 2px #000;border-radius:1px}
.ch.t{width:2px;height:7px;left:19px;top:calc(12px - var(--gap))}
.ch.b{width:2px;height:7px;left:19px;bottom:calc(12px - var(--gap))}
.ch.l{height:2px;width:7px;top:19px;left:calc(12px - var(--gap))}
.ch.r{height:2px;width:7px;top:19px;right:calc(12px - var(--gap))}
#hit{position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-50%);opacity:0}
#hit:before,#hit:after{content:"";position:absolute;left:14px;top:3px;width:2px;height:24px;background:#fff}
#hit:before{transform:rotate(45deg)}#hit:after{transform:rotate(-45deg)}
#killConfirm{position:absolute;left:50%;top:calc(50% + 35px);transform:translateX(-50%) scale(.88);font-size:10px;font-weight:950;letter-spacing:1.8px;color:#fff;text-shadow:0 2px 8px #000;opacity:0;transition:opacity .12s ease,transform .12s ease}
#killConfirm.show{opacity:1;transform:translateX(-50%) scale(1)}#killConfirm.head{color:#ffd36a}
#damageDirection{position:absolute;left:50%;top:50%;width:118px;height:118px;transform:translate(-50%,-50%) rotate(0deg);opacity:0;transition:opacity .08s ease;filter:drop-shadow(0 2px 5px #000)}
#damageDirection:before{content:"";position:absolute;left:50%;top:-8px;width:34px;height:5px;transform:translateX(-50%);border-radius:999px;background:linear-gradient(90deg,transparent,#ff4f47,transparent)}
#msg{position:absolute;left:50%;top:19%;transform:translateX(-50%);font-size:28px;font-weight:950;text-shadow:0 2px 8px #000;opacity:0;transition:.14s;text-align:center}
#feed{position:absolute;right:20px;top:115px;text-align:right;font-size:13px;line-height:1.7;text-shadow:0 2px 5px #000}
#usebar{position:absolute;left:50%;bottom:120px;transform:translateX(-50%);width:270px;height:9px;border:1px solid #ffffff35;background:#0008;border-radius:8px;overflow:hidden;display:none}
#usefill{height:100%;width:0;background:var(--amber)}
#usetext{position:absolute;left:50%;bottom:136px;transform:translateX(-50%);font-size:12px;text-shadow:0 2px 4px #000;display:none}
#hint{position:absolute;left:50%;bottom:93px;transform:translateX(-50%);font-size:11px;opacity:.55;background:#0006;padding:5px 9px;border-radius:5px}
#minimapWrap{position:absolute;right:20px;top:14px;width:175px;height:175px;background:rgba(6,10,12,.78);border:1px solid #ffffff22;border-radius:10px;padding:5px}
#minimap{width:100%;height:100%;border-radius:6px;background:#151a1d}
#bombStatus{position:absolute;right:20px;top:195px;background:var(--panel);border:1px solid #ffffff18;border-radius:8px;padding:7px 10px;font-size:12px;min-width:175px;text-align:center}
#start,#roundOver{position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,rgba(29,42,48,.94),rgba(5,7,9,.99))}
#roundOver{display:none;background:rgba(5,7,9,.78);pointer-events:none}
.panel{width:min(720px,93vw);background:rgba(13,19,23,.96);border:1px solid #ffffff20;border-radius:15px;padding:30px;box-shadow:0 35px 100px #000b}
h1{font-size:44px;line-height:.95;margin:0 0 10px;letter-spacing:-1.5px}h1 span{color:var(--amber)}
.sub{opacity:.7;line-height:1.5;margin-bottom:19px}
.teams{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.teamBtn{pointer-events:auto;border:1px solid #ffffff1d;border-radius:10px;padding:18px;background:#ffffff08;color:#fff;cursor:pointer;text-align:left}
.teamBtn:hover{background:#ffffff10}.teamBtn strong{display:block;font-size:22px;margin-bottom:4px}.teamBtn.ct strong{color:var(--ct)}.teamBtn.t strong{color:var(--t)}.teamBtn.spec strong{color:#d6dde3}
.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}
.key{font-size:12px;background:#ffffff0b;border-radius:7px;padding:8px 9px}
kbd{background:#20282d;border:1px solid #55616a;border-bottom-width:3px;border-radius:5px;padding:2px 6px;font-weight:800;margin-right:4px}
#loading{font-size:12px;opacity:.55;margin-top:10px;text-align:center}
#roundCard{font-size:38px;font-weight:950;text-align:center;text-shadow:0 3px 9px #000}
#roundSub{text-align:center;margin-top:8px;opacity:.72}

#aiOrder{position:absolute;left:50%;top:88px;transform:translateX(-50%);font-size:11px;font-weight:900;letter-spacing:1px;padding:5px 9px;border-radius:6px;background:rgba(7,11,14,.72);border:1px solid #ffffff17;color:#f0b33d}
#phaseBadge{padding:3px 7px;border-radius:5px;background:#ffffff0d;border:1px solid #ffffff12;font-size:10px;letter-spacing:.8px;color:#ddd}
#scoreboard{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(690px,88vw);background:rgba(5,8,10,.94);border:1px solid #ffffff28;border-radius:13px;padding:16px 18px;display:none;box-shadow:0 25px 80px #000b}
#scoreboard .sbTitle{text-align:center;font-size:17px;font-weight:950;letter-spacing:1px;margin-bottom:12px}
#scoreboard .sbCols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#scoreboard .sbTeam{border:1px solid #ffffff13;border-radius:9px;overflow:hidden;background:#ffffff06}
#scoreboard .sbHead{display:flex;justify-content:space-between;padding:9px 10px;font-weight:950}.sbHead.ct{color:var(--ct)}.sbHead.t{color:var(--t)}
#scoreboard .sbRow{display:grid;grid-template-columns:1fr 84px 60px;gap:6px;padding:7px 10px;border-top:1px solid #ffffff0c;font-size:12px}.sbRow.dead{opacity:.35}.sbRole{opacity:.58;text-align:right}.sbState{text-align:right;color:#f0b33d;font-size:10px;letter-spacing:.5px}
#timer.danger{color:#ff6b57;text-shadow:0 0 8px #ff6b5755}
#bombStatus.hot{color:#ffd65a;border-color:#ffd65a55;box-shadow:0 0 14px #ffd65a18}

#teamMenu{position:fixed;z-index:30;inset:0;display:none;align-items:center;justify-content:center;background:rgba(3,5,7,.82);backdrop-filter:blur(5px)}
#teamMenu .menuBox{width:min(650px,92vw);background:rgba(13,19,23,.98);border:1px solid #ffffff25;border-radius:14px;padding:24px;box-shadow:0 30px 90px #000c}
#teamMenu .menuTitle{text-align:center;font-size:24px;font-weight:950;margin-bottom:6px}
#teamMenu .menuSub{text-align:center;opacity:.62;font-size:12px;margin-bottom:16px}
#teamMenu .menuTeams{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
#teamMenu button{pointer-events:auto}
#teamMenu .closeTeam{margin-top:10px;background:#ffffff0d;color:#fff;border:1px solid #ffffff18}
#specModeBadge{position:absolute;left:20px;top:14px;padding:7px 10px;border-radius:7px;background:rgba(7,11,14,.82);border:1px solid #ffffff1c;font-size:11px;font-weight:900;letter-spacing:.8px;display:none}
@media(max-width:700px){.teams,#teamMenu .menuTeams{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr}}

.v5Row{display:flex;gap:10px;margin:12px 0}.miniBtn{pointer-events:auto;border:1px solid #ffffff20;background:#ffffff0d;color:#fff;border-radius:8px;padding:10px 13px;font-weight:900;cursor:pointer}.miniBtn:hover{background:#ffffff16}.miniBtn.full{width:100%;margin-top:14px}
.v5Overlay{position:fixed;z-index:60;inset:0;display:none;align-items:center;justify-content:center;background:rgba(3,5,7,.86);backdrop-filter:blur(6px);padding:14px}.v5Panel{width:min(470px,94vw);background:#10171b;border:1px solid #ffffff20;border-radius:14px;padding:22px;box-shadow:0 30px 90px #000c}.v5Panel.wide{width:min(680px,96vw)}.v5Panel h2{margin:0 0 14px}
.toggleRow{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#ffffff08;border-radius:8px;padding:11px 12px;margin:8px 0}.toggleRow input{width:22px;height:22px}.smallNote{font-size:12px;opacity:.65;line-height:1.45;margin:9px 0}
.mpGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mpGrid label{font-size:11px;opacity:.72}.mpGrid input,.mpButtons input{width:100%;margin-top:4px;border:1px solid #ffffff20;background:#070b0d;color:#fff;padding:10px;border-radius:7px}.mpButtons{display:grid;grid-template-columns:1fr 130px 1fr;gap:8px;margin:12px 0}.mpTeamButtons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.roomCode{font-size:18px;text-align:center;margin:10px}.roomCode b{color:#ffd65a;letter-spacing:3px}#mpStatus{font-size:12px;padding:8px;background:#0005;border-radius:6px}#mpPlayers{font-size:13px;line-height:1.8}
#mobileControls{display:none;position:absolute;inset:0;pointer-events:none;z-index:12}#lookPad{position:absolute;right:0;top:0;width:58%;height:100%;pointer-events:auto;touch-action:none}#movePad{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:125px;height:125px;border-radius:50%;border:2px solid #ffffff38;background:#ffffff0d;pointer-events:auto;touch-action:none}#moveKnob{position:absolute;left:36px;top:36px;width:50px;height:50px;border-radius:50%;background:#ffffff38;border:1px solid #ffffff55}
.mobBtn{position:absolute;pointer-events:auto;touch-action:none;border:1px solid #ffffff35;background:rgba(18,25,29,.68);color:#fff;border-radius:50%;width:68px;height:68px;font-size:10px;font-weight:950;backdrop-filter:blur(4px)}#mJump{right:22px;bottom:28px}#mCrouch{right:96px;bottom:30px}#mReload{right:24px;bottom:105px}#mUse{right:99px;bottom:108px;display:none;background:rgba(240,179,61,.72);color:#111}#mWeapon{right:22px;bottom:181px}#mGrenade{right:95px;bottom:185px}.mobBtn.small{width:48px;height:48px;border-radius:12px;top:max(15px,env(safe-area-inset-top))}#mScore{left:18px}#mMenu{left:74px}
body.mobile #hint{display:none}body.mobile #minimapWrap{width:125px;height:125px;right:10px;top:58px}body.mobile #bombStatus{right:10px;top:190px;min-width:125px;font-size:10px}body.mobile #top{top:8px;font-size:10px;gap:7px;padding:6px 8px}body.mobile #timer{font-size:15px;min-width:42px}body.mobile #objective{top:45px;font-size:10px}body.mobile #aiOrder{top:70px;font-size:9px}body.mobile #leftHud{left:10px;bottom:168px}.mobile .card{min-width:62px;padding:6px 8px}.mobile .lab{font-size:8px}.mobile .val{font-size:18px}body.mobile #weaponHud{right:8px;bottom:258px;min-width:120px;padding:6px 8px}.mobile #weaponName{font-size:9px}.mobile .ammo{font-size:22px}.mobile #slots{display:none}
@media(max-width:700px){.mpGrid,.mpButtons{grid-template-columns:1fr}.v5Row{display:grid;grid-template-columns:1fr 1fr}.v5Panel{max-height:92vh;overflow:auto}}

#mFire{right:174px;bottom:34px;width:78px;height:78px;background:rgba(155,54,44,.68);border-color:#ff8b7b66;font-size:12px}

:root{--mobile-scale:1;--app-w:100vw;--app-h:100dvh}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#080a0c}
canvas{display:block;width:100%!important;height:100%!important}
.sliderRow{display:block;background:#ffffff08;border-radius:8px;padding:11px 12px;margin:8px 0}.sliderRow span{display:flex;justify-content:space-between;margin-bottom:8px}.sliderRow input{width:100%}

@media (orientation:landscape){
 body.mobile{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:auto}
 body.mobile #hud{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden;touch-action:none}
 body.mobile #mobileControls{position:fixed;inset:0;width:100vw;height:100dvh}

 /* Compact top HUD: no more giant blocks over the play field */
 body.mobile #top{top:max(6px,env(safe-area-inset-top));left:50%;transform:translateX(-50%) scale(calc(.86 * var(--mobile-scale)));transform-origin:top center;white-space:nowrap}
 body.mobile #objective{top:48px;left:50%;transform:translateX(-50%) scale(calc(.82 * var(--mobile-scale)));transform-origin:top center;max-width:42vw}
 body.mobile #aiOrder{top:76px;left:50%;transform:translateX(-50%) scale(calc(.78 * var(--mobile-scale)));transform-origin:top center}

 /* Left stats become a small horizontal strip above joystick */
 body.mobile #leftHud{left:max(10px,env(safe-area-inset-left));bottom:calc(142px * var(--mobile-scale));display:flex;gap:5px;transform:scale(calc(.78 * var(--mobile-scale)));transform-origin:bottom left}
 body.mobile #leftHud .card{min-width:55px;padding:5px 7px}

 /* Right info no longer collides with buttons */
 body.mobile #minimapWrap{right:max(10px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));width:clamp(92px,15vw,126px);height:clamp(92px,15vw,126px)}
 body.mobile #weaponHud{right:max(10px,env(safe-area-inset-right));top:calc(max(8px,env(safe-area-inset-top)) + clamp(96px,15vw,128px));bottom:auto;min-width:96px;transform:scale(calc(.74 * var(--mobile-scale)));transform-origin:top right}
 body.mobile #bombStatus{right:max(10px,env(safe-area-inset-right));top:calc(max(8px,env(safe-area-inset-top)) + clamp(145px,22vw,184px));min-width:96px;max-width:126px;font-size:8px;transform:scale(calc(.82 * var(--mobile-scale)));transform-origin:top right}

 /* Smaller, ergonomic controls */
 body.mobile #movePad{left:max(18px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:clamp(96px,16vw,122px);height:clamp(96px,16vw,122px)}
 body.mobile #moveKnob{width:42%;height:42%;left:29%;top:29%}
 body.mobile .mobBtn{width:calc(50px * var(--mobile-scale));height:calc(50px * var(--mobile-scale));font-size:8px}
 body.mobile #mFire{
   right:calc(max(12px,env(safe-area-inset-right)) + 150px);
   bottom:calc(max(14px,env(safe-area-inset-bottom)) + 4px);
   width:calc(64px * var(--mobile-scale));height:calc(64px * var(--mobile-scale));
   font-size:11px
 }
 body.mobile #mJump{right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
 body.mobile #mCrouch{right:calc(max(12px,env(safe-area-inset-right)) + 74px);bottom:max(14px,env(safe-area-inset-bottom))}
 body.mobile #mReload{right:max(12px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 74px)}
 body.mobile #mUse{right:calc(max(12px,env(safe-area-inset-right)) + 74px);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 74px)}
 body.mobile #mWeapon{right:max(12px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 148px)}
 body.mobile #mGrenade{right:calc(max(12px,env(safe-area-inset-right)) + 74px);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 148px)}
 body.mobile .mobBtn.small{top:max(10px,env(safe-area-inset-top));width:44px;height:44px}
 body.mobile #mScore{left:max(10px,env(safe-area-inset-left))}
 body.mobile #mMenu{left:calc(max(10px,env(safe-area-inset-left)) + 50px)}

 /* Look area covers the whole free center, not just right half */
 body.mobile #lookPad{left:24%;right:0;top:0;width:auto;height:100%;z-index:0}
 body.mobile #movePad,body.mobile .mobBtn{z-index:2}
}

/* V7.4.10 mobile interaction, safe lanes and compact HUD regression pass. */
#roundOver{
 z-index:80;
 pointer-events:auto;
 touch-action:manipulation;
 overscroll-behavior:contain
}
#roundOver .roundResultBox{
 position:relative;z-index:1;pointer-events:auto;
 width:min(720px,92vw);max-height:92dvh;overflow:auto;
 padding:18px;border-radius:14px;
 touch-action:pan-y;
 -webkit-overflow-scrolling:touch;scrollbar-width:none
}
#roundOver .roundResultBox::-webkit-scrollbar{display:none}
#roundOver #mapVote,#roundOver #mapVoteButtons,
#roundOver .mapVoteBtn,#roundOver .mapVoteMenu{pointer-events:auto;touch-action:manipulation}
.mapVoteBtn,.mapVoteMenu{cursor:pointer;min-height:46px;-webkit-tap-highlight-color:rgba(240,179,61,.22)}
.mapVoteBtn.selected,.mapVoteBtn[aria-pressed="true"]{
 color:#111;background:#f0b33d;border-color:#ffd36a;
 box-shadow:0 0 0 3px rgba(240,179,61,.18),0 8px 24px rgba(0,0,0,.34)
}
body.match-result-open #mobileControls,
body.match-result-open #lookPad,
body.match-result-open #movePad,
body.match-result-open #mobileControls .mobBtn{pointer-events:none!important}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile #roundOver{
  padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))
 }
 body.mobile #roundOver .roundResultBox{width:min(700px,94vw);max-height:calc(100dvh - 16px);padding:12px 16px}
 body.mobile #roundCard{font-size:clamp(27px,5.5vw,48px)}
 body.mobile #mapVote{margin-top:10px;padding-top:9px}
 body.mobile #mapVoteTitle{font-size:clamp(13px,2.4vw,20px);margin-bottom:8px}
 body.mobile #mapVoteButtons{gap:7px}
 body.mobile .mapVoteBtn,body.mobile .mapVoteMenu{min-height:44px;padding:9px 11px;font-size:clamp(10px,1.8vw,14px)}
 body.mobile #mapVoteHint{margin:7px 0;font-size:10px}

 /* The movement pad and Sprint own separate, non-overlapping thumb targets. */
 body.mobile #movePad{
  left:max(18px,env(safe-area-inset-left))!important;
  bottom:max(30px,env(safe-area-inset-bottom))!important;
  width:108px!important;height:108px!important
 }
 body.mobile #mSprint{
  left:calc(max(18px,env(safe-area-inset-left)) + 134px)!important;
  bottom:max(38px,env(safe-area-inset-bottom))!important;
  width:78px!important;height:50px!important;
  border-radius:16px!important;font-size:9px!important
 }

 /* Mobile stats use explicit card geometry; no transformed desktop cluster. */
 body.mobile #leftHud{
  left:max(18px,env(safe-area-inset-left))!important;
  bottom:calc(max(30px,env(safe-area-inset-bottom)) + 116px)!important;
  display:flex!important;align-items:stretch!important;gap:6px!important;
  transform:none!important
 }
 body.mobile #leftHud .card{
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  width:64px!important;min-width:64px!important;height:52px!important;
  padding:6px 8px!important;border-radius:8px!important;
  box-shadow:0 6px 18px rgba(0,0,0,.24)!important
 }
 body.mobile #leftHud .lab{font-size:7px!important;line-height:1.05!important;letter-spacing:.75px!important}
 body.mobile #leftHud .val{font-size:18px!important;line-height:1.05!important;margin-top:3px!important}

 /* A centered lane below objective status keeps the feed away from score, C4 and minimap. */
 body.mobile #feed{
  left:50%!important;right:auto!important;top:max(76px,calc(env(safe-area-inset-top) + 70px))!important;
  width:min(360px,44vw)!important;max-height:66px!important;
  transform:translateX(-50%)!important;
  align-items:center!important;text-align:center!important;
  font-size:9px!important;line-height:1.2!important
 }
 body.mobile #feed>div{max-width:100%!important;margin:0 0 3px!important;padding:4px 7px!important}

 /* Small desktop-style weapon card, positioned in the clear rail left of the minimap. */
 body.mobile #weaponHud{
  display:block;
  right:calc(max(10px,env(safe-area-inset-right)) + clamp(104px,15vw,138px))!important;
  top:max(154px,calc(env(safe-area-inset-top) + 146px))!important;
  bottom:auto!important;transform:none!important;
  width:126px!important;min-width:126px!important;
  padding:7px 10px!important;border-radius:8px!important;
  text-align:right!important;box-shadow:0 7px 22px rgba(0,0,0,.26)!important
 }
 body.mobile #weaponName{
  display:block!important;min-height:12px!important;margin-bottom:3px!important;
  font-size:9px!important;line-height:1.15!important;letter-spacing:.9px!important
 }
 body.mobile #weaponHud .ammo{font-size:20px!important;line-height:1!important;white-space:nowrap!important}
 body.mobile #weaponHud .ammo small{font-size:11px!important}
 body.mobile #weaponHud #slots{display:none!important}
 body.mobile #leaveMatch{left:calc(max(10px,env(safe-area-inset-left)) + 150px)!important}
}

@media (pointer:coarse) and (orientation:landscape) and (max-width:870px){
 body.mobile #roundOver .roundResultBox{padding:9px 13px}
 body.mobile #roundOver #roundSub{font-size:11px;margin-top:4px}
 body.mobile #mapVoteButtons{grid-template-columns:repeat(2,minmax(118px,1fr))}
 body.mobile #weaponHud{width:118px!important;min-width:118px!important}
}

@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
 body.mobile #objective{top:42px} body.mobile #aiOrder{display:none}
 body.mobile #leftHud{bottom:112px;transform:scale(calc(.68 * var(--mobile-scale)))}
 body.mobile #movePad{width:94px;height:94px}
 body.mobile .mobBtn{width:44px;height:44px}
 body.mobile #mFire{width:58px;height:58px;right:138px}
 body.mobile #mJump{right:10px;bottom:10px}
 body.mobile #mCrouch{right:74px;bottom:10px}
 body.mobile #mReload{right:10px;bottom:74px}
 body.mobile #mUse{right:74px;bottom:74px}
 body.mobile #mWeapon{right:10px;bottom:138px}
 body.mobile #mGrenade{right:74px;bottom:138px}
 body.mobile #weaponHud{display:none}
}

/* ===== V5.2 MOBILE POLISH ===== */
.panelHeader{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px -4px 12px;padding:6px 4px 12px;background:linear-gradient(180deg,#10171b 76%,rgba(16,23,27,0));}
.panelHeader h2{margin:0!important;font-size:22px;letter-spacing:.5px}.panelSubtitle{font-size:11px;opacity:.55;margin-top:2px}
.panelClose{pointer-events:auto;width:42px;height:42px;flex:0 0 42px;border:1px solid #ffffff22;border-radius:12px;background:#ffffff0c;color:#fff;font-size:28px;line-height:36px;cursor:pointer}
.settingsSection{padding:10px 0 4px}.settingsSection+.settingsSection{border-top:1px solid #ffffff13;margin-top:8px}.settingsSectionTitle{font-size:10px;font-weight:950;letter-spacing:1.4px;color:#f0b33d;opacity:.9;margin:0 4px 7px}
.toggleRow span{display:flex;flex-direction:column;gap:2px}.toggleRow small{font-size:10px;font-weight:400;opacity:.5;line-height:1.3}
.stickyBottomButton{position:sticky;bottom:-1px;z-index:4;box-shadow:0 -12px 24px #10171b}
.scrollableOverlay{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.scrollableOverlay>.v5Panel{margin:auto}
.settingsPanelCard{scrollbar-width:thin;scrollbar-color:#ffffff35 transparent}
.settingsPanelCard::-webkit-scrollbar{width:5px}.settingsPanelCard::-webkit-scrollbar-thumb{background:#ffffff35;border-radius:5px}

/* Button feel */
body.mobile .mobBtn{transition:transform .07s ease,background .07s ease,border-color .07s ease,box-shadow .07s ease;box-shadow:0 5px 16px rgba(0,0,0,.22)}
body.mobile .mobBtn.isPressed{transform:scale(.88);background:rgba(240,179,61,.65);border-color:#ffd36a;box-shadow:0 0 0 3px rgba(240,179,61,.12)}
body.mobile #mFire.isPressed{background:rgba(205,73,61,.92)}
body.mobile #mSprint{background:rgba(45,105,135,.75);border-color:#6fc8f066;border-radius:18px;font-size:9px}
body.mobile #mSprint.isPressed{background:rgba(54,153,199,.92);box-shadow:0 0 16px rgba(75,187,238,.32)}
body.mobile #movePad.isPressed{border-color:#ffffff75;background:#ffffff18}
#crosshair.enemy .ch{background:#ff625b;box-shadow:0 0 5px #ff2d26}

/* A little more HUD depth without making it bigger */
body.mobile #top,body.mobile #weaponHud,body.mobile #bombStatus{box-shadow:0 8px 24px rgba(0,0,0,.20)}
body.mobile #minimapWrap{box-shadow:0 8px 24px rgba(0,0,0,.25),inset 0 0 0 1px rgba(255,255,255,.04)}

@media (pointer:coarse) and (orientation:landscape){
 /* Sprint stays next to movement thumb, separate from combat cluster */
 body.mobile #mSprint{
   left:calc(max(18px,env(safe-area-inset-left)) + clamp(104px,17vw,130px));
   bottom:max(22px,env(safe-area-inset-bottom));
   width:calc(64px * var(--mobile-scale));
   height:calc(44px * var(--mobile-scale))
 }
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
 body.mobile #mSprint{left:116px;bottom:22px;width:58px;height:40px}
 body.mobile .panelHeader{padding-bottom:8px;margin-bottom:6px}
 body.mobile .panelHeader h2{font-size:19px}
 body.mobile .settingsSectionTitle{margin-bottom:4px}
}

/* V5.3 persistent mobile toggle buttons */
body.mobile #mSprint.isToggled{
  background:rgba(52,165,216,.96)!important;
  border-color:#8bddff!important;
  color:#fff;
  box-shadow:0 0 0 3px rgba(83,193,240,.16),0 0 20px rgba(71,183,231,.42)!important;
}
body.mobile #mCrouch.isToggled{
  background:rgba(240,179,61,.93)!important;
  border-color:#ffd878!important;
  color:#111;
  box-shadow:0 0 0 3px rgba(240,179,61,.14),0 0 18px rgba(240,179,61,.34)!important;
}
body.mobile #mSprint.isToggled::after,
body.mobile #mCrouch.isToggled::after{
  content:"ON";
  display:block;
  font-size:7px;
  line-height:1;
  margin-top:2px;
  letter-spacing:.6px;
}


/* =========================================================
   V5.4 — MOBILE PWA / LANDSCAPE / SETTINGS SCROLL
   Desktop layout is intentionally untouched by these rules.
   ========================================================= */

.mobileSystemGate{
  display:none;
  position:fixed;
  inset:0;
  z-index:10000;
  align-items:center;
  justify-content:center;
  padding:
    max(18px,env(safe-area-inset-top))
    max(18px,env(safe-area-inset-right))
    max(18px,env(safe-area-inset-bottom))
    max(18px,env(safe-area-inset-left));
  background:radial-gradient(circle at 50% 35%,rgba(31,45,52,.98),rgba(5,8,10,.995));
  color:#fff;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}
.systemGateCard{
  width:min(460px,92vw);
  padding:26px 24px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(14,20,24,.98);
  box-shadow:0 28px 90px rgba(0,0,0,.65);
  text-align:center;
}
.systemGateCard h2{margin:8px 0 6px;font-size:25px;letter-spacing:.3px}
.systemGateCard p{margin:0 auto 18px;max-width:380px;line-height:1.45;opacity:.68;font-size:13px}
.rotatePhoneIcon{font-size:48px;color:#f0b33d;line-height:1}
.landscapeHint{display:inline-flex;align-items:center;justify-content:center;width:112px;height:58px;border:3px solid #ffffff75;border-radius:10px;font-size:0}
.installIcon{width:76px;height:76px;border-radius:17px;box-shadow:0 8px 24px #0008}
.installPrimary,.installSecondary,.installTertiary{
  pointer-events:auto;
  width:100%;
  min-height:48px;
  margin-top:9px;
  border-radius:10px;
  font-weight:950;
  font-size:13px;
  cursor:pointer;
}
.installPrimary{border:0;background:#f0b33d;color:#111}
.installSecondary{border:1px solid #ffffff28;background:#ffffff10;color:#fff}
.installTertiary{border:0;background:transparent;color:#ffffff86;font-weight:700}
.iosInstallSteps{
  margin-top:14px;
  padding:13px 14px;
  border-radius:10px;
  background:#ffffff0a;
  border:1px solid #ffffff14;
  text-align:left;
  font-size:12px;
  line-height:1.55;
}
.iosInstallSteps span{display:block;margin-top:5px}

/* Settings uses ONE dedicated scroll container instead of nested scrolling. */
.settingsPanelCard{
  display:flex!important;
  flex-direction:column;
  overflow:hidden!important;
}
.settingsPanelCard .panelHeader{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto;
  margin:0!important;
  padding:0 0 10px!important;
  background:#10171b!important;
}
.settingsScroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y!important;
  padding:0 3px 14px 0;
}
.settingsScroll .settingsSection,
.settingsScroll .toggleRow,
.settingsScroll .smallNote{
  touch-action:pan-y!important;
}
.settingsScroll .sliderRow{
  touch-action:pan-y!important;
}
.settingsScroll input[type="range"]{
  display:block;
  width:100%;
  min-width:0;
  margin:10px 0 4px;
  touch-action:pan-x!important;
}
.settingsScroll .sliderRow>span{
  width:100%;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0!important;
  white-space:normal;
}
.settingsScroll .sliderRow>span strong{
  flex:0 0 auto;
  color:#f0b33d;
}
.settingsScroll .toggleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.settingsScroll .toggleRow>span{min-width:0;flex:1}
.settingsScroll .toggleRow input{flex:0 0 auto}
.panelFooter{
  flex:0 0 auto;
  padding-top:9px;
  border-top:1px solid #ffffff12;
  background:#10171b;
}

/* Mobile-only rules */
@media (pointer:coarse){
  body.mobile .mobileSheetOverlay{
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    touch-action:pan-y!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left))!important;
  }
  body.mobile .mobileSheetOverlay .settingsPanelCard{
    width:min(560px,92vw)!important;
    height:min(520px,calc(100dvh - 18px))!important;
    max-height:calc(100dvh - 18px)!important;
    padding:14px 16px!important;
    touch-action:pan-y!important;
  }
  body.mobile .settingsScroll{
    touch-action:pan-y!important;
  }
}

/* Portrait is blocked on touch devices. */
@media (pointer:coarse) and (orientation:portrait){
  #orientationGate{display:flex!important}
  body.mobile #hud,
  body.mobile #start,
  body.mobile #teamMenu,
  body.mobile #settingsPanel,
  body.mobile #multiplayerPanel,
  body.mobile #roundOver{visibility:hidden!important}
}

/* In landscape the rotate gate disappears. */
@media (pointer:coarse) and (orientation:landscape){
  #orientationGate{display:none!important}
}


#orientationGate{z-index:10002}.installGate{z-index:10001}


/* =========================================================
   V6 ECONOMY / BUY MENU / ARSENAL
   ========================================================= */
#moneyHud{
 position:absolute;left:126px;top:14px;
 padding:8px 12px;border-radius:8px;
 background:rgba(8,13,16,.82);border:1px solid #ffffff1d;
 color:#65e17c;font-size:14px;font-weight:950;letter-spacing:.3px;
 box-shadow:0 6px 20px #0004
}
.buyOverlay{z-index:72!important}
.buyPanel{display:flex!important;flex-direction:column;width:min(760px,94vw)!important;max-height:min(650px,92dvh)!important;overflow:hidden!important}
.buyTop{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;background:#ffffff08;font-size:13px}
#buyBalance{color:#65e17c;font-size:18px}.buyTop #buyTimerText{color:#f0b33d;font-weight:900}
.buyScroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:7px 3px 10px 0}
.buyCategory{padding:10px 0}.buyCategory+.buyCategory{border-top:1px solid #ffffff12}
.buyCategory h3{font-size:10px;letter-spacing:1.3px;color:#f0b33d;margin:0 0 8px}
.buyGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.buyItem{pointer-events:auto;display:grid;grid-template-columns:1fr auto;grid-template-areas:"name price" "desc price";gap:2px 10px;text-align:left;border:1px solid #ffffff16;background:#ffffff08;color:#fff;border-radius:9px;padding:11px;cursor:pointer}
.buyItem:hover{background:#ffffff10;border-color:#ffffff2b}.buyItem:disabled{opacity:.35;cursor:not-allowed}
.buyItem b{grid-area:name;font-size:13px}.buyItem span{grid-area:desc;font-size:10px;opacity:.55}.buyItem em{grid-area:price;align-self:center;color:#65e17c;font-size:12px;font-style:normal;font-weight:900}
.buyItem.owned{border-color:#66c9ff66;box-shadow:inset 0 0 0 1px #66c9ff22}.buyItem.owned::after{content:"OWNED";font-size:8px;color:#70cfff;grid-column:1/-1;margin-top:3px}
.ownedLine{font-size:10px;opacity:.62;padding-top:7px}
#mBuy{left:124px!important;color:#65e17c!important}
body.mobile #mBuy{left:calc(max(10px,env(safe-area-inset-left)) + 100px)!important}
body.mobile #moneyHud{left:max(10px,env(safe-area-inset-left));top:61px;transform:scale(.76);transform-origin:top left;padding:6px 9px}
body.mobile .buyOverlay{align-items:center!important;justify-content:center!important;overflow:hidden!important;touch-action:pan-y!important}
body.mobile .buyPanel{width:min(700px,92vw)!important;height:min(500px,calc(100dvh - 14px))!important;max-height:calc(100dvh - 14px)!important;padding:13px 15px!important}
body.mobile .buyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
body.mobile .buyItem{padding:8px 9px}
body.mobile .buyCategory{padding:6px 0}
body.mobile .buyScroll{touch-action:pan-y!important}
body.mobile .buyPanel button,body.mobile .buyPanel input{touch-action:manipulation}

/* Move sprint clear of joystick — lower-left, but no overlap */
@media (pointer:coarse) and (orientation:landscape){
 body.mobile #mSprint{
   left:calc(max(18px,env(safe-area-inset-left)) + clamp(138px,21vw,165px))!important;
   bottom:max(18px,env(safe-area-inset-bottom))!important;
 }
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
 body.mobile #mSprint{left:132px!important;bottom:14px!important}
 body.mobile .buyPanel{height:calc(100dvh - 10px)!important}
 body.mobile .buyGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Knife HUD cue */
#weaponHud.knife .ammo{font-size:18px;opacity:.6}


/* =========================================================
   V6.1 MOBILE HUD / SPECTATOR / WEAPON NAME POLISH
   ========================================================= */
@media (pointer:coarse) and (orientation:landscape){
  body.mobile #feed{
    left:max(12px,env(safe-area-inset-left));
    right:auto;
    top:116px;
    width:min(180px,34vw);
    text-align:left;
    font-size:11px;
    line-height:1.45;
    pointer-events:none;
  }
  body.mobile #leftHud{
    left:max(10px,env(safe-area-inset-left));
    bottom:214px;
    gap:6px;
  }
  body.mobile #leftHud .card{
    min-width:72px;
    padding:8px 9px;
  }
  body.mobile #moneyHud{
    top:102px!important;
  }
  body.mobile #weaponHud{
    right:max(10px,env(safe-area-inset-right));
    top:144px;
    width:122px;
    min-width:122px;
    padding:8px 10px;
  }
  body.mobile #weaponName{
    font-size:11px;
    line-height:1.2;
  }
  body.mobile .ammo{
    font-size:19px;
    line-height:1;
  }
  body.mobile #bombStatus{
    right:max(10px,env(safe-area-inset-right));
    top:258px;
    min-width:122px;
    width:122px;
    padding:8px 8px;
    font-size:10px;
    line-height:1.25;
    white-space:normal;
  }
  body.mobile #mSpecPrev,
  body.mobile #mSpecNext,
  body.mobile #mSpecView{
    display:none;
    pointer-events:auto;
  }
  body.mobile #mSpecPrev{
    left:max(14px,env(safe-area-inset-left));
    bottom:max(16px,env(safe-area-inset-bottom));
    width:100px;
    height:48px;
    font-size:12px;
  }
  body.mobile #mSpecNext{
    left:calc(max(14px,env(safe-area-inset-left)) + 108px);
    bottom:max(16px,env(safe-area-inset-bottom));
    width:100px;
    height:48px;
    font-size:12px;
  }
  body.mobile #mSpecView{
    right:max(14px,env(safe-area-inset-right));
    bottom:max(16px,env(safe-area-inset-bottom));
    width:112px;
    height:48px;
    font-size:12px;
    background:rgba(65,85,110,.72);
    border-color:#a8c0ff50;
  }

  body.mobile.spectating-mobile #leftHud,
  body.mobile.spectating-mobile #weaponHud,
  body.mobile.spectating-mobile #bombStatus,
  body.mobile.spectating-mobile #hint,
  body.mobile.spectating-mobile #moneyHud,
  body.mobile.spectating-mobile #mFire,
  body.mobile.spectating-mobile #mSprint,
  body.mobile.spectating-mobile #mJump,
  body.mobile.spectating-mobile #mCrouch,
  body.mobile.spectating-mobile #mReload,
  body.mobile.spectating-mobile #mUse,
  body.mobile.spectating-mobile #mWeapon,
  body.mobile.spectating-mobile #mGrenade,
  body.mobile.spectating-mobile #mScore,
  body.mobile.spectating-mobile #mMenu,
  body.mobile.spectating-mobile #mBuy{
    display:none!important;
  }
  body.mobile.spectating-mobile #mSpecPrev,
  body.mobile.spectating-mobile #mSpecNext,
  body.mobile.spectating-mobile #mSpecView{
    display:flex!important;
  }
  body.mobile.spectating-mobile #spectator{
    display:block;
    top:74px;
    left:50%;
    transform:translateX(-50%);
    width:min(78vw,520px);
    font-size:12px;
    line-height:1.25;
    text-align:center;
    padding:10px 14px;
  }
}

/* Tight phones */
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
  body.mobile #leftHud{bottom:184px}
  body.mobile #weaponHud{top:134px;width:112px;min-width:112px}
  body.mobile #bombStatus{top:240px;width:112px;min-width:112px}
}


/* =========================================================
   V6.2 DROPS / PICKUPS / MOBILE BUY TABS / VIEWMODEL POLISH
   ========================================================= */
#pickupPrompt{
 position:absolute;left:50%;bottom:154px;transform:translateX(-50%);
 display:none;z-index:14;pointer-events:none;
 padding:8px 11px;border-radius:8px;
 background:rgba(5,8,10,.82);border:1px solid #ffffff22;
 font-size:11px;font-weight:900;letter-spacing:.35px;
 text-align:center;white-space:nowrap;box-shadow:0 7px 24px #0006
}
#pickupPrompt b{color:#6fe08b}

.buyTabs{
 display:flex;gap:6px;margin:8px 0 4px;overflow-x:auto;
 -webkit-overflow-scrolling:touch;scrollbar-width:none
}
.buyTabs::-webkit-scrollbar{display:none}
.buyTab{
 flex:0 0 auto;pointer-events:auto;border:1px solid #ffffff16;
 background:#ffffff08;color:#ffffffb0;border-radius:8px;
 padding:8px 10px;font-size:9px;font-weight:950;letter-spacing:.6px;
 cursor:pointer
}
.buyTab.active{background:#f0b33d;color:#111;border-color:#f0b33d}
.buyCategory.tabHidden{display:none!important}

.droppedWeaponLabel{
 pointer-events:none
}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile #pickupPrompt{
   bottom:92px;
   font-size:10px;
   max-width:46vw;
   white-space:normal;
 }
 body.mobile .buyTabs{
   position:sticky;top:0;z-index:3;background:#10171b;padding:3px 0 7px;
   margin:2px 0 4px
 }
 body.mobile .buyTab{padding:8px 11px;font-size:9px}
 body.mobile .buyCategory{padding-top:5px}
 body.mobile .buyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* A little more separation/depth in the viewmodel */
#hud{perspective:900px}


/* =========================================================
   V6.3 MOBILE POLISH / SPECTATE / BUY / START SCROLL
   ========================================================= */

/* Mobile start menu: no more clipped title/content in landscape. */
@media (pointer:coarse) and (orientation:landscape){
  body.mobile #start{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    touch-action:pan-y!important;
    padding:
      max(16px,env(safe-area-inset-top))
      max(14px,env(safe-area-inset-right))
      max(28px,env(safe-area-inset-bottom))
      max(14px,env(safe-area-inset-left))!important;
  }
  body.mobile #start>.panel{
    width:min(980px,92vw)!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0 auto 28px!important;
    transform:none!important;
  }

  /* Clean top-left information stack. */
  body.mobile #moneyHud{
    left:max(108px,env(safe-area-inset-left))!important;
    top:112px!important;
    transform:scale(.78)!important;
    transform-origin:top left!important;
  }
  body.mobile #feed{
    left:max(108px,env(safe-area-inset-left))!important;
    right:auto!important;
    top:156px!important;
    width:min(300px,36vw)!important;
    max-height:108px!important;
    overflow:hidden!important;
    text-align:left!important;
    font-size:10px!important;
    line-height:1.35!important;
  }
  body.mobile #feed>div{
    margin:0 0 3px;
    padding:3px 7px;
    border-radius:5px;
    background:rgba(7,10,12,.40);
    text-shadow:0 1px 3px #000;
  }

  /* HP/armor/kills stays clear of feed and joystick. */
  body.mobile #leftHud{
    left:max(108px,env(safe-area-inset-left))!important;
    bottom:196px!important;
    transform:scale(calc(.72 * var(--mobile-scale)))!important;
    transform-origin:bottom left!important;
  }

  /* C4 badge now lives immediately left of the minimap, nowhere near combat buttons. */
  body.mobile #bombStatus{
    right:calc(max(10px,env(safe-area-inset-right)) + clamp(132px,15vw,166px))!important;
    top:max(104px,env(safe-area-inset-top))!important;
    width:132px!important;
    min-width:132px!important;
    max-width:132px!important;
    padding:7px 9px!important;
    font-size:9px!important;
    line-height:1.25!important;
    text-align:center!important;
    transform:none!important;
  }

  /* Weapon HUD remains under minimap. */
  body.mobile #weaponHud{
    right:max(10px,env(safe-area-inset-right))!important;
    top:calc(max(8px,env(safe-area-inset-top)) + clamp(132px,15vw,164px))!important;
  }

  /* Buy category strip must never be clipped vertically. */
  body.mobile .buyTabs{
    position:relative!important;
    top:auto!important;
    flex:0 0 auto!important;
    align-items:center!important;
    min-height:44px!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    padding:4px 2px 7px!important;
    margin:4px 0 2px!important;
    background:#10171b!important;
  }
  body.mobile .buyTab{
    min-height:34px!important;
    line-height:1!important;
    padding:9px 12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  body.mobile .autoBuyRow{
    flex:0 0 auto;
  }

  /* Death / spectator HUD: ONLY score, minimap and three spectator buttons. */
  body.mobile.spectating-mobile #movePad,
  body.mobile.spectating-mobile #feed,
  body.mobile.spectating-mobile #objective,
  body.mobile.spectating-mobile #aiOrder,
  body.mobile.spectating-mobile #specModeBadge,
  body.mobile.spectating-mobile #spectator,
  body.mobile.spectating-mobile #pickupPrompt{
    display:none!important;
  }
  body.mobile.spectating-mobile #top,
  body.mobile.spectating-mobile #minimapWrap{
    display:block!important;
    visibility:visible!important;
  }
  body.mobile.spectating-mobile #mSpecPrev,
  body.mobile.spectating-mobile #mSpecNext,
  body.mobile.spectating-mobile #mSpecView{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  body.mobile.spectating-mobile #mSpecPrev{
    left:max(18px,env(safe-area-inset-left))!important;
    bottom:max(18px,env(safe-area-inset-bottom))!important;
    width:104px!important;height:48px!important;
  }
  body.mobile.spectating-mobile #mSpecNext{
    left:calc(max(18px,env(safe-area-inset-left)) + 114px)!important;
    bottom:max(18px,env(safe-area-inset-bottom))!important;
    width:104px!important;height:48px!important;
  }
  body.mobile.spectating-mobile #mSpecView{
    right:max(18px,env(safe-area-inset-right))!important;
    bottom:max(18px,env(safe-area-inset-bottom))!important;
    width:118px!important;height:48px!important;
  }
}

.autoBuyRow{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 10px;margin:2px 0 6px;border-radius:9px;
  background:#ffffff07;border:1px solid #ffffff10;
}
.autoBuyToggle{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:900;letter-spacing:.4px}
.autoBuyToggle input{width:20px;height:20px}
.autoBuyNow{
  pointer-events:auto;border:1px solid #65e17c55;background:#65e17c16;color:#75ed8d;
  border-radius:8px;padding:9px 12px;font-size:10px;font-weight:950;cursor:pointer
}
.autoBuyNow:disabled{opacity:.35;cursor:not-allowed}

/* The new FPS hands/gun view is intentionally slimmer than V6.2. */
body.mobile canvas{image-rendering:auto}


/* =========================================================
   V7 GRAPHICS / PERFORMANCE FOUNDATION
   ========================================================= */
.graphicsPresetRow{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:7px 0
}
.graphicsPresetBtn{
 pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
 min-height:58px;border:1px solid #ffffff18;border-radius:9px;background:#ffffff07;color:#fff;
 cursor:pointer;padding:7px 5px
}
.graphicsPresetBtn b{font-size:12px;letter-spacing:.5px}.graphicsPresetBtn small{font-size:8px;opacity:.48;margin-top:3px}
.graphicsPresetBtn.active{
 background:linear-gradient(180deg,rgba(240,179,61,.28),rgba(240,179,61,.12));
 border-color:#f0b33d;color:#ffd46c;box-shadow:inset 0 0 0 1px #f0b33d22
}
.graphicsStatus{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 margin:7px 0;padding:8px 10px;border-radius:8px;background:#ffffff06;
 font-size:10px
}
.graphicsStatus span{opacity:.55}.graphicsStatus b{color:#72e893;letter-spacing:.4px}
.selectRow{
 display:flex;align-items:center;justify-content:space-between;gap:14px;
 padding:9px 10px;margin:6px 0;border-radius:8px;background:#ffffff08
}
.selectRow>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.selectRow small{font-size:9px;opacity:.48;font-weight:400}
.selectRow select{
 pointer-events:auto;min-width:112px;background:#090e11;color:#fff;border:1px solid #ffffff22;
 border-radius:8px;padding:9px 10px;font-size:10px;font-weight:900
}

.performanceHud{
 position:fixed;z-index:45;left:50%;bottom:10px;transform:translateX(-50%);
 min-width:196px;max-width:310px;padding:6px 9px;border-radius:7px;
 background:rgba(5,8,10,.76);border:1px solid #ffffff18;color:#dce7eb;
 font:800 9px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
 pointer-events:none;text-align:left;box-shadow:0 5px 20px #0006;
 backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)
}
.performanceHud .perfBasic{display:flex;justify-content:center;gap:9px;white-space:nowrap}
.performanceHud .perfGood{color:#75ed8d}.performanceHud .perfWarn{color:#ffd36d}.performanceHud .perfBad{color:#ff796f}
.performanceHud .perfGrid{display:grid;grid-template-columns:auto auto;gap:2px 15px}
.performanceHud .perfGrid span:nth-child(odd){opacity:.55}.performanceHud .perfGrid span:nth-child(even){text-align:right;color:#fff}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile .graphicsPresetRow{grid-template-columns:repeat(4,minmax(72px,1fr));gap:6px}
 body.mobile .graphicsPresetBtn{min-height:52px}
 body.mobile .selectRow{padding:8px 9px}
 body.mobile .performanceHud{
   bottom:max(5px,env(safe-area-inset-bottom));
   min-width:174px;padding:5px 7px;font-size:8px;opacity:.88
 }
 body.mobile.spectating-mobile .performanceHud{display:none!important}
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
 body.mobile .graphicsPresetBtn{min-height:46px}
 body.mobile .graphicsPresetBtn small{display:none}
 body.mobile .performanceHud{bottom:4px}
}


/* V7.0.2: team selection must always be able to close the start screen. */
#start.gameStartedHidden,
body.mobile #start.gameStartedHidden{
  display:none!important;
}


/* =========================================================
   V7.0.3 COMBAT POLISH / HUD STABILITY
   ========================================================= */
@media (pointer:coarse) and (orientation:landscape){
  /* CS-like kill feed: top-right, immediately left of minimap. */
  body.mobile #feed{
    left:auto!important;
    right:calc(max(10px,env(safe-area-inset-right)) + clamp(104px,15vw,138px))!important;
    top:max(10px,env(safe-area-inset-top))!important;
    width:min(285px,34vw)!important;
    max-height:88px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    overflow:hidden!important;
    text-align:right!important;
    font-size:9px!important;
    line-height:1.2!important;
    pointer-events:none!important;
  }
  body.mobile #feed>div{
    width:max-content!important;
    max-width:100%!important;
    margin:0 0 3px!important;
    padding:4px 7px!important;
    border-radius:5px!important;
    background:rgba(7,10,12,.70)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* HP cluster gets its own quiet zone above the joystick. */
  body.mobile #leftHud{
    left:max(112px,env(safe-area-inset-left))!important;
    bottom:206px!important;
    transform:scale(calc(.68 * var(--mobile-scale)))!important;
    transform-origin:bottom left!important;
  }

  /* Tiny perf strip directly under minimap, weapon HUD moves below it. */
  body.mobile .performanceHud{
    left:auto!important;
    right:max(10px,env(safe-area-inset-right))!important;
    top:calc(max(8px,env(safe-area-inset-top)) + clamp(100px,15vw,134px))!important;
    bottom:auto!important;
    transform:none!important;
    min-width:clamp(92px,15vw,126px)!important;
    max-width:clamp(92px,15vw,126px)!important;
    box-sizing:border-box!important;
    padding:4px 5px!important;
    font-size:7px!important;
    text-align:center!important;
  }
  body.mobile .performanceHud .perfBasic{
    gap:4px!important;
    justify-content:center!important;
  }
  body.mobile #weaponHud{
    right:max(10px,env(safe-area-inset-right))!important;
    top:calc(max(8px,env(safe-area-inset-top)) + clamp(127px,19vw,164px))!important;
  }

  /* C4 remains left of minimap, beneath the kill feed lane. */
  body.mobile #bombStatus{
    right:calc(max(10px,env(safe-area-inset-right)) + clamp(104px,15vw,138px))!important;
    top:max(105px,env(safe-area-inset-top))!important;
    width:132px!important;
  }
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
  body.mobile #feed{max-height:72px!important;width:min(245px,32vw)!important}
  body.mobile #leftHud{bottom:180px!important}
  body.mobile .performanceHud{font-size:6.5px!important}
}


/* =========================================================
   V7.0.4 SPECTATOR HUD / SCORE STRIP
   ========================================================= */
@media (pointer:coarse) and (orientation:landscape){
  body.mobile #top{
    gap:9px!important;
    padding:7px 11px!important;
    min-width:278px!important;
    justify-content:center!important;
    box-sizing:border-box!important;
  }
  body.mobile #ctAlive,
  body.mobile #tAlive{
    display:inline-block!important;
    min-width:16px!important;
    text-align:center!important;
  }
  body.mobile #timer{
    min-width:50px!important;
    text-align:center!important;
  }
  body.mobile #phaseBadge{
    display:inline-block!important;
    min-width:46px!important;
    padding:4px 8px!important;
    text-align:center!important;
    box-sizing:border-box!important;
    margin:0 1px!important;
  }

  /* Keep CS-style kill feed alive while spectating/dead. */
  body.mobile.spectating-mobile #feed{
    display:flex!important;
    visibility:visible!important;
    left:auto!important;
    right:calc(max(10px,env(safe-area-inset-right)) + clamp(104px,15vw,138px))!important;
    top:max(10px,env(safe-area-inset-top))!important;
    width:min(285px,34vw)!important;
    max-height:88px!important;
  }
}


/* =========================================================
   V7.1 SPECTATOR / KILL FEED / DEFUSE KIT
   ========================================================= */
#feed .feedName{font-weight:950}
#feed .feedName.ct{color:#63adff}
#feed .feedName.t{color:#ff7668}
#feed .feedVerb{opacity:.66;margin:0 4px}
#feed .feedHead{color:#ffd35a;font-weight:950;margin-right:4px}
#feed .feedReward{color:#75ed8d;margin-left:5px;font-weight:900}

.spectatorAction{
 position:absolute;z-index:24;left:50%;top:94px;transform:translateX(-50%);
 width:min(330px,55vw);padding:8px 10px;border-radius:8px;
 background:rgba(5,8,10,.84);border:1px solid #ffffff20;
 pointer-events:none;box-shadow:0 8px 25px #0007
}
.specActionTop{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;font-weight:950;letter-spacing:.4px}
.specActionBar{height:6px;margin-top:6px;border-radius:999px;background:#ffffff12;overflow:hidden}
.specActionBar i{display:block;width:0%;height:100%;background:#f0b33d;transition:width .08s linear}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile #mSpecExit{
   display:none;right:max(18px,env(safe-area-inset-right));top:max(86px,env(safe-area-inset-top));
   width:118px;height:42px;font-size:10px;background:rgba(105,62,62,.78);border-color:#ff8a7a55
 }
 body.mobile.spectating-mobile.permanent-spectator #mSpecExit{display:flex!important;align-items:center;justify-content:center}
 body.mobile.spectating-mobile #spectatorAction{
   display:none;
   top:74px;width:min(330px,48vw);padding:7px 9px
 }
 body.mobile.spectating-mobile #spectatorAction.active{display:block!important}
}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile #mSpecExit{
   left:max(18px,env(safe-area-inset-left))!important;
   right:auto!important;
   top:max(18px,env(safe-area-inset-top))!important;
 }
}


/* =========================================================
   V7.2 OFFLINE PWA / TRUE MAIN MENU
   ========================================================= */
.offlineStatus{
 display:flex;align-items:center;justify-content:center;gap:9px;
 margin:10px 0 2px;padding:8px 10px;border-radius:8px;
 border:1px solid #ffffff18;background:#ffffff07;
 font-size:10px;font-weight:800
}
.offlineStatus b{letter-spacing:.5px}
.offlineStatus span{opacity:.72}
.offlineStatus.ready{border-color:#63df7c55;background:#63df7c12;color:#7bed91}
.offlineStatus.offline{border-color:#f0b33d55;background:#f0b33d12;color:#ffd16b}
.offlineStatus.error{border-color:#ff746655;background:#ff746612;color:#ff8f83}

.startOfflineBadge{
 display:inline-flex;align-items:center;justify-content:center;
 min-height:38px;padding:0 12px;border-radius:8px;
 border:1px solid #ffffff18;background:#ffffff06;color:#aab5ba;
 font-size:9px;font-weight:950;letter-spacing:.5px
}
.startOfflineBadge.ready{border-color:#63df7c55;color:#79eb8d;background:#63df7c10}
.startOfflineBadge.offline{border-color:#f0b33d55;color:#ffd16b;background:#f0b33d10}

.teamMenuActions{align-items:stretch!important;flex-wrap:wrap}
.dangerMenuBtn{
 display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
 border-color:#ff746644!important;background:#ff746611!important;color:#ff9b90!important;
 min-width:150px!important
}
.dangerMenuBtn strong{font-size:11px;letter-spacing:.6px}
.dangerMenuBtn span{font-size:8px;opacity:.62;margin-top:2px}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile .teamMenuActions{display:grid!important;grid-template-columns:1fr 1.2fr 1.4fr!important;gap:7px!important}
 body.mobile .dangerMenuBtn{min-width:0!important;min-height:50px!important}
 body.mobile .startOfflineBadge{min-height:34px;font-size:8px}
}


/* =========================================================
   V7.3 MATCH SETTINGS / FLASH / SMOKE
   ========================================================= */
.matchSettingsGrid{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:6px 0 8px
}
.compactSetting{
 display:flex;align-items:center;justify-content:space-between;gap:10px;
 background:#ffffff07;border:1px solid #ffffff0d;border-radius:8px;padding:8px 9px
}
.compactSetting>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.compactSetting small{font-size:8px;opacity:.48;font-weight:400}
.compactSetting select{
 pointer-events:auto;min-width:88px;background:#090e11;color:#fff;border:1px solid #ffffff22;
 border-radius:7px;padding:8px 7px;font-size:9px;font-weight:900
}
#flashOverlay{
 display:block;position:fixed;z-index:90;inset:0;background:#fff;opacity:0;
 pointer-events:none;transition:opacity .08s linear
}
@media (pointer:coarse) and (orientation:landscape){
 body.mobile .matchSettingsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 body.mobile .compactSetting{padding:7px 8px}
 body.mobile .compactSetting select{min-width:80px;padding:7px 6px}
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:430px){
 body.mobile .matchSettingsGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.mobile .compactSetting small{display:none}
}

/* V7.4 map winner selection */
#mapVote{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.15)}
#mapVoteTitle{font-weight:900;letter-spacing:.08em;margin-bottom:10px}
#mapVoteButtons{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px}
.mapVoteBtn,.mapVoteMenu{border:1px solid rgba(255,255,255,.22);background:#20272a;color:#fff;border-radius:12px;padding:11px 13px;font-weight:800}
.mapVoteBtn:disabled{opacity:.38}
.mapVoteBtn:not(:disabled):active,.mapVoteMenu:active{transform:scale(.98)}
#mapVoteHint{font-size:12px;opacity:.72;margin:10px 0}
.mapVoteMenu{width:100%;margin-top:3px}


/* =========================================================
   V7.4.2 VIEWMODEL / VISUAL STABILITY / IOS HAPTIC BRIDGE
   ========================================================= */
.iosHapticBridge{
 position:fixed!important;left:-24px!important;top:-24px!important;width:2px!important;height:2px!important;
 opacity:.001!important;pointer-events:none!important;z-index:-1!important;appearance:auto!important
}


/* =========================================================
   V7.4.5 PLAYER IDENTITY / KILL FEED ICONS
   ========================================================= */
.playerIdentity{
 display:grid;grid-template-columns:auto minmax(140px,260px);align-items:center;
 gap:6px 10px;margin:12px 0 4px;padding:10px 12px;border-radius:9px;
 background:#ffffff06;border:1px solid #ffffff12
}
.playerIdentity label{font-size:9px;font-weight:950;letter-spacing:.8px;color:#aebbc0}
.playerIdentity input{
 width:100%;box-sizing:border-box;background:#080d10;color:#fff;border:1px solid #ffffff20;
 border-radius:7px;padding:9px 10px;font-size:12px;font-weight:850;outline:none
}
.playerIdentity input:focus{border-color:#63adff88;box-shadow:0 0 0 2px #63adff18}
.playerIdentity small{grid-column:1/-1;font-size:8px;opacity:.48}
#feed .feedName.self{color:#65ee84!important;text-shadow:0 0 8px #4fe87444}
#feed .feedWeapon{
 display:inline-flex;align-items:center;justify-content:center;
 min-width:20px;margin:0 5px;font-size:13px;line-height:1;filter:drop-shadow(0 1px 2px #0008)
}
#feed .feedWeapon.rifle{font-size:11px;font-weight:950;letter-spacing:-2px}
@media (pointer:coarse) and (orientation:landscape){
 body.mobile .playerIdentity{padding:7px 9px;margin:7px 0 2px;grid-template-columns:auto minmax(120px,220px)}
 body.mobile .playerIdentity input{padding:7px 8px;font-size:10px}
 body.mobile .playerIdentity small{display:none}
}


/* =========================================================
   V7.4.7 DESKTOP UI / HUD CONSOLIDATION
   Kept behind body:not(.mobile) so the approved phone UI is unchanged.
   ========================================================= */
body:not(.mobile) #top{
 top:16px;gap:12px;min-height:46px;padding:8px 14px;
 border-color:#ffffff28;background:rgba(7,11,14,.88);
 box-shadow:0 8px 28px #0005
}
body:not(.mobile) #objective{
 top:68px;max-width:min(520px,42vw);padding:6px 11px;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 background:rgba(7,11,14,.76);border:1px solid #ffffff16;
 font-size:11px;font-weight:800;box-shadow:0 5px 18px #0004
}
body:not(.mobile) #aiOrder{
 top:99px;max-width:min(460px,38vw);padding:4px 9px;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 background:rgba(7,11,14,.62);font-size:9px
}

/* Left information rail. Performance data no longer occupies the aim/viewmodel lane. */
body:not(.mobile) #moneyHud{left:18px;top:16px;padding:7px 11px}
body:not(.mobile) .performanceHud{
 left:18px;top:60px;bottom:auto;transform:none;
 min-width:172px;max-width:270px;padding:5px 8px;
 font-size:8px;text-align:left
}
body:not(.mobile) .performanceHud .perfBasic{justify-content:flex-start;gap:7px}
body:not(.mobile) #specModeBadge{left:18px;top:98px}

/* Right information rail. Kill feed is explicitly left of the minimap. */
body:not(.mobile) #minimapWrap{
 right:18px;top:16px;width:166px;height:166px;
 box-shadow:0 10px 30px #0006,inset 0 0 0 1px #ffffff08
}
body:not(.mobile) #bombStatus{
 right:18px;top:190px;min-width:166px;max-width:166px;
 padding:7px 9px;font-size:10px;box-shadow:0 7px 22px #0005
}
body:not(.mobile) #feed{
 right:202px;top:72px;width:min(360px,28vw);max-height:132px;
 display:flex;flex-direction:column;align-items:flex-end;overflow:hidden;
 font-size:11px;line-height:1.25;text-align:right;pointer-events:none
}
body:not(.mobile) #feed>div{
 width:max-content;max-width:100%;margin:0 0 4px;padding:5px 8px;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 border:1px solid #ffffff10;border-radius:6px;
 background:rgba(5,8,10,.76);box-shadow:0 4px 14px #0004
}

/* Quiet, balanced lower rail. Desktop controls remain documented on the start screen. */
body:not(.mobile) #hint{display:none}
body:not(.mobile) #leftHud{left:18px;bottom:18px;gap:7px}
body:not(.mobile) #leftHud .card{
 min-width:82px;padding:7px 10px;border-radius:8px;
 box-shadow:0 7px 22px #0005
}
body:not(.mobile) #leftHud .lab{font-size:8px}
body:not(.mobile) #leftHud .val{font-size:21px}
body:not(.mobile) #weaponHud{
 right:18px;bottom:18px;min-width:194px;padding:8px 11px;
 border-radius:8px;box-shadow:0 7px 22px #0005
}
body:not(.mobile) #weaponName{font-size:10px}
body:not(.mobile) .ammo{font-size:28px}
body:not(.mobile) #slots{font-size:9px}
body:not(.mobile) #pickupPrompt{bottom:112px}
body:not(.mobile) #usetext{bottom:120px}
body:not(.mobile) #usebar{bottom:104px}
body:not(.mobile) .spectatorAction{top:130px}

/* Desktop start screen and modal system. */
body:not(.mobile) #start>.panel{
 width:min(780px,calc(100vw - 64px));padding:30px 32px;
 border-color:#ffffff26;background:linear-gradient(145deg,rgba(16,23,27,.98),rgba(9,14,17,.98));
 box-shadow:0 34px 110px #000d
}
body:not(.mobile) #start h1{font-size:46px}
body:not(.mobile) #start .sub{margin-bottom:16px}
body:not(.mobile) .teamBtn{transition:background .15s ease,border-color .15s ease,transform .15s ease}
body:not(.mobile) .teamBtn:hover{border-color:#ffffff32;transform:translateY(-1px)}
body:not(.mobile) .v5Overlay{padding:28px}
body:not(.mobile) .v5Panel{
 border-color:#ffffff27;background:rgba(14,21,25,.98);
 box-shadow:0 32px 100px #000c
}
body:not(.mobile) .settingsPanelCard{
 width:min(760px,calc(100vw - 64px));height:min(720px,calc(100vh - 64px));
 max-height:calc(100vh - 64px);padding:24px 26px
}
body:not(.mobile) .settingsScroll{padding-right:10px}
body:not(.mobile) .settingsPanelCard .panelHeader{padding-bottom:14px!important}
body:not(.mobile) .settingsSection{padding:13px 0 7px}
body:not(.mobile) .settingsSectionTitle{font-size:11px;margin-bottom:9px}
body:not(.mobile) .settingsScroll label:has(#setHudScale),
body:not(.mobile) .settingsScroll label:has(#setAutoShoot),
body:not(.mobile) .settingsScroll label:has(#setHaptic){display:none}
body:not(.mobile) .buyPanel{
 width:min(860px,calc(100vw - 64px))!important;
 max-height:calc(100vh - 64px)!important;padding:24px 26px!important
}
body:not(.mobile) .buyGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
body:not(.mobile) #multiplayerPanel>.v5Panel{
 width:min(740px,calc(100vw - 64px));padding:26px 28px
}
body:not(.mobile) #teamMenu .menuBox{
 width:min(760px,calc(100vw - 64px));padding:26px 28px;
 border-color:#ffffff27;box-shadow:0 32px 100px #000c
}
body:not(.mobile) .teamMenuActions{
 display:grid!important;grid-template-columns:1fr 1fr 1.25fr;gap:10px
}
body:not(.mobile) .teamMenuActions>*{width:100%;min-width:0!important;margin-top:0!important}
body:not(.mobile) #scoreboard{
 width:min(760px,calc(100vw - 64px));padding:18px 20px;
 border-color:#ffffff32;box-shadow:0 28px 95px #000d
}

/* Common 720p/768p desktop and laptop displays. */
@media (max-height:780px) and (min-width:701px){
 body:not(.mobile) #start>.panel{padding:22px 26px}
 body:not(.mobile) #start h1{font-size:38px}
 body:not(.mobile) #start .sub{margin-bottom:10px}
 body:not(.mobile) #start .playerIdentity{margin:8px 0 3px;padding:8px 10px}
 body:not(.mobile) #start .v5Row{margin:9px 0}
 body:not(.mobile) #start .teams{margin:12px 0;gap:9px}
 body:not(.mobile) #start .teamBtn{padding:13px}
 body:not(.mobile) #start .teamBtn strong{font-size:19px}
 body:not(.mobile) #start .controls{margin-top:12px;gap:6px}
 body:not(.mobile) #start .key{padding:6px 8px;font-size:10px}
 body:not(.mobile) #start #loading{margin-top:7px;font-size:10px}
 body:not(.mobile) #minimapWrap{width:154px;height:154px}
 body:not(.mobile) #bombStatus{top:178px;min-width:154px;max-width:154px}
 body:not(.mobile) #feed{right:190px;top:68px;width:min(330px,27vw);max-height:112px;font-size:10px}
 body:not(.mobile) #objective{top:64px}
 body:not(.mobile) #aiOrder{top:93px}
 body:not(.mobile) .settingsPanelCard,
 body:not(.mobile) .buyPanel{max-height:calc(100vh - 32px)!important;height:calc(100vh - 32px)}
}

/* Compact desktop fallback: preserve all HUD lanes without touching touch layouts. */
@media (max-width:1180px) and (min-width:701px){
 body:not(.mobile) #feed{right:184px;width:300px;font-size:9px}
 body:not(.mobile) #minimapWrap{right:14px;width:154px;height:154px}
 body:not(.mobile) #bombStatus{right:14px;top:178px;min-width:154px;max-width:154px}
 body:not(.mobile) #top{gap:8px;font-size:11px}
 body:not(.mobile) #timer{font-size:17px}
 body:not(.mobile) #objective{max-width:36vw}
 body:not(.mobile) #aiOrder{max-width:34vw}
body:not(.mobile) .buyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V7.4.9 baseline: clean menu, in-match exit and complete spectator controls. */
body.main-menu{background:radial-gradient(circle at 50% 35%,#1b2930 0,#0b1115 48%,#050709 100%)}
body.main-menu>canvas,body.main-menu #hud{display:none!important}
body.main-menu #start{background:radial-gradient(circle at 50% 38%,#24363f 0,#0c1317 52%,#050709 100%)}
#loading:empty{display:none}
#leaveMatch{
 position:absolute;left:18px;top:16px;z-index:18;pointer-events:auto;
 border:1px solid #ff8b7b55;background:rgba(38,12,10,.76);color:#ffd4ce;
 border-radius:7px;padding:7px 10px;font-size:10px;font-weight:950;letter-spacing:.8px;cursor:pointer
}
#leaveMatch:hover{background:rgba(102,26,20,.84);border-color:#ff8b7b99}
#desktopSpectatorControls{
 display:none;position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:19;
 align-items:center;gap:7px;padding:8px;border:1px solid #ffffff24;border-radius:10px;background:rgba(6,10,13,.88);pointer-events:auto
}
#desktopSpectatorControls button{border:1px solid #ffffff25;background:#ffffff0d;color:#fff;border-radius:7px;padding:8px 11px;font-size:10px;font-weight:900;cursor:pointer}
#desktopSpectatorControls span{font-size:9px;opacity:.62;padding:0 5px;white-space:nowrap}
#mpHostSettings{margin-top:12px;padding:12px;border:1px solid #ffffff16;border-radius:10px;background:#ffffff05}
#multiplayerPanel>.v5Panel{max-height:92vh;overflow:auto}
.mpMatchSettings{margin:8px 0}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile #desktopSpectatorControls{display:none!important}
 body.mobile #leaveMatch{left:calc(max(10px,env(safe-area-inset-left)) + 112px);top:max(10px,env(safe-area-inset-top));padding:6px 8px;font-size:8px}
 body.mobile.spectating-mobile #mScore{
  display:flex!important;align-items:center!important;justify-content:center!important;
  left:max(10px,env(safe-area-inset-left))!important;top:max(10px,env(safe-area-inset-top))!important
 }
 body.mobile.spectating-mobile #leaveMatch{left:calc(max(10px,env(safe-area-inset-left)) + 58px)}
}

/* Final mobile cascade guard: these layout contracts supersede legacy phase overrides above. */
@media (pointer:coarse) and (orientation:landscape){
 body.mobile #movePad{
  left:max(18px,env(safe-area-inset-left))!important;bottom:max(30px,env(safe-area-inset-bottom))!important;
  width:108px!important;height:108px!important
 }
 body.mobile #mSprint{
  left:calc(max(18px,env(safe-area-inset-left)) + 134px)!important;bottom:max(38px,env(safe-area-inset-bottom))!important;
  width:78px!important;height:50px!important;border-radius:16px!important;font-size:9px!important
 }
 body.mobile #leftHud{
  left:max(18px,env(safe-area-inset-left))!important;
  bottom:calc(max(30px,env(safe-area-inset-bottom)) + 116px)!important;
  display:flex!important;align-items:stretch!important;gap:6px!important;transform:none!important
 }
 body.mobile #leftHud .card{
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  width:64px!important;min-width:64px!important;height:52px!important;padding:6px 8px!important;border-radius:8px!important
 }
 body.mobile #leftHud .lab{font-size:7px!important;line-height:1.05!important;letter-spacing:.75px!important}
 body.mobile #leftHud .val{font-size:18px!important;line-height:1.05!important;margin-top:3px!important}
 body.mobile #feed{
  left:50%!important;right:auto!important;top:max(76px,calc(env(safe-area-inset-top) + 70px))!important;
  width:min(360px,44vw)!important;max-height:66px!important;transform:translateX(-50%)!important;
  align-items:center!important;text-align:center!important;font-size:9px!important;line-height:1.2!important
 }
 body.mobile #weaponHud{
  display:block!important;
  right:calc(max(10px,env(safe-area-inset-right)) + clamp(104px,15vw,138px))!important;
  top:max(154px,calc(env(safe-area-inset-top) + 146px))!important;bottom:auto!important;transform:none!important;
  width:126px!important;min-width:126px!important;padding:7px 10px!important;border-radius:8px!important
 }
 body.mobile #weaponName{display:block!important;min-height:12px!important;margin-bottom:3px!important;font-size:9px!important;line-height:1.15!important}
 body.mobile #weaponHud .ammo{font-size:20px!important;line-height:1!important;white-space:nowrap!important}
 body.mobile #weaponHud .ammo small{font-size:11px!important}
 body.mobile #weaponHud #slots{display:none!important}
}
@media (pointer:coarse) and (orientation:landscape) and (max-width:870px){
 body.mobile #weaponHud{width:118px!important;min-width:118px!important}
}

/* Localhost-only mobileqa mirrors coarse-pointer geometry inside the responsive iframe harness. */
html.mobile-qa body.mobile{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden;touch-action:auto}
html.mobile-qa body.mobile #hud,html.mobile-qa body.mobile #mobileControls{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden}
html.mobile-qa body.mobile #top{top:6px;transform:translateX(-50%) scale(.86);transform-origin:top center;gap:9px!important;padding:7px 11px!important;min-width:278px!important;justify-content:center!important}
html.mobile-qa body.mobile #objective{top:42px;transform:translateX(-50%) scale(.82);transform-origin:top center;max-width:42vw}
html.mobile-qa body.mobile #aiOrder{display:none}
html.mobile-qa body.mobile #minimapWrap{right:10px;top:8px;width:clamp(92px,15vw,126px);height:clamp(92px,15vw,126px)}
html.mobile-qa body.mobile .performanceHud{left:auto!important;right:10px!important;top:calc(8px + clamp(100px,15vw,134px))!important;bottom:auto!important;transform:none!important;min-width:clamp(92px,15vw,126px)!important;max-width:clamp(92px,15vw,126px)!important;font-size:6.5px!important}
html.mobile-qa body.mobile #bombStatus{right:calc(10px + clamp(104px,15vw,138px))!important;top:105px!important;width:132px!important;min-width:132px!important;max-width:132px!important;font-size:9px!important;transform:none!important}
html.mobile-qa body.mobile #lookPad{left:24%;right:0;top:0;width:auto;height:100%;z-index:0}
html.mobile-qa body.mobile #movePad{left:18px!important;bottom:30px!important;width:108px!important;height:108px!important;z-index:2}
html.mobile-qa body.mobile .mobBtn{width:44px;height:44px;font-size:8px;z-index:2}
html.mobile-qa body.mobile #mFire{right:138px;bottom:14px;width:58px;height:58px;font-size:11px}
html.mobile-qa body.mobile #mJump{right:10px;bottom:10px}
html.mobile-qa body.mobile #mCrouch{right:74px;bottom:10px}
html.mobile-qa body.mobile #mReload{right:10px;bottom:74px}
html.mobile-qa body.mobile #mUse{right:74px;bottom:74px}
html.mobile-qa body.mobile #mWeapon{right:10px;bottom:138px}
html.mobile-qa body.mobile #mGrenade{right:74px;bottom:138px}
html.mobile-qa body.mobile .mobBtn.small{top:10px;width:44px;height:44px}
html.mobile-qa body.mobile #mScore{left:10px}
html.mobile-qa body.mobile #mMenu{left:60px}
html.mobile-qa body.mobile #mBuy{left:110px!important}
html.mobile-qa body.mobile #leaveMatch{left:160px;top:10px;padding:6px 8px;font-size:8px}
html.mobile-qa body.mobile #mSprint{left:152px!important;bottom:38px!important;width:78px!important;height:50px!important;border-radius:16px!important}
html.mobile-qa body.mobile #leftHud{left:18px!important;bottom:146px!important;display:flex!important;align-items:stretch!important;gap:6px!important;transform:none!important}
html.mobile-qa body.mobile #leftHud .card{display:flex!important;flex-direction:column!important;justify-content:center!important;width:64px!important;min-width:64px!important;height:52px!important;padding:6px 8px!important;border-radius:8px!important}
html.mobile-qa body.mobile #leftHud .lab{font-size:7px!important;line-height:1.05!important}
html.mobile-qa body.mobile #leftHud .val{font-size:18px!important;line-height:1.05!important;margin-top:3px!important}
html.mobile-qa body.mobile #feed{left:50%!important;right:auto!important;top:76px!important;width:min(360px,44vw)!important;max-height:66px!important;transform:translateX(-50%)!important;align-items:center!important;text-align:center!important;font-size:9px!important}
html.mobile-qa body.mobile #weaponHud{display:block!important;right:calc(10px + clamp(104px,15vw,138px))!important;top:154px!important;bottom:auto!important;transform:none!important;width:118px!important;min-width:118px!important;padding:7px 10px!important}
html.mobile-qa body.mobile #weaponName{font-size:9px!important;line-height:1.15!important}
html.mobile-qa body.mobile #weaponHud .ammo{font-size:20px!important;line-height:1!important}

/* V7.4.11 spectator balance and safe secondary-navigation lane. */
@media (pointer:coarse) and (orientation:landscape){
 body.mobile #mBuy{left:calc(max(10px,env(safe-area-inset-left)) + 100px)!important}
 body.mobile #leaveMatch{
  left:calc(max(10px,env(safe-area-inset-left)) + 150px)!important;top:max(10px,env(safe-area-inset-top))!important;
  width:58px!important;height:44px!important;padding:0!important;display:flex;align-items:center;justify-content:center
 }
 body.mobile.spectating-mobile #leaveMatch{left:calc(max(10px,env(safe-area-inset-left)) + 58px)!important}
 body.mobile.spectating-mobile.permanent-spectator #mSpecExit{
  left:50%!important;right:auto!important;top:auto!important;bottom:max(16px,env(safe-area-inset-bottom))!important;
  width:104px!important;height:48px!important;transform:translateX(-50%);border-radius:16px
 }
 body.mobile.spectating-mobile #top{
  width:360px!important;min-width:360px!important;max-width:min(360px,52vw)!important;
  display:grid!important;grid-template-columns:auto 20px 54px minmax(72px,auto) 20px auto!important;
  column-gap:10px!important;align-items:center!important;justify-content:center!important;
  padding:7px 13px!important;line-height:1!important
 }
 body.mobile.spectating-mobile #top>span,body.mobile.spectating-mobile #top>b{align-self:center;text-align:center}
}
html.mobile-qa body.mobile #leaveMatch{left:160px!important;width:58px!important;height:44px!important;padding:0!important;display:flex;align-items:center;justify-content:center}
html.mobile-qa body.mobile.spectating-mobile #leaveMatch{left:68px!important}
html.mobile-qa body.mobile.spectating-mobile.permanent-spectator #mSpecExit{
 left:50%!important;right:auto!important;top:auto!important;bottom:18px!important;
 width:104px!important;height:48px!important;transform:translateX(-50%);border-radius:16px
}
html.mobile-qa body.mobile.spectating-mobile #top{
 width:360px!important;min-width:360px!important;max-width:52vw!important;display:grid!important;
 grid-template-columns:auto 20px 54px minmax(72px,auto) 20px auto!important;column-gap:10px!important;
 align-items:center!important;justify-content:center!important;padding:7px 13px!important;line-height:1!important
}
html.mobile-qa body.mobile.spectating-mobile #movePad,
html.mobile-qa body.mobile.spectating-mobile #feed,
html.mobile-qa body.mobile.spectating-mobile #objective,
html.mobile-qa body.mobile.spectating-mobile #aiOrder,
html.mobile-qa body.mobile.spectating-mobile #specModeBadge,
html.mobile-qa body.mobile.spectating-mobile #spectator,
html.mobile-qa body.mobile.spectating-mobile #pickupPrompt,
html.mobile-qa body.mobile.spectating-mobile #leftHud,
html.mobile-qa body.mobile.spectating-mobile #weaponHud,
html.mobile-qa body.mobile.spectating-mobile #bombStatus,
html.mobile-qa body.mobile.spectating-mobile #moneyHud,
html.mobile-qa body.mobile.spectating-mobile #mFire,
html.mobile-qa body.mobile.spectating-mobile #mSprint,
html.mobile-qa body.mobile.spectating-mobile #mJump,
html.mobile-qa body.mobile.spectating-mobile #mCrouch,
html.mobile-qa body.mobile.spectating-mobile #mReload,
html.mobile-qa body.mobile.spectating-mobile #mUse,
html.mobile-qa body.mobile.spectating-mobile #mWeapon,
html.mobile-qa body.mobile.spectating-mobile #mGrenade,
html.mobile-qa body.mobile.spectating-mobile #mMenu,
html.mobile-qa body.mobile.spectating-mobile #mBuy,
html.mobile-qa body.mobile.spectating-mobile .performanceHud{display:none!important}
html.mobile-qa body.mobile.spectating-mobile #top{display:grid!important;visibility:visible!important}
html.mobile-qa body.mobile.spectating-mobile #minimapWrap{display:block!important;visibility:visible!important}
html.mobile-qa body.mobile.spectating-mobile #mScore{display:flex!important;align-items:center!important;justify-content:center!important;left:10px!important;top:10px!important}
html.mobile-qa body.mobile.spectating-mobile #mSpecPrev,
html.mobile-qa body.mobile.spectating-mobile #mSpecNext,
html.mobile-qa body.mobile.spectating-mobile #mSpecView{display:flex!important;align-items:center!important;justify-content:center!important;bottom:18px!important;height:48px!important}
html.mobile-qa body.mobile.spectating-mobile #mSpecPrev{left:18px!important;width:104px!important}
html.mobile-qa body.mobile.spectating-mobile #mSpecNext{left:132px!important;width:104px!important}
html.mobile-qa body.mobile.spectating-mobile #mSpecView{right:18px!important;width:118px!important}
html.mobile-qa body.mobile.spectating-mobile #spectatorAction{display:none;top:74px!important;width:min(330px,48vw)!important;padding:7px 9px!important}
html.mobile-qa body.mobile.spectating-mobile #spectatorAction.active{display:block!important}

/* V7.4.13 compact spectator lanes and match-stat scoreboard. */
#scoreboard{width:min(1040px,94vw);max-height:86dvh;box-sizing:border-box}
#scoreboard .sbTitle{margin-bottom:9px}
#scoreboard .sbCols{gap:10px}
#scoreboard .sbTeam{min-width:0}
#scoreboard .sbTeam>div:last-child{max-height:calc(86dvh - 86px);overflow-y:auto;scrollbar-width:thin}
#scoreboard .sbRow{grid-template-columns:minmax(92px,1fr) 54px 26px 26px 58px 44px;gap:5px;align-items:center;padding:6px 9px;font-size:11px}
#scoreboard .sbRow>span:not(.sbName){text-align:center}
#scoreboard .sbLabels{position:sticky;top:0;z-index:1;background:#11181c;color:#ffffff70;font-size:7px;font-weight:900;letter-spacing:.5px}
#scoreboard .sbName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
#scoreboard .sbName.self{color:#65ee84}
#scoreboard .sbType{font-size:8px;color:#a9b5bc;font-weight:900;letter-spacing:.5px}
#scoreboard .sbNum{font-variant-numeric:tabular-nums;font-weight:900}
#scoreboard .sbObjectiveStat{color:#f0b33d}
#scoreboard .sbGear{color:#7ed7ff;font-size:9px;font-weight:950}
body.spectating:not(.mobile) #objective,
body.spectating:not(.mobile) #aiOrder,
body.spectating:not(.mobile) #specModeBadge{display:none!important}
body.spectating:not(.mobile) #spectator{top:76px!important;max-width:min(520px,52vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.spectating:not(.mobile) .spectatorAction{top:116px;width:min(360px,42vw)}
body:not(.mobile) #moneyHud{left:96px}
body:not(.mobile) #leaveMatch{left:18px;top:16px}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile.spectating-mobile #top{top:max(8px,env(safe-area-inset-top))!important}
 body.mobile.spectating-mobile #spectatorAction{top:max(52px,calc(env(safe-area-inset-top) + 48px))!important;width:min(330px,46vw)!important}
 body.mobile #scoreboard{left:50%;top:max(60px,calc(env(safe-area-inset-top) + 58px));bottom:auto;transform:translateX(-50%);width:96vw;max-height:calc(100dvh - 132px);padding:10px 11px;z-index:58}
 body.mobile #scoreboard .sbTitle{font-size:13px;margin-bottom:6px}
 body.mobile #scoreboard .sbHead{padding:6px 8px;font-size:10px}
 body.mobile #scoreboard .sbTeam>div:last-child{max-height:calc(100dvh - 198px)}
 body.mobile #scoreboard .sbRow{grid-template-columns:minmax(64px,1fr) 38px 20px 20px 42px 34px;gap:3px;padding:4px 6px;font-size:8px}
 body.mobile #scoreboard .sbLabels{font-size:6px}
 body.mobile #scoreboard .sbType,body.mobile #scoreboard .sbGear{font-size:6.5px}
}
html.mobile-qa body.mobile #scoreboard{left:50%!important;top:max(60px,calc(env(safe-area-inset-top) + 58px))!important;bottom:auto!important;transform:translateX(-50%)!important;width:96vw!important;max-height:calc(100dvh - 132px)!important;padding:10px 11px!important;z-index:58!important}
html.mobile-qa body.mobile #scoreboard .sbTeam>div:last-child{max-height:calc(100dvh - 198px)!important}
body.mobile.spectating-mobile.scoreboard-open #minimapWrap,
html.mobile-qa body.mobile.spectating-mobile.scoreboard-open #minimapWrap{visibility:hidden!important}

/* V7.4.14 safety notices, changelog and final compact iPhone HUD contract. */
.teamKillNotice{
 position:fixed;z-index:120;left:50%;top:14%;transform:translateX(-50%);width:min(580px,88vw);
 padding:13px 16px;border:1px solid #f0b33d88;border-radius:10px;background:rgba(22,15,5,.95);
 box-shadow:0 18px 55px #000b;pointer-events:none;text-align:center
}
.teamKillNotice b,.teamKillNotice span{display:block}.teamKillNotice b{font-size:15px;letter-spacing:1px;color:#ffd36a}.teamKillNotice span{margin-top:5px;font-size:11px;line-height:1.4;color:#fff}
.teamKillNotice.danger{border-color:#ff6b5788;background:rgba(35,8,7,.96)}.teamKillNotice.danger b{color:#ff8d7e}.teamKillNotice.info{border-color:#58a6ff88;background:rgba(5,17,29,.96)}.teamKillNotice.info b{color:#7ebcff}
.v5Row{flex-wrap:wrap}.exitGameBtn{border-color:#ff796f55;color:#ffc5bd}.exitGameBtn:hover{background:#7b201f55}
.changelogPanelCard{width:min(650px,94vw)}.changelogEntries{max-height:min(58vh,520px);overflow:auto;padding-right:5px}.changelogEntries article{padding:11px 13px;margin:8px 0;border:1px solid #ffffff14;border-radius:9px;background:#ffffff06}.changelogEntries h3{margin:0 0 7px;color:#f0b33d}.changelogEntries ul{margin:0;padding-left:19px;font-size:12px;line-height:1.55;color:#d7e0e5}

@media (pointer:coarse) and (orientation:landscape){
 body.mobile .mobBtn{width:44px!important;height:44px!important;font-size:7.5px!important}
 body.mobile .mobBtn.small{top:max(8px,env(safe-area-inset-top))!important;width:38px!important;height:36px!important;border-radius:10px!important}
 body.mobile #mScore{left:max(8px,env(safe-area-inset-left))!important}
 body.mobile #mMenu{left:calc(max(8px,env(safe-area-inset-left)) + 44px)!important}
 body.mobile #mBuy{left:calc(max(8px,env(safe-area-inset-left)) + 88px)!important}
 body.mobile #leaveMatch{left:calc(max(8px,env(safe-area-inset-left)) + 132px)!important;top:max(8px,env(safe-area-inset-top))!important;width:52px!important;height:36px!important;font-size:7px!important}
 body.mobile #movePad{left:max(18px,env(safe-area-inset-left))!important;bottom:max(20px,env(safe-area-inset-bottom))!important;width:96px!important;height:96px!important}
 body.mobile #mSprint{left:calc(max(18px,env(safe-area-inset-left)) + 112px)!important;bottom:max(28px,env(safe-area-inset-bottom))!important;width:68px!important;height:44px!important;border-radius:14px!important;font-size:8px!important}
 body.mobile #leftHud{left:max(18px,env(safe-area-inset-left))!important;bottom:calc(max(20px,env(safe-area-inset-bottom)) + 112px)!important;gap:5px!important}
 body.mobile #leftHud .card{width:56px!important;min-width:56px!important;height:44px!important;padding:5px 7px!important;border-radius:7px!important}
 body.mobile #leftHud .lab{font-size:6px!important}.mobile #leftHud .val{font-size:16px!important;margin-top:2px!important}
 body.mobile #minimapWrap{right:max(8px,env(safe-area-inset-right))!important;top:max(8px,env(safe-area-inset-top))!important;width:112px!important;height:112px!important}
 body.mobile #bombStatus{right:max(8px,env(safe-area-inset-right))!important;top:126px!important;width:112px!important;min-width:112px!important;max-width:112px!important;padding:5px 7px!important;font-size:7px!important}
 body.mobile #weaponHud{right:calc(max(8px,env(safe-area-inset-right)) + 102px)!important;top:132px!important;width:108px!important;min-width:108px!important;padding:6px 8px!important}
 body.mobile #weaponName{font-size:8px!important}.mobile #weaponHud .ammo{font-size:18px!important}.mobile #weaponHud .ammo small{font-size:9px!important}
 body.mobile #mJump{right:max(8px,env(safe-area-inset-right))!important;bottom:max(10px,env(safe-area-inset-bottom))!important}
 body.mobile #mCrouch{right:calc(max(8px,env(safe-area-inset-right)) + 50px)!important;bottom:max(10px,env(safe-area-inset-bottom))!important}
 body.mobile #mReload{right:max(8px,env(safe-area-inset-right))!important;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 50px)!important}
 body.mobile #mUse{right:calc(max(8px,env(safe-area-inset-right)) + 50px)!important;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 50px)!important}
 body.mobile #mWeapon{right:max(8px,env(safe-area-inset-right))!important;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 100px)!important}
 body.mobile #mGrenade{right:calc(max(8px,env(safe-area-inset-right)) + 50px)!important;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 100px)!important}
 body.mobile #mFire{right:calc(max(8px,env(safe-area-inset-right)) + 108px)!important;bottom:max(12px,env(safe-area-inset-bottom))!important;width:60px!important;height:60px!important;font-size:10px!important}
 body.mobile #mDrop{right:calc(max(8px,env(safe-area-inset-right)) + 108px)!important;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 68px)!important;width:44px!important;height:44px!important;border-radius:13px!important;color:#ffd36a}
 body.mobile.spectating-mobile #mDrop{display:none!important}
}

html.mobile-qa body.mobile .mobBtn{width:44px!important;height:44px!important;font-size:7.5px!important}
html.mobile-qa body.mobile .mobBtn.small{top:8px!important;width:38px!important;height:36px!important;border-radius:10px!important}
html.mobile-qa body.mobile #mScore{left:8px!important}html.mobile-qa body.mobile #mMenu{left:52px!important}html.mobile-qa body.mobile #mBuy{left:96px!important}
html.mobile-qa body.mobile #leaveMatch{left:140px!important;top:8px!important;width:52px!important;height:36px!important;font-size:7px!important}
html.mobile-qa body.mobile #movePad{left:18px!important;bottom:20px!important;width:96px!important;height:96px!important}
html.mobile-qa body.mobile #mSprint{left:130px!important;bottom:28px!important;width:68px!important;height:44px!important}
html.mobile-qa body.mobile #leftHud{left:18px!important;bottom:132px!important;gap:5px!important}
html.mobile-qa body.mobile #leftHud .card{width:56px!important;min-width:56px!important;height:44px!important;padding:5px 7px!important}
html.mobile-qa body.mobile #leftHud .lab{font-size:6px!important}html.mobile-qa body.mobile #leftHud .val{font-size:16px!important;margin-top:2px!important}
html.mobile-qa body.mobile #minimapWrap{right:8px!important;top:8px!important;width:112px!important;height:112px!important}
html.mobile-qa body.mobile #bombStatus{right:8px!important;top:126px!important;width:112px!important;min-width:112px!important;max-width:112px!important;font-size:7px!important}
html.mobile-qa body.mobile #weaponHud{right:110px!important;top:132px!important;width:108px!important;min-width:108px!important;padding:6px 8px!important}
html.mobile-qa body.mobile #mJump{right:8px!important;bottom:10px!important}html.mobile-qa body.mobile #mCrouch{right:58px!important;bottom:10px!important}
html.mobile-qa body.mobile #mReload{right:8px!important;bottom:60px!important}html.mobile-qa body.mobile #mUse{right:58px!important;bottom:60px!important}
html.mobile-qa body.mobile #mWeapon{right:8px!important;bottom:110px!important}html.mobile-qa body.mobile #mGrenade{right:58px!important;bottom:110px!important}
html.mobile-qa body.mobile #mFire{right:116px!important;bottom:12px!important;width:60px!important;height:60px!important}
html.mobile-qa body.mobile #mDrop{right:116px!important;bottom:80px!important;width:44px!important;height:44px!important;border-radius:13px!important;color:#ffd36a}
html.mobile-qa body.mobile.spectating-mobile #mDrop{display:none!important}
body.mobile:not(.spectating-mobile) #mSpecPrev,
body.mobile:not(.spectating-mobile) #mSpecNext,
body.mobile:not(.spectating-mobile) #mSpecView,
body.mobile:not(.permanent-spectator) #mSpecExit{display:none!important}

/* V7.4.15 follow-up: one non-overlapping iPhone HUD lane. These rules are
   intentionally mobile-only; desktop keeps its established layout. */
@media (pointer:coarse) and (orientation:landscape){
 body.mobile #moneyHud{
  left:max(8px,env(safe-area-inset-left))!important;right:auto!important;
  top:52px!important;transform:none!important;padding:5px 8px!important;
  max-width:96px!important;font-size:9px!important;line-height:1.1!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
 }
 body.mobile #leftHud{
  left:max(8px,env(safe-area-inset-left))!important;
  bottom:calc(max(20px,env(safe-area-inset-bottom)) + 110px)!important;
  transform:none!important;gap:4px!important
 }
 body.mobile #leftHud .card{
  box-sizing:border-box!important;width:52px!important;min-width:52px!important;height:42px!important;
  padding:5px 6px!important;border-radius:7px!important
 }
 body.mobile #leftHud .lab{font-size:5.5px!important;line-height:1!important}
 body.mobile #leftHud .val{font-size:15px!important;line-height:1!important;margin-top:3px!important}

 body.mobile #minimapWrap{
  right:max(8px,env(safe-area-inset-right))!important;top:max(8px,env(safe-area-inset-top))!important;
  width:108px!important;height:108px!important
 }
 body.mobile .performanceHud{
  left:auto!important;right:max(8px,env(safe-area-inset-right))!important;
  top:122px!important;bottom:auto!important;transform:none!important;
  box-sizing:border-box!important;min-width:108px!important;max-width:108px!important;
  padding:3px 4px!important;font-size:6px!important;line-height:1.05!important
 }
 body.mobile .performanceHud .perfBasic{gap:3px!important;justify-content:center!important}
 body.mobile .performanceHud .perfGrid{display:grid!important;grid-template-columns:repeat(4,auto)!important;gap:1px 3px!important;align-items:center!important}
 body.mobile .performanceHud .perfGrid span{display:none!important}
 body.mobile .performanceHud .perfGrid span:nth-child(-n+4){display:block!important}
 body.mobile #weaponHud{
  right:max(8px,env(safe-area-inset-right))!important;top:145px!important;
  box-sizing:border-box!important;width:108px!important;min-width:108px!important;
  padding:5px 7px!important;border-radius:7px!important
 }
 body.mobile #weaponName{font-size:7px!important;line-height:1.1!important;white-space:normal!important}
 body.mobile #weaponHud .ammo{font-size:17px!important;line-height:1!important;margin-top:2px!important}
 body.mobile #weaponHud .ammo small{font-size:8px!important}
 body.mobile #bombStatus{
  right:calc(max(8px,env(safe-area-inset-right)) + 116px)!important;top:104px!important;
  box-sizing:border-box!important;width:116px!important;min-width:116px!important;max-width:116px!important;
  padding:5px 6px!important;font-size:7px!important;line-height:1.15!important;
  white-space:normal!important
 }
}
@media (pointer:coarse) and (orientation:landscape) and (max-width:870px){
 body.mobile #bombStatus{right:calc(max(8px,env(safe-area-inset-right)) + 112px)!important;width:108px!important;min-width:108px!important;max-width:108px!important}
 body.mobile #weaponHud{top:143px!important}
}

html.mobile-qa body.mobile #moneyHud{left:8px!important;top:52px!important;transform:none!important;max-width:96px!important;font-size:9px!important;padding:5px 8px!important}
html.mobile-qa body.mobile #leftHud{left:8px!important;bottom:130px!important;transform:none!important;gap:4px!important}
html.mobile-qa body.mobile #leftHud .card{width:52px!important;min-width:52px!important;height:42px!important;padding:5px 6px!important}
html.mobile-qa body.mobile #minimapWrap{right:8px!important;top:8px!important;width:108px!important;height:108px!important}
html.mobile-qa body.mobile .performanceHud{right:8px!important;top:122px!important;bottom:auto!important;min-width:108px!important;max-width:108px!important;padding:3px 4px!important;font-size:6px!important}
html.mobile-qa body.mobile .performanceHud .perfGrid{display:grid!important;grid-template-columns:repeat(4,auto)!important;gap:1px 3px!important}
html.mobile-qa body.mobile .performanceHud .perfGrid span{display:none!important}
html.mobile-qa body.mobile .performanceHud .perfGrid span:nth-child(-n+4){display:block!important}
html.mobile-qa body.mobile #weaponHud{right:8px!important;top:145px!important;width:108px!important;min-width:108px!important;padding:5px 7px!important}
html.mobile-qa body.mobile #bombStatus{right:124px!important;top:104px!important;width:108px!important;min-width:108px!important;max-width:108px!important;padding:5px 6px!important;font-size:7px!important}
