:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
#tactical-touch{position:fixed;inset:0;z-index:80;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;color:#f1edd8;font-family:Inter,Arial,sans-serif;--fit-button:min(var(--button-size,60px),18dvh);--fit-joy:min(var(--joy-size,120px),40dvh);--edge-left:max(12px,var(--safe-left));--edge-right:max(12px,var(--safe-right));--edge-bottom:max(12px,var(--safe-bottom))}
#tactical-touch[hidden]{display:none!important}#tactical-touch button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-width:0;border:1px solid #e3e7c969;border-radius:16px;background:#21372ee0;color:#f1edd8;font:600 10px/1.3 Inter,Arial,sans-serif;letter-spacing:.2px;padding:5px;box-shadow:0 2px 10px #0c191650;opacity:var(--opacity,.7)}
#tactical-touch button.held{background:#b6ba858f;border-color:#f3e3a9;opacity:1;transform:scale(.96)}#tactical-touch button:focus-visible{outline:2px solid #efd49a;outline-offset:3px}
.t-look{position:absolute;inset:0 0 0 50%;pointer-events:auto;touch-action:none}.left-handed .t-look{inset:0 50% 0 0}
.t-joystick{position:absolute;width:var(--fit-joy);height:var(--fit-joy);border:2px solid #dee6ca77;background:radial-gradient(circle,#b8d4a720,#1b35295e);border-radius:50%;pointer-events:auto;touch-action:none;opacity:var(--opacity,.7);left:clamp(var(--edge-left),calc(var(--joy-x,16%) - var(--fit-joy)/2),calc(50% - var(--fit-joy)));bottom:clamp(var(--edge-bottom),calc(var(--joy-y,20%) - var(--fit-joy)/2),calc(100% - var(--fit-joy) - var(--safe-top)))}
.left-handed .t-joystick{left:auto;right:clamp(var(--edge-right),calc(var(--joy-x,16%) - var(--fit-joy)/2),calc(50% - var(--fit-joy)))}
.t-joystick i{display:block;position:absolute;width:var(--knob-size,34%);height:var(--knob-size,34%);left:calc((100% - var(--knob-size,34%))/2);top:calc((100% - var(--knob-size,34%))/2);border-radius:50%;background:#d2dec0a6;border:1px solid #f0ebc699;pointer-events:none}.t-joystick span{position:absolute;bottom:12%;width:100%;text-align:center;font:8px ui-monospace,monospace;letter-spacing:1px;color:#dae4c5;pointer-events:none}
.t-actions{position:absolute;right:var(--edge-right);bottom:var(--edge-bottom);display:grid;grid-template-columns:repeat(3,var(--fit-button));grid-template-rows:repeat(2,var(--fit-button));gap:var(--button-gap,8px);pointer-events:none}.left-handed .t-actions{right:auto;left:var(--edge-left)}
.t-fire{grid-area:1/3!important;background:#9d8049e8!important}.t-crouch{grid-area:1/2}.t-cycleWeapon{grid-area:1/1}.t-jump{grid-area:2/3}.t-reload{grid-area:2/2}.t-interact{grid-area:2/1}.t-grenade{grid-area:3/1}.t-grenadeType{grid-area:3/2}
.t-utility{position:absolute;right:var(--edge-right);top:max(12px,var(--safe-top));display:flex;gap:var(--button-gap,8px)}.t-utility button{width:var(--utility-size,44px);height:var(--utility-size,44px);font-size:8px!important;border-radius:10px!important}.left-handed .t-utility{right:auto;left:var(--edge-left)}
html.touch-playing,body.touch-playing{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.touch-playing{position:fixed;inset:0;overflow:hidden;width:100%;height:100dvh;--touch-fit-button:min(var(--touch-button-size,60px),18dvh)}
body.touch-playing #g-pause{display:none}body.touch-playing .g-hud-top{left:max(16px,calc(var(--safe-left) + 10px));right:max(116px,calc(var(--safe-right) + 108px));top:max(12px,var(--safe-top))}body.touch-playing .g-practice-stats{gap:12px}body.touch-playing .g-hud-top small{font-size:10px;margin-top:6px}body.touch-playing .g-hud-top b{font-size:9px;letter-spacing:1px}body.touch-playing .g-practice-stats strong{font-size:20px}
body.touch-playing .g-hud-bottom{bottom:calc(max(12px,var(--safe-bottom)) + var(--touch-fit-button)*2 + 24px);left:max(18px,calc(var(--safe-left) + 12px));right:max(18px,calc(var(--safe-right) + 12px))}body.touch-playing .g-vitals{gap:12px}body.touch-playing .g-vitals>div{width:58px}body.touch-playing .g-vitals b{font-size:24px}body.touch-playing .g-weapon-status strong{font-size:28px}body.touch-playing .g-weapon-status>b{font-size:11px;margin:4px 0}body.touch-playing .g-weapon-status p{max-width:210px;font-size:7px;line-height:1.6}body.touch-playing .g-posture{display:none}
body.touch-playing .g-hotkeys{top:calc(max(12px,var(--safe-top)) + 88px);bottom:auto;left:50%;transform:translateX(-50%);font-size:8px;text-align:center;white-space:normal;max-width:60vw}body.touch-playing .g-wave-strip{top:calc(max(12px,var(--safe-top)) + 48px);font-size:9px}body.touch-playing .g-round-chip{top:37%;font-size:10px;padding:10px 14px}body.touch-playing .g-pickup{bottom:38%;max-width:46vw;font-size:10px;padding:8px 10px}body.touch-playing .g-prop-inspect{font-size:8px;max-width:55vw}body.touch-playing .g-killfeed{top:calc(max(12px,var(--safe-top)) + 53px);right:max(15px,var(--safe-right));font-size:8px}body.touch-playing .g-killfeed>div{padding:6px 8px;max-width:28vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#g-touch-orientation{display:none}.touch-device #g-capture-note{font-size:11px}.g-overlay,.g-round-summary,.g-rebind-dialog,.g-scoreboard{padding-top:max(24px,var(--safe-top));padding-bottom:max(24px,var(--safe-bottom));padding-left:max(20px,var(--safe-left));padding-right:max(20px,var(--safe-right));overscroll-behavior:contain}.g-tab-panel{overscroll-behavior:contain}
@media(orientation:portrait){.touch-device #g-touch-orientation{display:block;color:#e1c98f;border-left:2px solid #d3bd7b;padding-left:12px}}
@media(any-pointer:coarse){.g-tabs button{min-height:44px}.g-check{min-height:34px}.g-check input{width:22px;height:22px}.g-setting input[type=range]{height:28px}.g-text{min-height:38px}.g-menu-bottom nav button{min-height:38px}.g-addon-settings summary{min-height:40px}#walk-pad{right:max(16px,var(--safe-right));bottom:max(100px,calc(var(--safe-bottom) + 75px));grid-template-columns:repeat(3,44px)}#walk-pad button{width:44px;height:44px}.app-header{padding-top:var(--safe-top);height:calc(74px + var(--safe-top));padding-left:max(16px,var(--safe-left));padding-right:max(16px,var(--safe-right))}.app-body{height:calc(100dvh - 74px - var(--safe-top))}.viewer-top{left:max(16px,var(--safe-left));right:max(16px,var(--safe-right))}.bottom-bar{bottom:max(18px,var(--safe-bottom))}.layers-panel,.inventory-panel{max-height:calc(100dvh - 150px - var(--safe-bottom));overflow:auto}.g-debug{font-size:8px;max-height:calc(100dvh - 130px);top:64px;left:max(12px,var(--safe-left))}}
@media(any-pointer:coarse) and (max-width:900px){.app-header{height:calc(62px + var(--safe-top))}.app-body{height:calc(100dvh - 62px - var(--safe-top))}aside{top:calc(62px + var(--safe-top))}}
body.touch-playing.touch-left-handed .g-hud-top{left:max(116px,calc(var(--safe-left) + 108px));right:max(16px,calc(var(--safe-right) + 10px))}
@media(any-pointer:coarse){#tactical-ui select,#tour-quality,#inventory-filter{font-size:16px}}

.t-grenade,.t-grenadeType{min-height:44px!important}body.touch-playing.grenades-enabled .g-hud-bottom{bottom:calc(max(12px,var(--safe-bottom)) + var(--touch-fit-button)*2 + 76px)}
