#fire-position-safe-area{position:fixed;inset:0;box-sizing:border-box;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);visibility:hidden;pointer-events:none}
#hud #sandbox-fire.fire-position-custom{position:fixed;left:var(--fire-left);top:var(--fire-top);right:auto;bottom:auto}
.fire-position-editing #hud #sandbox-fire{visibility:hidden}
html body dialog#fire-position-dialog[open]{position:fixed;inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;box-sizing:border-box;border:0;border-radius:0;padding:0;overflow:hidden;background:#10232430;box-shadow:none;color:#eef3ec;touch-action:none;font-family:system-ui,sans-serif}
html body dialog#fire-position-dialog[open]::backdrop{background:#08161955;backdrop-filter:none}
#fire-position-dialog .fire-position-heading{position:absolute;z-index:2;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);padding:10px 18px;border:1px solid #7a8a8066;border-radius:14px;background:#192a2eeb;text-align:center;pointer-events:none}
#fire-position-dialog h2{margin:0 0 3px;color:#eef3ec;font-size:17px;font-weight:600}
#fire-position-dialog p{margin:0;font-size:12px;line-height:1.45;color:#c4d0c8}
#fire-position-dialog #fire-position-handle{position:fixed;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-sizing:border-box;min-height:0;padding:6px;border:2px solid #ecd396;border-radius:50%;background:#354a3cf0;color:#ffedbd;box-shadow:0 0 0 7px #ecd39620;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;transform:none}
#fire-position-handle::before{content:'';width:28px;height:28px;background:currentColor;mask:url('/assets/hud/arsenal.svg') center/contain no-repeat;-webkit-mask:url('/assets/hud/arsenal.svg') center/contain no-repeat}
#fire-position-handle strong{font-size:9px;font-weight:550}#fire-position-handle:active{cursor:grabbing}#fire-position-handle:focus-visible{outline:2px dashed #fff;outline-offset:9px}
#fire-position-dialog .fire-position-actions{position:absolute;z-index:2;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:center;padding:6px;border:1px solid #7a8a8066;border-radius:14px;background:#192a2eef;max-width:calc(100% - 24px)}
#fire-position-dialog .fire-position-actions button{min-height:44px;padding:8px 14px;border:1px solid #7a8a8066;border-radius:9px;background:#293c3d;color:#eef3ec;font:500 13px system-ui;cursor:pointer;white-space:nowrap}
#fire-position-dialog #fire-position-save{background:#e4c789;color:#22332d;border-color:#e4c789}
#fire-position-value{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
/* Unified, bounded touch layout. Hidden controls stay hidden until usable. */
#hud .control-layout-custom{position:fixed!important;left:var(--control-left)!important;top:var(--control-top)!important;right:auto!important;bottom:auto!important;width:var(--control-width)!important;height:var(--control-height)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;transform:none!important;box-sizing:border-box}
#hud #move-zone.control-layout-zone{position:fixed;left:var(--control-left);top:var(--control-top);right:auto;bottom:auto;width:var(--control-width);height:var(--control-height)}
#hud #move-zone.control-layout-zone #joystick{width:var(--stick-size);height:var(--stick-size);left:var(--stick-left);top:var(--stick-top);right:auto;bottom:auto;transform:none}
.fire-position-editing #hud #sandbox-fire{visibility:visible}
.fire-position-editing #hud .control-layout-selected{visibility:hidden!important}
#fire-position-dialog .fire-position-heading{pointer-events:auto;padding:8px 12px}
.control-layout-fields{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:7px;text-align:left}
#fire-position-dialog .control-layout-fields label{display:block;font:11px/1.3 system-ui;color:#c4d0c8}
#fire-position-dialog .control-layout-fields select{display:block;min-height:36px;max-width:210px;margin-top:3px;padding:4px 8px;border:1px solid #7a8a80;border-radius:8px;background:#23393b;color:#eef3ec;font:12px system-ui}
#control-layout-size{display:block;width:140px;height:30px;touch-action:pan-x}#control-layout-size-value{color:#e4c789}
#fire-position-handle:not([data-control="sandbox-fire"])::before{content:'↔';background:none;mask:none;-webkit-mask:none;text-align:center;font:24px system-ui}
#fire-position-dialog .fire-position-actions button{padding:8px 10px;font-size:12px}
