*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%}
body{background:#0a0b10;overflow:hidden;font-family:'Segoe UI',Arial,sans-serif;user-select:none;-webkit-user-select:none;cursor:crosshair}
canvas{display:block;position:fixed;top:0;left:0;width:100%;height:100%}
#gc{background:transparent}
#three-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}
#mm{position:static;width:300px;height:188px;border-radius:7px}
#ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
#sb{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:20px;align-items:center;background:rgba(0,0,0,0.75);padding:6px 20px;border-radius:8px;border:1px solid rgba(255,255,255,0.12);z-index:10;white-space:nowrap}
.ts{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:bold;flex-shrink:0}
.sl{white-space:nowrap}
.ts.blue{color:#4fc3f7}.ts.red{color:#ef5350}
.sd{color:#666;font-size:16px;flex-shrink:0}
.sn{font-size:20px}
.sl{font-size:12px;opacity:0.7;margin-left:2px;white-space:nowrap}
#gs{color:#fff;font-size:13px;padding:2px 14px;background:rgba(255,255,255,0.08);border-radius:4px;pointer-events:auto;cursor:pointer;white-space:nowrap;flex-shrink:0}
#cd{font-family:'Consolas','Courier New',monospace;font-size:15px;font-weight:bold;color:#64ffda;margin-left:6px;letter-spacing:1px}
#kf{position:absolute;top:50px;left:15px;display:flex;flex-direction:column;gap:2px;z-index:10;pointer-events:none;max-height:300px;overflow:hidden}
.kfe{color:#fff;font-size:12px;padding:3px 10px;background:rgba(0,0,0,0.7);border-radius:4px;border-left:3px solid #888;animation:kfIn 0.2s ease-out;white-space:nowrap}
.kfe.blueKill{border-left-color:#4fc3f7}
.kfe.redKill{border-left-color:#ef5350}
.kfe.fade{opacity:0;transition:opacity 0.5s}
@keyframes kfIn{from{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}
#kfh{color:rgba(255,255,255,0.4);font-size:10px;margin-bottom:2px;letter-spacing:1px}
#hb{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:row;align-items:center;gap:12px;z-index:10;background:rgba(0,0,0,0.65);padding:6px 18px;border-radius:10px;border:1px solid rgba(255,255,255,0.1)}
#hbl{color:#fff;font-size:11px;opacity:0.7;white-space:nowrap}
#hbb{width:160px;height:10px;background:rgba(0,0,0,0.6);border-radius:5px;overflow:hidden;border:1px solid rgba(255,255,255,0.15);flex-shrink:0}
#hbf{width:100%;height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:5px;transition:width 0.15s}
#kd{color:#fff;font-size:12px;opacity:0.7;white-space:nowrap}
#kd span{color:#ef5350;font-weight:bold}
#ad{position:absolute;bottom:56px;left:50%;transform:translateX(-50%);color:#fff;font-size:16px;font-weight:bold;text-shadow:0 0 8px rgba(0,0,0,0.8);z-index:10;background:rgba(0,0,0,0.5);padding:4px 14px;border-radius:6px}
#ad span{color:#ff9800}
#sw,#me{position:absolute;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:bold;text-shadow:0 0 8px rgba(0,0,0,0.8);z-index:10;background:rgba(0,0,0,0.4);padding:2px 10px;border-radius:4px;display:none;pointer-events:none;white-space:nowrap}
#sw{bottom:86px}#me{bottom:108px}
#sw.rpg{color:#ff5722}#sw.grenade{color:#ffc107}#sw.weld{color:#ffab00}#sw.medkit{color:#69f0ae}#sw.smoke{color:#aaddff}#sw.shield{color:#66bbff}
#tw{position:absolute;left:50%;transform:translateX(-50%);color:#f44336;font-size:14px;font-weight:bold;text-shadow:0 0 12px rgba(244,67,54,0.6);z-index:10;display:none;pointer-events:none;white-space:nowrap;animation:warnBlink 0.4s ease-in-out infinite alternate}
#tw.dang{bottom:136px}
@keyframes warnBlink{from{opacity:0.3}to{opacity:1}}
@media(max-width:860px){#sw{bottom:60px;font-size:10px;padding:1px 6px}#me{bottom:78px;font-size:10px;padding:1px 6px}#tw.dang{bottom:100px;font-size:11px}}
#mmc{position:fixed;top:52px;right:12px;background:rgba(0,0,0,0.85);border-radius:10px;padding:6px;border:1px solid rgba(255,255,255,0.15);z-index:10;box-shadow:0 4px 20px rgba(0,0,0,0.5)}
#mm{border-radius:7px;display:block;width:300px;height:188px}
#go{position:absolute;top:0;left:0;width:100%;height:100%;display:none;justify-content:center;align-items:center;background:rgba(0,0,0,0.75);pointer-events:auto;z-index:20}
#gob{text-align:center;padding:35px 55px;background:rgba(12,14,25,0.97);border-radius:14px;border:1px solid rgba(255,140,0,0.15)}
#got{font-size:42px;font-weight:bold;margin-bottom:8px}
#got.win{color:#ff8c00}#got.lose{color:#ef5350}
#gos{color:rgba(255,255,255,0.5);font-size:16px;margin-bottom:6px}
#gost{color:rgba(255,255,255,0.5);font-size:14px;margin-bottom:22px;line-height:1.7}
#gost span{color:#ff8c00;font-weight:bold}
#rb{pointer-events:auto;padding:10px 35px;font-size:16px;background:linear-gradient(135deg,#e65c00,#ff8c00);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:bold;letter-spacing:4px;transition:transform 0.15s}
#rb:hover{transform:scale(1.05);box-shadow:0 0 20px rgba(255,106,0,0.4)}
/* 据点状态条（战地风云风格） */
#cpStatus {
  position: absolute;
  top: 52px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 10;
  pointer-events: none;
}
.cp-indicator {
  display: flex;
  align-items: center;
  gap: 5px;
  background: rgba(0,0,0,0.7);
  border-radius: 6px;
  padding: 3px 10px;
  border: 1px solid rgba(255,255,255,0.08);
  min-width: 70px;
  height: 22px;
  transition: border-color 0.2s;
}
.cp-indicator.contested {
  border-color: #ffeb3b;
  box-shadow: 0 0 8px rgba(255,235,59,0.3);
}
.cp-icon {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,0.2);
}
.cp-icon.neutral { background: #666; }
.cp-icon.blue { background: #4fc3f7; }
.cp-icon.red { background: #ef5350; }
.cp-name {
  color: rgba(255,255,255,0.7);
  font-size: 9px;
  white-space: nowrap;
  flex-shrink: 0;
}
.cp-progress {
  flex: 1;
  min-width: 28px;
  height: 4px;
  background: rgba(255,255,255,0.12);
  border-radius: 2px;
  overflow: hidden;
}
.cp-progress-bar {
  height: 100%;
  border-radius: 2px;
  transition: width 0.1s ease;
  width: 0%;
}
.cp-progress-bar.capturing-blue { background: linear-gradient(90deg, #4fc3f7, #29b6f6); }
.cp-progress-bar.capturing-red { background: linear-gradient(90deg, #ef5350, #e53935); }
.cp-progress-bar.owned-blue { background: #4fc3f7; opacity: 0.4; }
.cp-progress-bar.owned-red { background: #ef5350; opacity: 0.4; }

#ch{position:absolute;top:72px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.35);font-size:12px;background:rgba(0,0,0,0.4);padding:3px 14px;border-radius:4px;z-index:10;pointer-events:none}
#tp{position:absolute;bottom:96px;left:50%;transform:translateX(-50%);color:#4fc3f7;font-size:15px;background:rgba(0,0,0,0.75);padding:8px 22px;border-radius:8px;border:1px solid rgba(79,195,247,0.4);z-index:10;pointer-events:none;display:none;text-shadow:0 0 8px rgba(79,195,247,0.3)}
/* ========== 菜单页：战地风云军事主题 ========== */
#ls{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:100;overflow:hidden}
/* 动态背景层 */
.ls-bg{position:absolute;inset:0;
  background:url(../assets/menu-bg.png) center/cover no-repeat;
  pointer-events:none}
.ls-bg::before{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,8,12,0.6) 0%,rgba(10,8,12,0.5) 40%,rgba(10,8,12,0.65) 100%);
  pointer-events:none}
.ls-bg::after{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,0.015) 2px,rgba(255,255,255,0.015) 4px);
  pointer-events:none}
/* 内容区 */
.ls-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:0;max-width:580px;width:100%;padding:0 20px}
/* 标题区 */
.ls-header{text-align:center;margin-bottom:20px}
.ls-subtitle{font-size:10px;letter-spacing:5px;color:rgba(255,255,255,0.3);margin-bottom:10px;font-weight:600}
#ls h1{color:#ff8c00;font-size:42px;margin:0;letter-spacing:8px;font-weight:900;text-transform:uppercase;
  text-shadow:0 0 30px rgba(255,106,0,0.3),0 2px 4px rgba(0,0,0,0.8)}
#ls p,.ls-desc{color:rgba(255,255,255,0.5);font-size:13px;margin-top:8px;line-height:1.6}
/* 设置面板卡片 */
.ls-panel{background:rgba(15,17,28,0.85);border:1px solid rgba(255,255,255,0.08);border-radius:10px;
  padding:20px 28px;margin-bottom:16px;width:100%;
  box-shadow:0 4px 30px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.03)}
.ls-section-title{text-align:center;color:rgba(255,255,255,0.5);font-size:12px;letter-spacing:4px;
  margin-bottom:16px;font-weight:600}
.ls-bracket{color:#ff8c00;opacity:0.6}
.ls-divider{display:flex;align-items:center;gap:12px;margin:14px 0 12px 0;color:rgba(255,255,255,0.3);font-size:11px;letter-spacing:3px;font-weight:600}
.ls-divider::before,.ls-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.08)}
.ls-divider span{flex-shrink:0}
/* 参数输入 */
.sr{display:flex;gap:20px;justify-content:center;margin-bottom:0;flex-wrap:wrap}
.sg{display:flex;flex-direction:column;align-items:center;gap:4px}
.sg label{font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:1px;font-weight:600}
.sg input{width:80px;padding:6px 8px;border-radius:6px;
  border:1px solid rgba(255,255,255,0.1);background:rgba(0,0,0,0.5);color:#ff8c00;
  font-size:18px;text-align:center;font-weight:bold;outline:none;letter-spacing:1px;
  transition:border-color 0.2s}
.sg input:focus{border-color:#ff8c00;box-shadow:0 0 12px rgba(255,106,0,0.2)}
/* 地图选择按钮 */
.map-opts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.map-btn{padding:7px 18px;font-size:12px;
  border:1px solid rgba(255,255,255,0.1);border-radius:5px;
  cursor:pointer;background:rgba(255,255,255,0.03);color:rgba(255,255,255,0.5);
  transition:all 0.2s;font-weight:600;letter-spacing:1px}
.map-btn:hover{border-color:rgba(255,255,255,0.3);background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.85)}
.map-btn.sel{border-color:#ff8c00;background:rgba(255,140,0,0.12);color:#ff8c00;
  box-shadow:0 0 10px rgba(255,140,0,0.15)}
/* 模式按钮 */
.modes{display:flex;gap:16px}
.mode-btn{padding:16px 40px;font-size:18px;border:none;border-radius:6px;
  cursor:pointer;pointer-events:auto;font-weight:700;letter-spacing:4px;
  transition:all 0.25s;text-align:center;min-width:200px}
.mode-btn:hover{transform:translateY(-2px)}
.mode-btn.pvp{background:linear-gradient(135deg,#e65c00,#ff8c00);color:#fff;
  box-shadow:0 4px 24px rgba(255,106,0,0.3)}
.mode-btn.pvp:hover{box-shadow:0 6px 32px rgba(255,106,0,0.5);background:linear-gradient(135deg,#ff6a00,#ff9a20)}
.mode-btn.aivai{background:transparent;color:rgba(255,255,255,0.6);
  border:1px solid rgba(255,255,255,0.15)}
.mode-btn.aivai:hover{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.35);color:#fff;
  box-shadow:0 0 20px rgba(255,255,255,0.05)}
.mode-btn small{display:block;font-size:10px;font-weight:400;opacity:0.65;margin-top:6px;letter-spacing:1px}
/* 死亡兵种选择浮层 */
#dcs{position:absolute;top:0;left:0;width:100%;height:100%;display:none;justify-content:center;align-items:center;z-index:18;pointer-events:auto}
#dcsBg{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.55);pointer-events:none}
#dcsPanel{position:relative;background:linear-gradient(145deg,#181c2a,#0f1220);border-radius:14px;
  border:1px solid rgba(255,140,0,0.15);padding:24px 20px;min-width:340px;max-width:420px;
  box-shadow:0 8px 40px rgba(0,0,0,0.6);pointer-events:auto}
#dcsHd{text-align:center;font-size:18px;font-weight:700;color:#fff;margin-bottom:8px;letter-spacing:2px}
#dcsTimer{text-align:center;font-size:13px;color:#ff9800;margin-bottom:14px}
#dcsT{font-weight:700}
#dcsGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.dcs-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;
  border:1px solid rgba(255,255,255,0.08);border-radius:10px;background:rgba(255,255,255,0.03);
  cursor:pointer;transition:all 0.2s;color:#ccc}
.dcs-btn:hover{border-color:#ff9800;background:rgba(255,152,0,0.12);color:#fff;transform:scale(1.05);
  box-shadow:0 0 16px rgba(255,152,0,0.15)}
.dcs-btn:active{transform:scale(0.97)}
.dcs-badge{font-size:24px;line-height:1}
.dcs-name{font-size:13px;font-weight:600;color:#eee}
.dcs-tag{font-size:9px;color:#999;letter-spacing:0.5px}
/* 战绩面板 */
#spOv{position:absolute;top:0;left:0;width:100%;height:100%;display:none;justify-content:center;align-items:center;background:rgba(0,0,0,0.6);pointer-events:auto;z-index:30}
#sp{background:rgba(12,14,25,0.97);border-radius:12px;border:1px solid rgba(255,140,0,0.12);padding:20px 24px;min-width:380px;max-width:460px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.5)}
#sp::-webkit-scrollbar{width:4px}
#sp::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
#sph{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,140,0,0.12)}
#sph h2{color:#ff8c00;font-size:17px;letter-spacing:1px}
#spc{color:rgba(255,255,255,0.4);font-size:20px;cursor:pointer;padding:0 6px;transition:color 0.15s;line-height:1}
#spc:hover{color:#ff8c00}
.sp-th{font-size:13px;font-weight:bold;margin:10px 0 6px 0;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,0.06)}
.sp-th.blue{color:#4fc3f7}.sp-th.red{color:#ef5350}
.sp-r{display:flex;align-items:center;padding:4px 6px;border-radius:4px;margin-bottom:1px;font-size:12px;transition:background 0.1s}
.sp-r:hover{background:rgba(255,140,0,0.06)}
.sp-r .name{width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,0.85)}
.sp-r .kd{width:62px;text-align:center;color:#ffab40;font-weight:bold;font-size:11px}
.sp-r .status{width:36px;text-align:center;font-size:10px}
.sp-r .status.alive{color:#4caf50}.sp-r .status.dead{color:#ef5350}
.sp-me{background:rgba(255,140,0,0.08);border-left:2px solid #ff8c00}
.sp-hdr{display:flex;align-items:center;padding:2px 6px;margin-bottom:4px;font-size:10px;color:rgba(255,255,255,0.35)}
.sp-hdr .name{width:100px}.sp-hdr .kd{width:62px;text-align:center}.sp-hdr .status{width:36px;text-align:center}
#spEmp{color:rgba(255,255,255,0.25);font-size:12px;text-align:center;padding:20px 0}
/* === 移动端虚拟控件 === */
#mctrl{display:none;position:fixed;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:25}
/* 虚拟摇杆区域 */
#joyZone{position:absolute;bottom:50px;left:20px;width:160px;height:160px;pointer-events:auto}
#joyBase{position:relative;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.08);border:2px solid rgba(255,255,255,0.2);box-shadow:0 0 20px rgba(0,0,0,0.4);margin:10px}
#joyThumb{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.45),rgba(255,255,255,0.15));border:2px solid rgba(255,255,255,0.35);box-shadow:0 2px 10px rgba(0,0,0,0.3);transition:none}
/* 右摇杆（瞄准） */
#aimZone{position:absolute;bottom:50px;right:100px;width:160px;height:160px;pointer-events:auto}
#aimBase{position:relative;width:140px;height:140px;border-radius:50%;background:rgba(255,80,80,0.08);border:2px solid rgba(255,80,80,0.2);box-shadow:0 0 20px rgba(0,0,0,0.4);margin:10px}
#aimThumb{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,rgba(255,100,100,0.45),rgba(255,60,60,0.15));border:2px solid rgba(255,80,80,0.35);box-shadow:0 2px 10px rgba(0,0,0,0.3);transition:none}
/* 移动端按钮 */
#mBtns{position:absolute;bottom:50px;right:16px;display:flex;flex-direction:column;gap:16px;pointer-events:auto}
.mBtn{width:60px;height:60px;border-radius:50%;border:2px solid rgba(255,255,255,0.25);background:rgba(255,255,255,0.1);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:0 4px 15px rgba(0,0,0,0.4);transition:background 0.1s}
.mBtn:active,.mBtn.pressed{background:rgba(255,255,255,0.3);border-color:rgba(255,255,255,0.5)}
#mBtnFM{color:#ff9800;font-size:20px}
#mBtnFM.manual{background:rgba(100,200,255,0.2);border-color:rgba(100,200,255,0.5);color:#4fc3f7}
#mBtnR{color:#ff9800}
#mBtnE{color:#4fc3f7}
#mBtnG{font-size:14px;color:#fff}

/* === 响应式：移动端/小屏 (≤860px) === */
@media(max-width:860px){
  /* 显示虚拟控件 */
  #mctrl{display:block}
  /* 隐藏队伍战绩面板（左下/右下） */
  #spOv{display:none!important}
  /* 缩小迷你地图 */
  #mmc{transform:scale(0.55);transform-origin:top right;top:48px;right:2px}
  /* 缩小顶栏 */
  #sb{top:4px;padding:4px 10px;gap:10px}
  #sb .ts{font-size:12px;gap:4px}
  #sb .sn{font-size:16px}
  #sb .sl{font-size:10px}
  #sb .sd{font-size:14px}
  #cd{font-size:12px}
  #gs{font-size:10px;padding:2px 8px}
  /* 控制点提示缩小 */
  #cpStatus{top:44px;gap:4px}
  .cp-indicator{min-width:50px;padding:2px 6px;height:18px;gap:3px}
  .cp-icon{width:8px;height:8px}
  .cp-name{font-size:7px}
  .cp-progress{min-width:16px;height:3px}
  #ch{font-size:9px;top:56px;padding:2px 8px}
  #tp{font-size:11px;bottom:70px;padding:5px 14px}
  /* 血条缩小 */
  #hb{bottom:8px;padding:4px 12px;gap:8px;border-radius:8px}
  #hbl{font-size:9px}
  #hbb{width:100px;height:8px}
  #kd{font-size:10px}
  #ad{bottom:38px;font-size:12px;padding:3px 10px}
  /* 击杀记录缩小 */
  #kf{top:38px;left:4px}
  #kfh{font-size:8px}
  .kfe{font-size:10px;padding:2px 7px}
  /* 结算面板适应小屏 */
  #sp{min-width:auto;max-width:95vw;padding:14px 16px}
  #sph h2{font-size:14px}
  .sp-r .name{width:70px}
  .sp-r .kd{width:50px}
  /* 开始界面适应 */
  #ls h1{font-size:30px;letter-spacing:4px}
  .ls-subtitle{font-size:8px;letter-spacing:3px}
  #ls p,.ls-desc{font-size:11px}
  .modes{flex-direction:column;gap:12px}
  .mode-btn{padding:14px 24px;font-size:16px;min-width:200px;letter-spacing:2px}
  /* 死亡兵种选择浮层 - 移动端适配 */
  #dcsPanel{padding:16px 12px;max-height:90vh}
  #dcsHd{font-size:15px;margin-bottom:6px}
  #dcsTimer{font-size:11px;margin-bottom:10px}
  #dcsGrid{gap:6px}
  .dcs-btn{padding:8px 6px;min-width:70px}
  .dcs-badge{font-size:20px}
  .dcs-name{font-size:11px}
  .dcs-tag{font-size:8px}
  .map-opts{flex-direction:column;gap:4px;align-items:center}
  .map-btn{padding:6px 14px;font-size:11px;width:180px;text-align:center}
  .ls-panel{padding:14px 18px}
  .sr{gap:16px}
  #gob{padding:25px 35px}
  #got{font-size:30px}
  #gos{font-size:14px}
  #gost{font-size:12px}
  #rb{padding:8px 28px;font-size:14px}
  #rm{padding:8px 18px;font-size:13px;margin-left:8px}
}

/* 小屏(≤860px) 右摇杆缩小 */
@media(max-width:860px){
  #aimZone{bottom:50px;right:80px;width:130px;height:130px}
  #aimBase{width:110px;height:110px;margin:10px}
  #aimThumb{width:44px;height:44px}
}
/* === 较小屏 (≤500px) === */
@media(max-width:500px){
  #joyZone{bottom:30px;left:8px;width:130px;height:130px}
  #joyBase{width:110px;height:110px;margin:10px}
  #joyThumb{width:44px;height:44px}
  #aimZone{bottom:30px;right:70px;width:110px;height:110px}
  #aimBase{width:90px;height:90px;margin:10px}
  #aimThumb{width:38px;height:38px}
  #mBtns{bottom:30px;right:8px;gap:12px}
  .mBtn{width:50px;height:50px;font-size:22px}
  #cpStatus{top:40px;gap:3px;transform:translateX(-50%) scale(0.85)}
  .cp-indicator{min-width:40px;padding:1px 4px;height:15px;gap:2px}
  .cp-icon{width:6px;height:6px}
  .cp-name{font-size:6px}
  .cp-progress{min-width:12px;height:2px}
  #mmc{transform:scale(0.40);transform-origin:top right;top:44px;right:0}
  #sb{top:2px;padding:3px 6px;gap:6px;border-radius:6px}
  #sb .ts{font-size:10px}
  #sb .sn{font-size:14px}
  #sb .sd{font-size:12px}
}
/* 移动端横屏：缩小控件，释放视野 */
@media(orientation:landscape) and (max-width:860px){
  #joyZone{bottom:20px;left:10px;width:140px;height:140px}
  #joyBase{width:120px;height:120px}
  #aimZone{bottom:20px;right:80px;width:130px;height:130px}
  #aimBase{width:110px;height:110px}
  #mBtns{bottom:20px;right:10px;gap:12px}
}
/* 移动端横屏：菜单版面缩小适配，允许滚动 */
@media(orientation:landscape) and (max-width:860px){
  #ls{overflow-y:auto;overflow-x:hidden;align-items:flex-start;padding-top:8px;padding-bottom:20px;background:rgba(10,8,12,0.93)}
  #ls::-webkit-scrollbar{width:3px}
  #ls::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
  .ls-inner{max-height:100vh;padding:0 12px}
  .ls-header{margin-bottom:6px}
  .ls-subtitle{font-size:7px;letter-spacing:2px;margin-bottom:3px}
  #ls h1{font-size:20px;letter-spacing:2px}
  #ls p,.ls-desc{font-size:10px;margin-top:3px}
  .ls-panel{padding:8px 12px;margin-bottom:6px}
  .ls-section-title{font-size:10px;margin-bottom:6px}
  .ls-divider{margin:6px 0 4px 0;font-size:9px}
  .sr{gap:8px}
  .sg input{width:56px;padding:3px 5px;font-size:13px}
  .sg label{font-size:9px}
  .map-opts{flex-direction:column;gap:3px;align-items:center}
  .map-btn{padding:4px 10px;font-size:10px;width:140px;text-align:center}
  .modes{flex-direction:column;gap:6px}
  .mode-btn{padding:7px 14px;font-size:13px;min-width:140px;letter-spacing:2px}
  .mode-btn small{font-size:8px;margin-top:2px}
  .menu-help-wrap{margin-top:4px}
  .menu-help-btn{padding:4px 14px;font-size:11px}
}

/* === 移动端 AI 观战战绩面板（左右两侧） === */
.team-panel {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 15;
  pointer-events: none;
  background: rgba(12,14,25,0.88);
  border-radius: 6px;
  padding: 8px 10px;
  min-width: 120px;
  max-width: 140px;
  border: 1px solid rgba(255,255,255,0.08);
  font-size: 10px;
  line-height: 1.4;
}
.team-panel.blue-panel { left: 4px; border-left: 3px solid #4fc3f7; }
.team-panel.red-panel { right: 4px; border-right: 3px solid #ef5350; }
.team-panel .tp-title { display: flex; align-items: center; gap: 4px; font-weight: bold; font-size: 11px; margin-bottom: 4px; padding-bottom: 3px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.team-panel .tp-title.blue-title { color: #4fc3f7; }
.team-panel .tp-title.red-title { color: #ef5350; }
.team-panel .tp-stats { color: rgba(255,255,255,0.65); font-size: 9px; margin-bottom: 4px; }
.team-panel .tp-row { display: flex; justify-content: space-between; padding: 1px 0; color: rgba(255,255,255,0.85); }
.team-panel .tp-row .tp-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.team-panel .tp-row .tp-kd { color: #ffab40; margin: 0 4px; font-weight: bold; font-size: 9px; }
.team-panel .tp-row .tp-status { width: 12px; text-align: center; font-size: 9px; }
.team-panel .tp-row .tp-status.alive { color: #4caf50; }
.team-panel .tp-row .tp-status.dead { color: #ef5350; }
.team-panel .tp-tank { color: rgba(255,255,255,0.5); font-size: 8px; margin-top: 3px; padding-top: 3px; border-top: 1px solid rgba(255,255,255,0.05); }
/* 折叠/展开切换按钮 */
.tp-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  pointer-events: auto;
  cursor: pointer;
  color: rgba(255,255,255,0.4);
  font-size: 8px;
  flex-shrink: 0;
  user-select: none;
  -webkit-user-select: none;
  transition: color 0.15s;
  line-height: 1;
  border-radius: 3px;
}
.tp-toggle:hover { color: #fff; background: rgba(255,255,255,0.1); }
.team-panel.collapsed .tp-content { display: none; }
.team-panel.collapsed {
  min-width: auto;
  max-width: none;
  width: auto;
  padding: 4px 6px;
}
.team-panel.collapsed .tp-title {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  font-size: 10px;
}
/* 小屏缩小战绩面板 */
@media(max-width:500px){
  .team-panel { min-width:90px; max-width:105px; padding:5px 7px; font-size:8px; }
  .team-panel.collapsed { min-width:auto; max-width:none; padding:3px 5px; }
  .team-panel .tp-title { font-size:9px; }
  .team-panel.collapsed .tp-title { font-size:8px; }
  .team-panel .tp-stats { font-size:7px; }
  .team-panel .tp-row .tp-name { font-size:7px; }
  .team-panel .tp-row .tp-kd { font-size:7px; margin:0 2px; }
  .team-panel .tp-row .tp-status { font-size:7px; width:10px; }
  .team-panel .tp-tank { font-size:7px; }
}
@media(orientation:landscape) and (max-width:860px){
  .team-panel { min-width:130px; max-width:150px; }
}

/* === 返回游戏大厅链接 === */
.back-link{
  cursor:pointer;
  position:fixed;top:12px;left:12px;z-index:200;
  color:rgba(255,255,255,0.4);font-size:13px;text-decoration:none;
  padding:5px 14px;border-radius:5px;
  background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.08);
  transition:all 0.2s;pointer-events:auto;
}
.back-link:hover{color:#ff8c00;background:rgba(255,140,0,0.1);border-color:rgba(255,140,0,0.3)}

/* === 菜单游戏说明按钮 === */
.menu-help-wrap{text-align:center;margin-top:8px}
.menu-help-btn{
  background:transparent;border:1px solid rgba(255,140,0,0.2);border-radius:4px;
  color:rgba(255,255,255,0.45);font-size:13px;padding:6px 22px;
  cursor:pointer;pointer-events:auto;font-family:'Segoe UI',Arial,sans-serif;
  transition:all 0.2s;letter-spacing:2px
}
.menu-help-btn:hover{color:#ff8c00;border-color:rgba(255,140,0,0.4);background:rgba(255,140,0,0.08)}
/* === 帮助弹窗 === */
#helpOv{
  position:absolute;top:0;left:0;width:100%;height:100%;
  display:none;justify-content:center;align-items:center;
  background:rgba(0,0,0,0.6);pointer-events:auto;z-index:200
}
#helpBox{
  background:rgba(12,14,25,0.98);border-radius:12px;
  border:1px solid rgba(255,140,0,0.12);
  padding:0;min-width:380px;max-width:520px;
  max-height:85vh;overflow:hidden;
  box-shadow:0 8px 40px rgba(0,0,0,0.5);
  display:flex;flex-direction:column
}
#helpHead{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 22px 12px 22px;
  border-bottom:1px solid rgba(255,140,0,0.15);
  flex-shrink:0
}
#helpHead h2{color:#ff8c00;font-size:17px;letter-spacing:1px;margin:0}
#helpClose{color:rgba(255,255,255,0.4);font-size:20px;cursor:pointer;padding:0 6px;transition:color 0.15s;line-height:1}
#helpClose:hover{color:#ff8c00}
#helpContent{
  padding:14px 22px 22px 22px;overflow-y:auto;flex:1;
  color:rgba(255,255,255,0.85);font-size:13px;line-height:1.7
}
#helpContent::-webkit-scrollbar{width:4px}
#helpContent::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
#helpContent h3{color:#ff8c00;font-size:14px;margin:14px 0 6px 0;border-bottom:1px solid rgba(255,140,0,0.15);padding-bottom:3px}
#helpContent h3:first-child{margin-top:0}
#helpContent p{margin:4px 0 8px 0;color:rgba(255,255,255,0.7)}
#helpContent b{color:#fff}
#helpContent ul{margin:4px 0 8px 18px;padding:0}
#helpContent li{margin-bottom:3px;color:rgba(255,255,255,0.7)}
/* 帮助表格 */
.help-table{width:100%;border-collapse:collapse;margin:6px 0 8px 0;font-size:12px}
.help-table th,.help-table td{
  border:1px solid rgba(255,255,255,0.08);padding:4px 8px;
  text-align:left;color:rgba(255,255,255,0.7)
}
.help-table th{background:rgba(255,140,0,0.1);color:#ff8c00;font-weight:bold;white-space:nowrap}
.help-table td b{color:#ffab40}
.help-list{margin:4px 0 8px 18px;padding:0}
.help-list li{margin-bottom:4px;color:rgba(255,255,255,0.7);line-height:1.6}
.help-list li b{color:#fff}
/* 小屏适配 */
@media(max-width:860px){
  #helpBox{min-width:auto;max-width:92vw;max-height:80vh}
  #helpHead{padding:12px 16px 10px 16px}
  #helpHead h2{font-size:15px}
  #helpContent{padding:10px 16px 16px 16px;font-size:12px}
  .help-table{font-size:11px}
  .help-table th,.help-table td{padding:3px 6px}
}
@media(max-width:500px){
  #helpBox{max-height:75vh}
  #helpContent h3{font-size:13px}
}
/* === 丧尸模式 HUD 动画 === */
@keyframes zheroPulse{0%,100%{opacity:0.6;text-shadow:0 0 10px #ffcc00}50%{opacity:1;text-shadow:0 0 20px #ffcc00,0 0 30px #ff6600}}
#zhud .zombie-flash{animation:zFlash 0.3s ease-out}
@keyframes zFlash{0%{background:rgba(180,20,10,0.5)}100%{background:rgba(0,0,0,0.75)}}


