.weapon-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:7px}.weapon-slots button{width:auto;display:block;padding:7px 3px;background:#243b3d;color:#b9d96c;border:1px solid #54705e;font-size:8px;letter-spacing:0}.weapon-slots button.is-active{background:#b9d96c;color:#152124}.map-card{padding:12px}.map-card .shop-head{margin-bottom:4px}.map-choice{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:6px;padding:8px;background:#17292e;border:1px solid #2b484d;color:#d7e6c2;text-align:left;cursor:pointer}.map-choice span{font-size:9px;color:#d7e6c2;letter-spacing:.04em}.map-choice small{font-size:8px;color:#728987}.map-choice.is-active{border-color:#e5a65f;background:#2c3c37}.map-choice.is-active span{color:#f1b56d}
.start-map-picker{width:min(520px,100%);margin:10px auto 0;padding:10px 12px;border:1px solid rgba(84,124,124,.7);background:rgba(19,40,42,.82);text-align:left}.start-map-picker>b{display:block;color:#f1d8a5;font-size:10px;letter-spacing:.08em}.start-map-picker>div{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:6px}.start-map-picker .map-choice{margin-top:0;padding:6px 4px;align-items:center;text-align:center;font-size:8px}.start-map-picker .map-choice span{font-size:8px}.start-map-picker .map-choice small{display:none}
.weapon-slots{grid-template-columns:repeat(4,1fr)}.weapon-slots button.is-locked{color:#7b8a82;border-color:#344745;background:#172629}.game-over{overflow:auto;justify-content:flex-start;padding-top:32px;padding-bottom:28px}.reward-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}.reward-button{padding:9px 12px;border:1px solid #d7a466;background:#233936;color:#f1d9ad;font:900 10px "Arial Narrow",sans-serif;letter-spacing:.05em;cursor:pointer}.reward-button.secondary{border-color:#547c7c;color:#b9d96c}.reward-button:disabled{opacity:.45;cursor:default}.end-shop{width:min(620px,100%);margin-top:16px;padding:12px;border:1px solid #3c5a55;background:rgba(16,34,35,.86);text-align:left}.end-shop>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.end-shop>div:first-child b{color:#f1b56d;font-size:13px}.end-shop small{color:#82959a;font-size:9px}.end-shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.end-shop-grid button{min-height:34px;padding:6px;background:#1c302f;border:1px solid #3e5c52;color:#dce9c8;font:900 9px "Arial Narrow",sans-serif;cursor:pointer}.end-shop-grid button:hover{border-color:#e5a65f}.end-shop-grid i{display:block;margin-top:3px;color:#f1b56d;font-style:normal;font-size:8px}.end-actions{margin-top:0}.mobile-controls{display:none;position:absolute;z-index:9;inset:0;pointer-events:none;touch-action:none}.virtual-stick{position:absolute;width:118px;height:118px;border:1px solid rgba(221,239,195,.32);border-radius:50%;background:rgba(17,37,36,.28);pointer-events:auto;touch-action:none}.move-stick{left:24px;bottom:20px}.aim-stick{right:168px;bottom:20px}.virtual-stick:before{content:"";position:absolute;inset:23px;border:1px dashed rgba(221,239,195,.24);border-radius:50%}.virtual-stick .stick-knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px;border:2px solid #b9d96c;border-radius:50%;background:rgba(185,217,108,.28);pointer-events:none}.virtual-stick b{position:absolute;left:0;right:0;bottom:8px;text-align:center;color:rgba(233,241,223,.6);font-size:8px;letter-spacing:.13em}.mobile-actions{position:absolute;right:22px;bottom:20px;display:flex;flex-direction:column;gap:7px;pointer-events:auto}.mobile-actions button{min-width:112px;min-height:37px;border:1px solid #d7a466;background:rgba(47,39,32,.88);color:#f3dfb6;font:900 10px "Arial Narrow",sans-serif;letter-spacing:.08em;touch-action:none}.mobile-actions button:first-child{background:#b9534d;color:#fff1d7}.mobile-actions i{color:#b9d96c;font-style:normal}.mobile-controls button:active,.mobile-controls .stick-knob{filter:brightness(1.25)}
.coin-wallet{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 11px;border:1px solid #d39a58;background:linear-gradient(90deg,rgba(69,50,34,.9),rgba(41,50,38,.9));}.coin-wallet span{color:#f1d8a5;font-size:9px;letter-spacing:.12em}.coin-wallet strong{color:#ffe2a6;font:900 24px Impact,sans-serif;letter-spacing:.04em;text-shadow:0 2px 0 #5e3c2e}.coin-wallet.compact{margin:10px 0 2px;padding:7px 9px}.coin-wallet.compact strong{font-size:20px;color:#b9d96c;text-shadow:none}
@media (pointer:coarse) and (orientation:landscape){.mobile-controls{display:block}.crosshair{opacity:.72}.hud-left{top:12px;left:14px}.hud-right{top:12px;right:14px}.toast-layer{bottom:28%}.game-over{z-index:12}}
@media (max-width:760px) and (orientation:landscape){.end-shop-grid{grid-template-columns:repeat(4,1fr)}.end-shop{margin-top:9px;padding:8px}.reward-row{margin-top:9px}.reward-button{padding:7px 8px;font-size:8px}.game-over h2{font-size:36px}}
.mobile-actions{top:18px;right:18px;bottom:auto;align-items:flex-end}.mobile-actions button{min-width:94px;min-height:34px}.mobile-actions .mobile-fire{width:86px;height:86px;min-width:86px;min-height:86px;border-radius:50%;font-size:15px;letter-spacing:.13em;border:2px solid #ffd08c;box-shadow:0 0 0 5px rgba(214,103,76,.18)}.aim-stick{width:154px;height:154px;right:174px;bottom:18px}.virtual-stick b{white-space:nowrap;font-size:7px}.mobile-control-tip{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);color:rgba(233,241,223,.62);font-size:8px;letter-spacing:.06em;white-space:nowrap;pointer-events:none}
.weapon-slots{grid-template-columns:repeat(5,1fr)}.shop-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.shop-section-head b{color:#f1b56d;font-size:13px}.shop-section-head small{color:#82959a;font-size:9px}.weapon-end-shop,.ability-end-shop{margin-top:12px}.weapon-end-grid,.ability-end-grid{grid-template-columns:repeat(4,1fr)}.weapon-shop-card,.ability-shop-card{border-color:#3c5a55}

/* 手机横屏基准：战场始终保持 16:9，触摸层不继承桌面鼠标行为。 */
html,body{overscroll-behavior:none}
.arena{width:100%;aspect-ratio:16 / 9;min-height:0;height:auto}
.arena{isolation:isolate}.arena #map3dCanvas,.arena #gameCanvas{position:absolute;inset:0;width:100%;height:100%;min-height:0}.arena #map3dCanvas{z-index:0}.arena #gameCanvas{z-index:1;background:transparent}
.arena canvas{width:100%;height:100%;min-height:0;aspect-ratio:16 / 9;touch-action:none}
@media (pointer:coarse), (max-width:980px){
  .arena,.arena canvas,.mobile-controls,.mobile-controls *{touch-action:none;user-select:none}
}
@media (orientation:landscape) and (max-width:980px){
  .mobile-controls{display:block}
}
@media (max-height:580px) and (orientation:landscape){
  .arena{width:min(100%,calc((100svh - 70px) * 16 / 9));margin-inline:auto;aspect-ratio:16 / 9;height:auto}
  .arena canvas{width:100%;height:100%;min-height:0}
}

/* 结算商店在战场内滚动，战场比例和外部页面布局保持稳定。 */
.game-over{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.end-loadout{width:min(620px,100%);margin-top:16px;padding:11px 12px;border:1px solid #547c7c;background:rgba(24,48,48,.9);text-align:left}
.end-loadout>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.end-loadout b{color:#f1d8a5;font-size:13px}.end-loadout span{color:#b9d96c;font-size:9px}.end-loadout small{display:block;margin-top:5px;color:#a8b9aa;font-size:10px;line-height:1.45}
.energy-status{display:block;margin:-8px 0 12px;color:#b9d96c;font-size:9px;letter-spacing:.03em}
.aim-stick{right:112px}
@media (max-width:760px) and (orientation:landscape){
  .game-over{padding-left:5%;padding-right:5%}
  .end-loadout{margin-top:9px;padding:8px 9px}
  .end-loadout b{font-size:11px}.end-loadout small{font-size:9px}
}

/* 恢复原始 2D 战场：只使用 gameCanvas，不加载/叠加 3D 地图层。 */
.arena #map3dCanvas{display:none!important}
.arena #gameCanvas{position:static;inset:auto;width:100%;height:100%;min-height:600px;background:transparent;z-index:auto}
@media (orientation:landscape) and (max-width:980px){.arena #gameCanvas{width:100%;height:100%;min-height:0}}

/* 手机横屏：战场铺满可视区，开火由右摇杆拖动触发。 */
@media (orientation:landscape) and (max-width:980px){
  html,body{width:100%;height:100%;overflow:hidden}
  body{padding:0}
  .game-shell{width:100vw;height:100svh;max-width:none}
  .topbar,.side-panel,.footer-line{display:none}
  .play-layout{display:block;width:100%;height:100%}
  .arena{width:100vw;height:100svh;aspect-ratio:auto;border:0}
  .arena canvas{width:100%;height:100%;min-height:0;aspect-ratio:auto}
  .hud-left{top:110px;left:14px}
  .hud-right{top:104px;right:12px}
  .mobile-controls{display:none}
  .mobile-controls.is-active{display:block}
  .mobile-fire{display:none!important}
  .mobile-actions{top:14px;right:12px}
  .virtual-stick{width:92px;height:92px;border-color:rgba(221,239,195,.22);background:rgba(17,37,36,.14)}
  .virtual-stick:before{inset:18px;border-color:rgba(221,239,195,.16)}
  .virtual-stick .stick-knob{width:36px;height:36px;margin:-18px;border-width:1px;background:rgba(185,217,108,.2)}
  .move-stick{left:16%;bottom:16px}
  .aim-stick{right:12px;bottom:16px;width:100px;height:100px}
  .mobile-control-tip{bottom:4px;font-size:7px}
  .mobile-weapon-switch{display:none}
  .mobile-weapon-switch.is-active{display:flex}
}

.mobile-weapon-switch{display:none;position:absolute;z-index:11;top:14px;left:14px;align-items:center;gap:4px;padding:4px;border:1px solid rgba(223,190,127,.72);background:rgba(10,22,24,.82);box-shadow:0 4px 0 rgba(0,0,0,.16);pointer-events:auto;touch-action:none}
.run-meta .exit-game-button{border-color:#a84f4c;color:#f3a39a;background:#2a2527;font-weight:900}
.mobile-actions .mobile-exit{border-color:#d85c54;background:rgba(104,39,40,.82);color:#ffe0c0}
.mobile-actions .mobile-pause{order:-1;width:42px;min-width:42px;height:34px;min-height:34px;padding:0;border:1px solid #d7a466;background:rgba(22,38,39,.9);color:#f1d8a5;font:900 18px/1 Arial,sans-serif;letter-spacing:-.12em}
.mobile-weapon-switch button{width:28px;height:42px;border:0;background:rgba(214,166,94,.24);color:#f1d8a5;font:900 27px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.mobile-weapon-face{display:flex;align-items:center;gap:7px;min-width:148px;height:42px;padding:0 5px}
.mobile-weapon-icon{display:block;width:38px;height:30px;background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(0 2px 0 #0b1518)}
.mobile-weapon-icon.knife{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#eff5e3 0 18%,#8fa39a 20% 34%,#334a49 36% 100%)}
.mobile-weapon-face b{display:block;color:#f4e0b3;font-size:12px}.mobile-weapon-face small{display:block;margin-top:3px;color:#b9d96c;font-size:9px}
.pickup-prompt{position:absolute;z-index:14;left:50%;bottom:18%;transform:translateX(-50%);display:none;flex-direction:column;gap:5px;min-width:190px;padding:10px 12px;background:rgba(10,24,26,.94);border:1px solid #d7a466;color:#f1d8a5;box-shadow:0 4px 0 rgba(0,0,0,.22);pointer-events:auto;text-align:center;touch-action:manipulation}.pickup-prompt.is-active{display:flex}.pickup-prompt b{font-size:12px}.pickup-prompt small{color:#b9d96c;font-size:9px}.pickup-prompt button{padding:7px 10px;border:1px solid #b9d96c;background:#29483d;color:#e8f2d0;font:900 10px Arial,sans-serif;cursor:pointer;touch-action:manipulation}.pickup-prompt button:active{filter:brightness(1.25)}
.vest-status{display:block;margin:-8px 0 12px;color:#e6b36b;font-size:9px;letter-spacing:.03em}
.boss-hud{position:absolute;z-index:4;top:78px;left:50%;width:min(420px,58%);transform:translateX(-50%);padding:7px 12px;background:rgba(31,16,19,.88);border:1px solid #d85c54;box-shadow:0 4px 0 rgba(0,0,0,.24);opacity:0;pointer-events:none;transition:opacity .16s}
.boss-hud.is-active{opacity:1}.boss-hud>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.boss-hud span{color:#f26b5d;font:900 10px Impact,sans-serif;letter-spacing:.18em}.boss-hud b{color:#ffe0b0;font:900 14px Impact,"Arial Narrow",sans-serif;letter-spacing:.08em}.boss-bar{height:8px;margin-top:5px;border:1px solid #653b3a;background:#261b20;padding:1px}.boss-bar i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#eb5b54,#f3b35c);transition:width .16s}
@media (orientation:landscape) and (max-width:980px){
  .aim-stick{right:16%;bottom:16px}
  .mobile-actions{top:auto;right:clamp(8px,calc(16% - 100px),120px);bottom:20px;align-items:stretch}
  .boss-hud{top:72px;width:min(390px,62%)}
}

/* 动态半屏摇杆：按下才出现，中心跟随首次触点；操作层不遮挡固定按钮。 */
.mobile-touch-zone{position:absolute;top:0;bottom:0;width:50%;z-index:8;pointer-events:auto;touch-action:none}
.move-zone{left:0}.aim-zone{right:0}
.virtual-stick{display:none;z-index:9}
.virtual-stick.is-visible{display:block}
.mobile-actions{z-index:10;flex-direction:row;align-items:center;gap:8px;right:clamp(12px,calc(16% - 92px),130px);bottom:24px;top:auto}
.mobile-actions button,.mobile-actions .mobile-fire{width:58px;height:58px;min-width:58px;min-height:58px;padding:0;border-radius:50%;font-size:9px;line-height:1.15;letter-spacing:.03em}
.mobile-actions .mobile-fire{display:none!important}
.mobile-actions button:first-of-type{background:rgba(47,39,32,.72);color:#f3dfb6}
.mobile-actions button:last-of-type{background:rgba(62,47,73,.78);border-color:#b99cff}
.boss-hud small{display:block;margin-top:4px;color:#ffcf91;font-size:8px;letter-spacing:.04em}
@media (orientation:landscape) and (max-width:980px){
  .arena canvas{object-fit:cover;object-position:center center}
  .virtual-stick{width:92px;height:92px}
  .virtual-stick .stick-knob{width:34px;height:34px;margin:-17px}
  .virtual-stick b{display:none}
  .mobile-actions{right:clamp(12px,calc(16% - 92px),130px);bottom:24px}
}

/* 暂停固定在战场右上角，避免和右下角的换弹/手雷操作重叠。 */
@media (orientation:landscape) and (max-width:980px){
  .mobile-actions .mobile-pause{
    position:fixed;
    top:14px;
    right:14px;
    z-index:20;
    width:44px;
    min-width:44px;
    height:44px;
    min-height:44px;
    margin:0;
  }
}

/* Boss 出场预警：倒计时锁定期间保持明确的红色闪烁反馈。 */
.boss-warning{position:absolute;z-index:12;top:50%;left:50%;transform:translate(-50%,-50%);min-width:260px;padding:18px 28px;text-align:center;background:rgba(90,10,15,.88);border:2px solid #ff685f;box-shadow:0 0 0 9999px rgba(235,50,50,.12),0 0 34px rgba(235,50,50,.75);opacity:0;pointer-events:none}
.boss-warning.is-active{opacity:1;animation:bossWarningFlash .42s steps(2,end) infinite}
.boss-warning strong{display:block;color:#fff0d0;font:900 28px Impact,sans-serif}
.boss-warning small{display:block;margin-top:6px;color:#ffd18f;font-size:11px}
@keyframes bossWarningFlash{0%,100%{filter:brightness(1)}50%{filter:brightness(1.8)}}

/* 全屏 API 可能把视口扩成桌面尺寸；该类由开局时锁定，保证手机布局不被断点反转。 */
body.mobile-combat-mode{width:100%;height:100%;overflow:hidden;padding:0}
body.mobile-combat-mode .game-shell{width:100vw;height:100svh;max-width:none}
body.mobile-combat-mode .topbar,body.mobile-combat-mode .side-panel,body.mobile-combat-mode .footer-line{display:none!important}
body.mobile-combat-mode .play-layout{display:block;width:100%;height:100%}
body.mobile-combat-mode .arena{width:100vw;height:100svh;aspect-ratio:auto;border:0}
body.mobile-combat-mode .arena canvas{width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:cover;object-position:center center}
body.mobile-combat-mode .hud-left{top:110px;left:14px}
body.mobile-combat-mode .hud-right{top:104px;right:12px}
body.mobile-combat-mode .mobile-controls.is-active{display:block}
body.mobile-combat-mode .mobile-fire{display:none!important}

/* 装备和能力状态放大显示，区分“已购买”与“已装备”。 */
.equipment-card{margin-top:10px;padding:12px;border:1px solid #547c7c;background:rgba(19,39,40,.94)}
.equipment-supplies{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:8px;background:#162b2e;border-left:3px solid #b9d96c;color:#d9efc3;font-size:10px}.equipment-supplies b{color:#f1d8a5}.equipment-supplies span{font-weight:800}.equipment-supplies small{color:#9db3a5;font-size:8px;line-height:1.4}
.equipment-card .shop-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.equipment-card .shop-head span{color:#f1b56d;font-size:13px;font-weight:900}.equipment-card .shop-head b{color:#b9d96c;font-size:9px}
.equipment-summary{padding:8px 9px;margin-bottom:7px;background:#203a38;border-left:3px solid #e5a65f}.equipment-summary b{display:block;color:#ffe0b0;font-size:11px}.equipment-summary span{display:block;margin-top:4px;color:#d4e5c3;font-size:9px;line-height:1.45}
.equipment-list{display:grid;gap:5px;max-height:260px;overflow:auto}.equipment-row{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 6px;background:#172c30;border:1px solid #315150}.equipment-row b{display:block;color:#e3efcf;font-size:10px}.equipment-row small{display:block;margin-top:3px;color:#8fa6a0;font-size:8px}.equipment-row button{flex:0 0 auto;padding:6px 7px;border:1px solid #d39a58;background:#6c5235;color:#ffe0ad;font-size:8px;font-weight:900}.equipment-row button:disabled{opacity:.45;color:#81928a;border-color:#3a4d4c;background:#213334}
.ability-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:8px 0 10px}.ability-summary>div{padding:8px 7px;background:#203a38;border:1px solid #315b55}.ability-summary b{display:block;color:#f1d8a5;font-size:10px}.ability-summary strong{display:block;margin-top:4px;color:#d9efc3;font-size:9px;line-height:1.35;font-weight:700}.ability-shop-card>.shop-item small{font-size:9px;line-height:1.4;color:#bfd0bb}.ability-shop-card>.shop-item button{font-size:9px;min-width:76px}.weapon-shop-card .shop-item button.is-owned{background:#2e614e;color:#d8efbd}.weapon-shop-card .shop-item button.is-equipped{background:#b9d96c;color:#152124}
.revive-panel{position:absolute;z-index:15;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:none;align-items:center;gap:14px;width:min(560px,86%);padding:16px 18px;background:rgba(13,29,31,.97);border:2px solid #d7a466;box-shadow:0 0 0 9999px rgba(5,10,12,.52),0 0 28px rgba(215,164,102,.36);color:#f1d8a5}.revive-panel.is-active{display:flex}.revive-panel strong{display:block;font-size:16px}.revive-panel small{display:block;margin-top:5px;color:#aebfb0;font-size:10px}.revive-panel .reward-button{margin-left:auto;white-space:nowrap}.revive-ring{position:relative;display:grid;place-items:center;flex:0 0 68px;width:68px;height:68px;border:3px solid #263f3e;border-top-color:#b9d96c;border-right-color:#f1a45f;border-radius:50%;animation:reviveSpin 1s linear infinite}.revive-ring i{position:absolute;inset:8px;border:1px dashed rgba(185,217,108,.65);border-radius:50%}.revive-ring b{position:relative;color:#f7e3b2;font-size:9px;text-align:center;line-height:1.2}.revive-panel .reward-button{padding:9px 11px}@keyframes reviveSpin{to{transform:rotate(360deg)}}
.pause-panel{position:absolute;inset:0;z-index:25;display:none;place-items:center;background:rgba(5,12,14,.76);backdrop-filter:blur(3px)}.pause-panel.is-active{display:grid}.pause-card{width:min(420px,86%);padding:24px 22px;background:rgba(13,29,31,.98);border:2px solid #d7a466;box-shadow:0 8px 0 rgba(0,0,0,.25);text-align:center;color:#f1d8a5}.pause-mark{display:block;color:#b9d96c;font:900 30px/1 Arial,sans-serif;letter-spacing:-.14em}.pause-card h3{margin:10px 0 6px;font-size:22px}.pause-card p{color:#aebfb0;font-size:10px;line-height:1.55}.pause-card>div{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:18px}.pause-card button{min-width:102px}.pause-card .danger-button{padding:10px 13px;border:1px solid #d85c54;background:#683b3b;color:#ffe0c0;font-size:10px;font-weight:900;cursor:pointer}
.end-shop-top-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:10px;width:min(940px,100%);margin-top:16px;align-items:start}.end-shop-top-layout .weapon-end-shop{width:100%;margin-top:0}.end-loadout-card{padding:12px;border:1px solid #b9d96c;background:linear-gradient(135deg,rgba(27,55,51,.96),rgba(15,29,31,.96));text-align:left}.end-loadout-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border-bottom:1px solid #3c5a55;padding-bottom:9px}.end-loadout-head b{color:#f1d8a5;font-size:14px}.end-loadout-head small{color:#b9d96c;font-size:9px}.end-loadout-slots{display:grid;gap:7px;margin-top:10px}.end-loadout-slots button,.end-empty-slot{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:9px;background:#172f31;border:1px solid #3c6259;color:#dce9c8;text-align:left}.end-loadout-slots button{cursor:pointer}.end-loadout-slots button:hover{border-color:#f1b56d;background:#23433e}.end-loadout-slots span,.end-empty-slot span{color:#b9d96c;font-size:8px;letter-spacing:.12em}.end-loadout-slots strong,.end-empty-slot strong{color:#f4dfb4;font-size:12px}.end-loadout-slots small,.end-empty-slot small{color:#95aaa0;font-size:8px}.end-loadout-hint{margin-top:9px;color:#91a99d;font-size:8px;line-height:1.45}.end-weapon-catalog{margin-top:10px}.end-category-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:7px}.end-category-tabs button{padding:7px 5px;background:#15292c;border:1px solid #36544f;color:#98afa0;font:900 10px "Arial Narrow",sans-serif;cursor:pointer}.end-category-tabs button.is-active{background:#b9d96c;color:#152124;border-color:#dce9a2}.end-weapon-group{display:none;grid-template-columns:repeat(2,1fr);gap:6px}.end-weapon-group.is-active{display:grid}.end-weapon-group button{min-height:42px;padding:6px;background:#1c302f;border:1px solid #3e5c52;color:#dce9c8;font:900 9px "Arial Narrow",sans-serif;text-align:left;cursor:pointer}.end-weapon-group button:hover{border-color:#e5a65f}.end-weapon-group button.is-owned{background:#2e614e;color:#d8efbd}.end-weapon-group button.is-equipped{background:#b9d96c;color:#152124}.end-weapon-group i{display:block;margin-top:3px;color:#f1b56d;font-style:normal;font-size:8px}.end-ability-status{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:9px}.end-ability-status>div{display:flex;flex-direction:column;gap:3px;padding:6px;background:#162c2e;border-left:2px solid #b9d96c}.end-ability-status b{color:#f1d8a5;font-size:9px}.end-ability-status span{color:#d8edc7;font-size:8px}.end-ability-status i{color:#f1b56d;font-style:normal;font-size:8px}
@media (orientation:landscape) and (max-width:980px){.virtual-stick{width:108px;height:108px}.virtual-stick:before{inset:20px}.virtual-stick .stick-knob{width:40px;height:40px;margin:-20px}.move-stick{left:15%;bottom:18px}.aim-stick{right:15%;bottom:18px;width:108px;height:108px}.revive-panel{width:min(620px,88%);padding:12px 14px}.revive-panel strong{font-size:13px}.revive-panel .reward-button{font-size:9px}}
@media (max-width:760px){.end-shop-top-layout{grid-template-columns:1fr;gap:8px}.end-loadout-card{order:-1}.end-weapon-group{grid-template-columns:repeat(2,1fr)}.end-ability-status{grid-template-columns:repeat(2,1fr)}}

/* v16：护甲条与复活倒计时环 */
.armor-bar{display:none;position:relative;height:9px;margin:-7px 0 11px;border:1px solid rgba(190,224,225,.46);background:#1a3032;border-radius:2px;overflow:hidden}.armor-bar.is-active{display:block}.armor-bar i{display:block;height:100%;width:0;background:#72c7d5;box-shadow:0 0 8px currentColor;transition:width .12s}.armor-bar span{position:absolute;z-index:1;left:5px;top:-1px;color:#102124;font:900 7px/9px Arial,sans-serif}
.revive-ring{--revive-progress:0deg;position:relative;display:grid;place-items:center;flex:0 0 78px;width:78px;height:78px;border-radius:50%;background:conic-gradient(#b9d96c 0deg var(--revive-progress),#2b4743 var(--revive-progress) 360deg);animation:none}.revive-ring:after{content:"";position:absolute;inset:6px;border-radius:50%;background:#102628;border:1px solid #52706a}.revive-ring i{position:absolute;inset:13px;border:1px dashed rgba(185,217,108,.65);border-radius:50%;z-index:1}.revive-ring b{position:relative;z-index:2;color:#f7e3b2;font-size:16px;text-align:center;line-height:1.2}.revive-skip{position:absolute;right:6px;top:5px;width:24px;height:24px;padding:0;border:0;background:transparent;color:#e7b07c;font:900 23px/20px Arial;cursor:pointer}
.start-loadout-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}.secondary-button{padding:10px 13px;border:1px solid #547c7c;background:#203936;color:#b9d96c;font:900 10px "Arial Narrow",sans-serif;cursor:pointer}.pregame-loadout{position:fixed;inset:0;z-index:30;box-sizing:border-box;width:100vw;height:100dvh;max-height:none;margin:0;padding:clamp(18px,4vh,42px) clamp(16px,7vw,90px);display:flex;flex-direction:column;gap:10px;text-align:left;border:0;background:linear-gradient(135deg,rgba(10,24,27,.99),rgba(16,37,38,.98));overflow:hidden;overscroll-behavior:none;touch-action:none}.pregame-loadout-head{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;color:#f1d8a5;font-size:12px;padding-bottom:10px;border-bottom:1px solid #547c7c}.pregame-loadout-head b{font-size:clamp(16px,2.4vw,26px);letter-spacing:.08em}.pregame-loadout-head button{width:38px;height:38px;border:1px solid #547c7c;background:#203936;color:#e7b07c;font-size:22px;cursor:pointer}.pregame-loadout-foot{flex:0 0 auto;margin:0;color:#91aaa0;line-height:1.5}#pregameLoadoutContent{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding-right:5px;scrollbar-width:thin}.start-screen.loadout-open{padding:0;overflow:hidden}.start-screen.loadout-open> :not(#pregameLoadout){visibility:hidden}body.loadout-open{overflow:hidden!important}.pregame-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.pregame-slots>div{min-height:58px;padding:7px;background:#172f31;border-left:3px solid #b9d96c}.pregame-slots span{display:block;color:#b9d96c;font-size:8px}.pregame-slots b{display:block;margin-top:3px;color:#f4dfb4;font-size:11px}.pregame-slots small{display:block;margin-top:3px;color:#91aaa0;font-size:8px;line-height:1.25}.pregame-stats{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.pregame-stats span{padding:4px 6px;background:#203a38;color:#d8edc7;font-size:8px}.drop-expire{font:900 7px Arial,sans-serif;color:#ffe0b0}
@media (max-width:760px){.start-loadout-actions{gap:5px}.pregame-slots{grid-template-columns:1fr}.pregame-loadout{padding:14px 16px}.pregame-loadout-foot{font-size:9px}}
.pregame-owned{display:grid;gap:4px;margin-top:8px}.pregame-owned>b{color:#f1b56d;font-size:9px}.pregame-owned>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:6px;padding:5px 6px;background:#142a2d}.pregame-owned span{color:#dce9c8;font-size:9px}.pregame-owned small{color:#91aaa0;font-size:8px}.pregame-owned button{padding:4px 7px;border:1px solid #547c7c;background:#24443e;color:#b9d96c;font-size:8px;cursor:pointer}
/* 射击方向由人物朝向和弹道承担，不显示额外准心。 */
.crosshair{display:none!important}

/* 提示统一贴近底边，保留中间战场和地图可视区域。 */
.toast-layer{left:50%;bottom:8px;width:min(92%,620px);max-height:46px;overflow:hidden;z-index:20;gap:3px}
.toast{box-sizing:border-box;max-width:100%;padding:6px 11px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.pickup-prompt{bottom:8px;max-width:min(92%,360px);min-width:0;padding:7px 10px}
.pickup-prompt b{font-size:11px}.pickup-prompt small{font-size:8px}.pickup-prompt button{padding:6px 9px;font-size:9px}
.map-choice.is-locked{border-style:dashed;border-color:#53655f;background:#142326;color:#91a29a}
.map-choice.is-locked span{color:#a7b7a5}.map-choice.is-locked small{color:#d7a466}
.start-map-picker .map-choice.is-locked small{display:block;color:#d7a466;font-size:7px;line-height:1.2}
.map-ad-button{display:block;width:100%;margin:3px 0 6px;padding:5px 7px;border:1px solid #d7a466;background:#5b4031;color:#ffe0ad;font-size:8px;font-weight:900;cursor:pointer;text-align:center}
@media (orientation:landscape) and (max-width:980px){
  .toast-layer{bottom:6px;width:min(86%,520px)}
  .pickup-prompt{bottom:6px}
}

/* 手机必须横屏：竖屏只显示明确的旋转提示，避免把横屏战场缩成小窗口。 */
.orientation-hint{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:28px;background:#0b171b;color:#f1d8a5;text-align:center}
.orientation-hint strong{font:900 22px Impact,Arial,sans-serif;letter-spacing:.08em}.orientation-hint small{color:#b7c8b7;font-size:12px}
@media (pointer:coarse) and (orientation:portrait){
  html,body{width:100%;height:100%;overflow:hidden;background:#0b171b}
  .game-shell{display:none!important}.orientation-hint{display:flex}
}

/* 起始配置页自己的滚动区域，地图选择不会再被底部裁掉。 */
@media (orientation:landscape) and (max-width:980px){
  .start-screen{justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;padding:16px 6% 22px}
  .start-screen .start-map-picker{flex:0 0 auto;margin-bottom:8px}
  .start-screen .start-loadout-actions{flex:0 0 auto}
  .start-screen>small{flex:0 0 auto}
}

/* 商店从按钮打开为独立全屏页面，不挤压起始页，也不会隐藏底部分类。 */
.mobile-shop-close{display:none}
.side-panel.mobile-shop-open{display:flex;position:fixed;inset:0;z-index:40;width:100vw;height:100dvh;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:18px 7vw 26px;background:linear-gradient(135deg,#0a181b,#142b2d)}
.side-panel.mobile-shop-open .mobile-shop-close{display:block;position:sticky;top:0;align-self:flex-end;z-index:2;padding:8px 12px;border:1px solid #d7a466;background:#382d28;color:#ffe0b0;font:900 11px Arial,sans-serif;cursor:pointer}
.side-panel.mobile-shop-open .shop-card,.side-panel.mobile-shop-open .weapon-card,.side-panel.mobile-shop-open .map-card,.side-panel.mobile-shop-open .enemy-card{width:min(760px,100%);margin-inline:auto}
@media (orientation:landscape) and (max-width:980px){
  .side-panel.mobile-shop-open{height:100svh}
}

/* 所有提示都限制在战场内，长文本自动换行，不再从屏幕下沿弹出去。 */
.toast-layer{bottom:max(18px,env(safe-area-inset-bottom));width:min(92%,620px);max-height:72px;padding-inline:4px}
.toast{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}
@media (pointer:coarse) and (orientation:landscape){.toast-layer{bottom:max(16px,env(safe-area-inset-bottom));width:min(82%,620px)}}

/* 手机横屏完整显示 16:9 战场：使用 contain，避免 cover 把地图上沿和下沿裁掉。 */
@media (orientation:landscape) and (max-width:980px){
  .arena{background:#081316;}
  .arena #gameCanvas,body.mobile-combat-mode .arena #gameCanvas{
    display:block;
    width:100vw!important;
    height:100svh!important;
    min-height:0!important;
    margin:0 auto;
    object-fit:fill!important;
    object-position:center center!important;
  }
}
