
/* 得意黑 Smiley Sans (OFL 1.1 开源可商用) —— 主界面标题/按钮展示字体，斜体带冲劲，贴合热血海报 */
@font-face{
  font-family:'SmileySans';
  src:url('猫鼠卡牌素材/字体/SmileySans-Oblique.woff2?v=1') format('woff2');
  font-weight:400 900;
  font-style:normal;
  font-display:swap;
}

/* ═══════════ 设备自适应核心: 根字号变量 --fs (随设备/横竖屏变化) ═══════════ */
:root{
  --fs:16px;              /* 桌面默认 */
  --fs-min:11px;
  --fs-max:18px;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
  /* Emil 品味：统一动画曲线（ease-out 强曲线 / 屏上移动 / iOS 抽屉） */
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
}
/* 所有用 min(Xvw,Ypx) 的地方改为基于 --fs, 手机横屏不再过小、竖屏不再过大 */
/* 字号绝对值统一走 --fs 缩放, 保证"均衡不挤" */
html{font-size:var(--fs)}
body{font-size:var(--fs)}
html,body{max-width:100%;overflow-x:hidden} /* 08-15: 全界面禁横向滚动 */

/* 电脑宽屏横屏(>900高): 全默认 */
/* 平板横屏(高<=900): 压缩但均衡 */
/* 手机横屏(高<=560): 极度紧凑但可点 */
/* 手机竖屏(portrait 或 宽<=820): 上下结构 */

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;min-width:100vw;min-height:100vh;max-width:100vw;overflow:hidden;touch-action:manipulation;font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#fff;background:#0f0c29}
body{background:radial-gradient(ellipse at top,#1a1a4a 0%,#0f0c29 55%,#3a1a1a 100%);background-size:cover;background-attachment:fixed;background-color:#0f0c29}
#bg{position:fixed;inset:-25%;z-index:0;pointer-events:none;background:
  radial-gradient(1px 1px at 20% 30%,#fff,transparent 60%),
  radial-gradient(1px 1px at 70% 20%,#cfe,transparent 60%),
  radial-gradient(1.5px 1.5px at 40% 70%,#ffd,transparent 60%),
  radial-gradient(1px 1px at 85% 60%,#fff,transparent 60%),
  radial-gradient(1px 1px at 55% 85%,#cfe,transparent 60%),
  radial-gradient(1.5px 1.5px at 10% 80%,#fff,transparent 60%),
  radial-gradient(1px 1px at 90% 90%,#ffd,transparent 60%),
  radial-gradient(1px 1px at 30% 15%,#fff,transparent 60%),
  radial-gradient(1px 1px at 60% 45%,#cfe,transparent 60%),
  radial-gradient(1.5px 1.5px at 80% 35%,#fff,transparent 60%)}
#bg::after{content:'';position:absolute;inset:-20%;background:
  radial-gradient(1px 1px at 15% 65%,#fff,transparent 60%),
  radial-gradient(1px 1px at 45% 25%,#ffd,transparent 60%),
  radial-gradient(1.5px 1.5px at 65% 75%,#cfe,transparent 60%),
  radial-gradient(1px 1px at 95% 45%,#fff,transparent 60%);
  animation:starDrift 90s linear infinite}
@keyframes starDrift{from{transform:translateY(0)}to{transform:translateY(20%)}}
#fx{position:fixed;inset:0;z-index:6;pointer-events:none}
#app{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column}
.hidden{display:none!important}
.btn{cursor:pointer;user-select:none;transition:transform .12s}
.btn:active{transform:scale(.93)}
.btn:disabled{filter:grayscale(1);opacity:.5;cursor:not-allowed}
/* ═══════════ Emil 品味：弹窗统一入场动画（遮罩淡入 + 面板从 0.95 缩放长出） ═══════════ */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes tutFade{from{opacity:0}to{opacity:1}} /* v08-178: 教学气泡纯淡入，不位移，避免先出现在错误位置 */
#moreModal,#labModal,#ruleModal,#lyricsModal,#settingsModal,#battleSetModal,#devAudioModal,#skinModal,#charInfoModal,#boxModal,#resultScreen,#skinReviewModal{animation:fadeIn .2s ease-out}
#moreModal>*,#labModal>*,#ruleModal>*,#lyricsModal>*,#settingsModal>*,#battleSetModal>*,#devAudioModal>*,#skinModal>*,#charInfoModal>*,#boxModal>*,#resultScreen>*,#skinReviewModal>*{animation:modalIn .25s var(--ease-out)}
/* 主界面：logo→副标题→VS卡→按钮 依次亮起（stagger 30-80ms，总时长<400ms） */
#titleScreen .logo{animation:shimmer 4s linear infinite,fadeIn .4s var(--ease-out) both}
#titleScreen .logoSub{animation:fadeIn .4s var(--ease-out) .04s both}
#titleScreen .catVs{animation:fadeIn .45s var(--ease-out) .08s both}
#titleScreen .btnStart{animation:gradShift 2.5s ease infinite,fadeIn .35s var(--ease-out) .1s both}
#titleScreen .secRow .btnLab{animation:fadeIn .35s var(--ease-out) both}
#titleScreen .secRow .btnLab:nth-child(1){animation-delay:.16s}
#titleScreen .secRow .btnLab:nth-child(2){animation-delay:.24s}
#titleScreen .secRow .btnLab:nth-child(3){animation-delay:.32s}         
#titleScreen .secRow .btnLab:nth-child(4){animation-delay:.40s}         
#titleScreen .secRow .btnLab:nth-child(5){animation-delay:.48s}         
/* 结算界面：结果标题与按钮轻微 stagger，像幕布依次亮起 */
#resultScreen .resultTitle{animation:popIn .6s cubic-bezier(.68,-.55,.27,1.55) .08s both}
#resultScreen .resultMsg{animation:fadeIn .3s var(--ease-out) .18s both}
#resultScreen .resultBtns button{animation:fadeIn .3s var(--ease-out) both}
#resultScreen .resultBtns button:nth-child(1){animation-delay:.28s}
#resultScreen .resultBtns button:nth-child(2){animation-delay:.36s}
#resultScreen .resultBtns button:nth-child(3){animation-delay:.44s}
/* 尊重系统减少动态效果：动画几乎瞬间完成，保留状态变化（减少≠归零） */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}#titleScreen{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;z-index:3;text-align:center;padding:2vh 4vw!important;overflow-y:auto;background:url('猫鼠卡牌素材/海报/主界面海报.webp?v=1') center/cover no-repeat; /* v08-264: 先加载低画质webp(324KB能看清), 后台JS换高画质PNG(3MB)——渐进加载 */}
/* v08-142: 海报保留原色(不加暗化蒙版)——标题置顶，全部按键收拢到画面中间空挡 */
#titleScreen::before{content:'';position:absolute;inset:0;background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat;filter:brightness(1.05) saturate(1.02);z-index:0;pointer-events:none}
#titleScreen>*{position:relative;z-index:1}
.titleHead{display:flex;flex-direction:column;align-items:center;flex:none}
#titleScreen .catVs{display:none}
#titleScreen .btnStart{margin-top:13vh;margin-bottom:2vh;margin-left:auto;margin-right:auto}
#titleScreen .secRow{display:grid!important;grid-template-columns:repeat(2,minmax(0,190px))!important;justify-content:center!important;gap:1.6vh 1.6vw!important;margin:0 auto auto!important;padding-bottom:0!important;flex:none}
#titleScreen .verTag{position:absolute;bottom:8px;left:12px;right:auto;transform:none;background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.35);color:rgba(255,255,255,.75);font-size:min(1.5vw,12px);z-index:5;margin:0!important;padding:2px 10px}
.logo{font-family:'SmileySans',"PingFang SC","Microsoft YaHei",sans-serif;font-size:min(12vw,110px);font-weight:900;letter-spacing:6px;background:linear-gradient(135deg,#fff2c0,#ffd700 38%,#ff9d00 72%,#ffcf5e);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1.5px rgba(28,52,110,.9);filter:drop-shadow(0 0 18px rgba(255,200,0,.55)) drop-shadow(0 4px 10px rgba(20,40,90,.75))}
@keyframes shimmer{0%{background-position:0% 50%}100%{background-position:300% 50%}}
.logoSub{font-family:'SmileySans',"PingFang SC","Microsoft YaHei",sans-serif;font-size:min(4.2vw,38px);letter-spacing:8px;margin-top:12px;font-weight:800;background:linear-gradient(135deg,#fff,#ffe9a8 45%,#ffd700);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 0 1.5px rgba(16,34,80,.9)) drop-shadow(0 2px 10px rgba(10,25,60,.8))}
.logoSmall{font-size:min(2vw,18px);color:#bbb;margin-top:10px;letter-spacing:2px;line-height:1.7}
.verTag{font-size:min(1.8vw,14px);color:#7dff9a;margin-top:8px;letter-spacing:1px;font-weight:800;background:rgba(76,217,100,.12);border:1px solid rgba(76,217,100,.35);border-radius:20px;padding:3px 14px;display:inline-block}
.catVs{display:flex;align-items:center;gap:4vw;margin:30px 0}
.catVs .big{width:min(22vw,200px);height:min(22vw,200px);border-radius:24px;overflow:hidden;border:3px solid rgba(255,80,80,.5);box-shadow:0 0 40px rgba(255,45,120,.5),inset 0 0 40px rgba(0,0,0,.3);position:relative}
.catVs .big img{width:100%;height:100%;object-fit:cover;object-position:center}
.catVs .big .tag{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:min(2.2vw,20px);font-weight:800;padding:6px;background:linear-gradient(180deg,transparent,rgba(200,20,20,.9))}
.catVs .vsx{font-size:min(8vw,70px);font-weight:900;color:#ffd700;text-shadow:0 0 40px #ffd700;animation:pulse 1.2s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.btnStart{margin-top:14px;margin-bottom:3vh;padding:16px 60px;font-size:min(3.4vw,32px);font-weight:900;border:none;border-radius:60px;color:#3a1a00;letter-spacing:6px;background:linear-gradient(135deg,#ffe9a8,#ffd700 45%,#ff9d00);border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 3px rgba(120,60,0,.35),0 10px 34px rgba(0,0,0,.55),0 0 30px rgba(255,190,0,.5),inset 0 1px 0 rgba(255,255,255,.75),inset 0 -2px 6px rgba(140,70,0,.35)}
.btnLab{margin-top:10px;padding:12px 30px;font-size:min(2.2vw,20px);font-weight:800;border:none;border-radius:40px;color:#d8ecff;letter-spacing:3px;background:linear-gradient(135deg,rgba(35,70,135,.72),rgba(18,38,90,.68));border:2px solid rgba(255,215,0,.5);cursor:pointer;transition:transform .15s,box-shadow .2s;box-shadow:0 6px 20px rgba(20,45,110,.45),inset 0 1px 0 rgba(255,255,255,.18);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.btnLab:hover{transform:translateY(-3px);box-shadow:0 8px 25px rgba(120,100,255,.4)}
#labModal{position:fixed;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);pointer-events:auto}
#labModal.hidden{display:none}
#labPanel{width:min(92vw,720px);max-height:88vh;overflow-y:auto;background:linear-gradient(160deg,#1a1a4a,#2a1a4a);border:2px solid rgba(160,140,255,.4);border-radius:22px;padding:3vh 2.5vw;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.7)}
#labTitle{font-size:min(4vw,34px);font-weight:900;color:#b0a0ff;letter-spacing:2px;margin-bottom:1vh}
#labDesc{font-size:min(2vw,16px);color:#ccc;line-height:1.7;margin-bottom:2vh}
#labCtrls{display:flex;align-items:center;justify-content:center;gap:.8vw;flex-wrap:wrap;margin-bottom:2vh}
.labLabel{font-size:min(2vw,16px);color:#eee;font-weight:700}
#labProgress{font-size:min(2vw,16px);color:#ffd700;margin:1.5vh 0;font-weight:800;min-height:3vh}
#labReport{text-align:left;font-size:min(1.9vw,15px);color:#e8e8ff;line-height:1.8;background:rgba(0,0,0,.35);border-radius:14px;padding:1.5vh 1.5vw;margin-top:1vh}
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
#pickScreen{flex:1;display:flex;flex-direction:column;position:relative;z-index:3;padding:2vh 3vw}
.pickHeader{text-align:center;margin-bottom:1.5vh}
.pickTitle{font-size:min(4.5vw,42px);font-weight:900;color:#ffd700;letter-spacing:6px;text-shadow:0 2px 10px rgba(255,215,0,.4)}
.pickSub{font-size:min(2vw,18px);color:#ccc;margin-top:4px;min-height:2.4vh}
.mousePool{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(13vw,130px),1fr));gap:1.5vh 1.2vw;align-content:start;overflow-y:auto;padding:6px;background:rgba(255,255,255,.03);border-radius:18px;border:2px solid rgba(255,200,60,.25)}
.pickCard{border-radius:14px;overflow:hidden;position:relative;cursor:pointer;border:2px solid rgba(255,255,255,.15);transition:transform .15s,box-shadow .2s;background:#1a1a3a;aspect-ratio:3/4}
.pickCard:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 10px 30px rgba(0,0,0,.6)}
.pickCard.picked{border-color:#ffd700;box-shadow:0 0 0 3px #ffd700,0 0 25px rgba(255,215,0,.6);transform:scale(1.04)}
.pickCard.playerPick{border-color:#4cd964;box-shadow:0 0 0 3px #4cd964,0 0 25px rgba(76,217,100,.6)}
.pickCard img{width:100%;height:100%;object-fit:cover;object-position:center top}
.pickCard .cname{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:min(2vw,18px);font-weight:800;padding:5px 2px;background:rgba(0,0,0,.7)}
.pickCard .hp{position:absolute;top:5px;right:5px;font-size:min(1.8vw,16px);font-weight:900;padding:2px 8px;border-radius:12px;background:rgba(255,45,120,.85)}
.pickCard .num{position:absolute;top:5px;left:5px;width:26px;height:26px;border-radius:50%;background:#ffd700;color:#000;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:14px}
.pickCard .pTag{position:absolute;top:36px;left:5px;font-size:min(1.5vw,13px);font-weight:800;padding:2px 8px;border-radius:8px;background:#4cd964;color:#001}
.pickFooter{display:flex;justify-content:center;gap:2vw;margin-top:1.5vh;align-items:center}
.btnBack{padding:12px 34px;font-size:min(2.4vw,22px);font-weight:800;border:none;border-radius:40px;color:#fff;background:rgba(255,255,255,.15)}
.btnGo{padding:13px 56px;font-size:min(2.7vw,25px);font-weight:900;border:none;border-radius:40px;color:#fff;letter-spacing:3px;background:linear-gradient(135deg,#ffd700,#ff2d78);box-shadow:0 6px 25px rgba(255,45,120,.4)}
.btnGo:disabled{filter:grayscale(1);opacity:.5}
.btnLock{padding:13px 34px;font-size:min(2.5vw,22px);font-weight:900;border:none;border-radius:40px;color:#fff;letter-spacing:2px;background:linear-gradient(135deg,#4cd964,#17a84b);box-shadow:0 6px 22px rgba(76,217,100,.35)}
.btnLock.locked{background:linear-gradient(135deg,#2f8f46,#146b31);box-shadow:none;opacity:.85}
#battleScreen{flex:1;display:flex;flex-direction:column;position:relative;z-index:3}
.topBar{display:flex;justify-content:space-between;align-items:center;padding:1vh 3vw;background:rgba(0,0,0,.35);border-bottom:1px solid rgba(255,255,255,.1);height:auto;min-height:0;flex-shrink:0}
.turnBadge{font-size:min(2.6vw,24px);font-weight:900;color:#ffd700;letter-spacing:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70vw}
.turnBadge.catT{color:#ff6b6b}
.turnBadge.mouseT{color:#4cd964}
.roundBadge{font-size:min(2.2vw,20px);color:#ccc;font-weight:700}
.verMini{font-size:min(1.6vw,13px);color:rgba(255,255,255,.55);font-weight:700;margin-left:8px;white-space:nowrap;flex-shrink:0}
.battleSetBtn{background:linear-gradient(135deg,#2a2a6a,#1a1a4a);border:1px solid rgba(255,215,0,.4);color:#ffd700;border-radius:10px;padding:8px 14px;min-width:44px;min-height:38px;font-size:min(4vw,22px);cursor:pointer;margin-left:6px;line-height:1;flex-shrink:0;z-index:999;position:relative}
.battleSetBtn.tapped{background:linear-gradient(135deg,#4cd964,#2e9e4a)!important;transform:scale(1.15)}
.battleSetBtn:hover{transform:scale(1.08)}
#battleSetModal{position:fixed;inset:0;z-index:9999;background:rgba(5,3,16,.86);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
#battleSetModal.hidden{display:none}
#battleSetPanel{width:min(92vw,420px);background:linear-gradient(160deg,#1a1740,#241a45);border:2px solid rgba(255,215,0,.5);border-radius:20px;padding:18px 20px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.75)}
#battleSetTitle{font-size:20px;font-weight:900;color:#ffd700;margin-bottom:12px;letter-spacing:1px}
#battleSetPanel .setRow{display:flex;align-items:center;justify-content:space-between;background:rgba(0,0,0,.3);border-radius:12px;padding:10px 12px;margin-bottom:10px;gap:8px}
#battleSetPanel .setLabel{font-size:13px;color:#ffe9a8;white-space:nowrap}
#battleSetPanel input[type=range]{accent-color:#ffd700}
#battleSetPanel button{background:linear-gradient(135deg,#2a2a6a,#1a1a4a);border:1px solid rgba(255,215,0,.35);color:#ffd700;border-radius:10px;padding:6px 12px;font-size:13px;cursor:pointer;font-weight:800}
#battleSetPanel button.danger{border-color:#ff6b6b;color:#ff9b9b}
#bsCloseBtn{width:100%;margin-top:6px;padding:10px!important;font-size:15px!important;background:linear-gradient(135deg,#ffd700,#ff9d00)!important;color:#3a1a00!important;border:none!important;border-radius:12px!important}
#mpLikeList .mpGroupTitle{font-size:13px;font-weight:900;color:#ffd700;margin:8px 0 4px}
#mpLikeList .mpSongRow{display:flex;justify-content:space-between;align-items:center;gap:6px;background:rgba(0,0,0,.28);border-radius:8px;padding:5px 8px;margin-bottom:4px;font-size:12px;color:#ffe9a8}
#mpLikeList .mpSongRow span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mpLikeList .mpSongBtns b{cursor:pointer;margin-left:6px;color:#b8a86a}
/* ═══════════ v08-276: 音乐播放器美化(主界面设置+战斗暂停共用) ═══════════ */
.mpPanel{background:rgba(10,8,24,.85);border:1px solid rgba(255,215,0,.25);border-radius:14px;padding:12px;margin-top:8px}
.mpFoldRow{margin-top:12px;border-top:1px dashed rgba(255,215,0,.25);padding-top:10px}
.mpPanel .setRow{margin-bottom:8px}
.mpCurName{font-size:13px;color:#7dff9a;text-align:right;flex:1;font-weight:800;text-shadow:0 0 8px rgba(76,217,100,.4)}
.mpControls{justify-content:center;gap:6px;flex-wrap:wrap}
.mpBtn{flex:none;min-width:34px;padding:7px 10px;font-size:14px;border-radius:10px;background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.3);color:#ffe9a8;cursor:pointer;transition:all .15s}
.mpBtn:hover{background:rgba(255,215,0,.22);transform:scale(1.05)}
.mpBtn:active{transform:scale(.95)}
.mpBtn.mpPlay{min-width:44px;font-size:16px;background:linear-gradient(135deg,#4facfe,#3a7bd5);border-color:#7db8ff;color:#fff}
.mpProgress{align-items:center;gap:8px}
.mpTime{font-size:11px;color:rgba(235,220,180,.6);flex:none;min-width:32px;text-align:center}
.mpBar{flex:1;height:8px;background:rgba(255,255,255,.14);border-radius:99px;position:relative;cursor:pointer;overflow:hidden}
.mpBarFill{width:0%;height:100%;background:linear-gradient(90deg,#4cd964,#7dff9a);border-radius:99px;box-shadow:0 0 8px rgba(76,217,100,.5)}
.mpCatRow{justify-content:flex-start;gap:6px;margin-top:4px}
.mpCatLabel{font-weight:900;font-size:13px;color:#ffd700}
.mpExport{flex:none;padding:4px 10px!important;font-size:12px!important;margin:0!important}
.mpCatList{max-height:20vh;overflow-y:auto;text-align:left;margin-bottom:6px}
.mpSongList{max-height:30vh;overflow-y:auto;text-align:left}
.mpSongList .mpGroupTitle{font-size:13px;font-weight:900;color:#ffd700;margin:8px 0 4px}
.mpSongList .mpSongRow{display:flex;justify-content:space-between;align-items:center;gap:6px;background:rgba(0,0,0,.3);border-radius:8px;padding:5px 8px;margin-bottom:4px;font-size:12px;color:#ffe9a8;border:1px solid rgba(255,255,255,.05)}
.mpSongList .mpSongRow:hover{background:rgba(255,215,0,.1)}
.mpSongList .mpSongBtns b{cursor:pointer;margin-left:6px;color:#b8a86a;font-size:13px}
.mpSongList .mpSongBtns b:hover{color:#ffd700;transform:scale(1.15);display:inline-block}
#bsMusicPlayer{padding:8px 2px;border-top:1px dashed rgba(255,215,0,.25);margin-top:4px}
#bsMusicPlayer .mpBtn{min-width:30px;padding:5px 8px;font-size:12px}
#mpLikeList .mpSongBtns b:hover{color:#ffd700}
/* ===== 08-11 六维能力图(选人卡片) ===== */
.pickCard .pickFoot{position:absolute;bottom:0;left:0;right:0;z-index:4;background:linear-gradient(180deg,rgba(5,3,16,.15),rgba(5,3,16,.9));padding:3px 5px 4px;display:flex;flex-direction:column;gap:2px}
.pickCard .statBars{display:flex;flex-direction:column;gap:1px;padding:0;background:none;border-radius:0;position:static}
.pickCard .statRow{display:flex;align-items:center;justify-content:space-between;gap:4px}
.pickCard .statLabel{font-size:clamp(7px,1.8vw,10px);color:#ffe9a8;font-weight:800;white-space:nowrap}
.pickCard .statDots{display:flex;gap:2px}
.pickCard .dot{width:clamp(5px,1.6vw,9px);height:clamp(4px,1.2vw,7px);border-radius:2px;background:rgba(255,255,255,.15);display:inline-block}
.pickCard .dot.on{background:linear-gradient(180deg,#ffd700,#ff9d00)}
.pickCard .dot.half{background:linear-gradient(90deg,#ffd700 50%,rgba(255,255,255,.15) 50%)}
.pickCard .cname{position:static;z-index:auto;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.2}
.pickCard .cnMain{font-size:clamp(11px,3vw,15px);font-weight:900;color:#ffd700;text-shadow:0 1px 3px #000}
.pickCard .cnSkin{font-size:clamp(9px,2.4vw,12px);color:#fff;opacity:.88;white-space:nowrap;text-shadow:0 1px 3px #000}
#charInfoModal{position:fixed;inset:0;z-index:9000;background:rgba(5,3,16,.86);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
#charInfoModal.hidden{display:none}
#charInfoModal .ciPanel{width:min(94vw,460px);max-height:88vh;overflow-y:auto;background:linear-gradient(160deg,#1a1740,#241a45);border:2px solid rgba(255,215,0,.5);border-radius:20px;padding:16px 16px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.75)}
#charInfoModal .ciTitle{font-size:22px;font-weight:900;color:#ffd700;margin-bottom:12px}
#charInfoModal .ciMain{display:flex;gap:8px;align-items:center;margin-bottom:8px}
#charInfoModal .ciRadarWrap{flex:0 0 auto;background:rgba(0,0,0,.3);border-radius:10px;padding:4px}
#charInfoModal .ciStats{flex:1;min-width:0;background:rgba(0,0,0,.3);border-radius:10px;padding:5px 8px;margin-bottom:0;display:flex;flex-direction:column;gap:0}
#charInfoModal .ciStat{display:flex;align-items:center;justify-content:space-between;padding:1px 0}
#charInfoModal .ciStatLabel{font-size:10px;color:#ffe9a8;font-weight:800;white-space:nowrap}
#charInfoModal .ciStatDots{display:flex;gap:3px;flex-shrink:0}
#charInfoModal .ciStatDots .dot{width:11px;height:7px;border-radius:2px;background:rgba(255,255,255,.15);display:inline-block}
#charInfoModal .ciStatDots .dot.on{background:linear-gradient(180deg,#ffd700,#ff9d00)}
#charInfoModal .ciStatDots .dot.half{background:linear-gradient(90deg,#ffd700 50%,rgba(255,255,255,.15) 50%)}
#charInfoModal .ciSkillsTitle{font-size:13px;font-weight:900;color:#ffd700;margin:6px 0 5px}
#charInfoModal .ciSkills{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#charInfoModal .ciSkill{background:rgba(0,0,0,.3);border-radius:10px;padding:6px 8px;margin-bottom:0;text-align:left}
#charInfoModal .ciSkillName{font-size:11px;font-weight:900;color:#7dff9a}
#charInfoModal .ciSkillDesc{font-size:10px;color:#d8d0b8;line-height:1.4;margin-top:2px}
#charInfoModal .ciClose{width:100%;margin-top:8px;padding:10px;font-size:15px;font-weight:900;background:linear-gradient(135deg,#ffd700,#ff9d00);color:#3a1a00;border:none;border-radius:12px;cursor:pointer}
/* ===== 08-11 主界面/选人界面 视觉整理(高特异度覆盖) ===== */
#titleScreen{gap:9px}
#titleScreen .btnFit{margin-top:8px;width:min(94vw,520px);padding:10px;font-size:clamp(12px,3.2vw,15px);border-radius:12px}
#titleScreen .secRow{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:min(94vw,520px)!important;gap:8px!important;margin-top:8px}
#titleScreen .secRow .btnLab{width:100%!important;margin:0!important;padding:10px 6px!important;min-height:44px!important;font-size:clamp(12px,3.2vw,15px)!important;border-radius:12px!important;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 08-15: 横屏主界面左右分组规则见 html[data-dev="landscape"] 区 */
#titleScreen .verTag{margin-top:6px}
#moreModal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#moreModal.hidden{display:none}
#morePanel{width:min(92vw,430px);max-height:86vh;overflow-y:auto;background:linear-gradient(160deg,#1a1740,#241a45);border:2px solid rgba(255,215,0,.45);border-radius:20px;padding:18px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.7)}
#moreTitle{font-size:20px;font-weight:900;color:#ffd700;margin-bottom:12px;letter-spacing:1px}
.moreGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.moreGrid .btnLab{width:100%;margin:0;padding:12px 6px;min-height:44px;font-size:clamp(12px,3.2vw,15px);border-radius:12px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#pickScreen{display:flex;flex-direction:column;align-items:center;padding:2vh 2vw;gap:1.5vh;overflow:visible}
.pickHeader{text-align:center;flex:none}
#sidePick{width:min(94vw,560px);gap:3vw;margin:0;flex:none;flex-wrap:nowrap}
#sidePick .sideBtn{width:min(44vw,260px);min-height:min(22vh,170px);border-radius:18px}
#charPick{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.5vh;flex:1}
#poolHeader{width:min(94vw,640px);text-align:center}
#charPick .mousePool{width:min(94vw,640px);gap:10px;justify-items:center;max-height:calc(100vh - 220px);overflow-y:auto}
.pickFooter{flex:none}
/* 🔥 连击计数器（燃感） */
.comboBadge{font-size:min(3vw,26px);font-weight:900;color:#ffa030;letter-spacing:1px;text-shadow:0 0 10px #ff6a00,0 0 20px rgba(255,80,0,.6);animation:comboPulse .4s ease-out}
@keyframes comboPulse{0%{transform:scale(1.6);opacity:0}60%{transform:scale(1);opacity:1}100%{transform:scale(1)}}
.taskBar{display:flex;align-items:center;justify-content:center;gap:1.2vw;padding:.7vh 2vw;background:rgba(0,0,0,.28);border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:nowrap;overflow:hidden;white-space:nowrap;font-size:min(1.8vw,16px);height:auto;min-height:0;flex-shrink:0}
.taskBar>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.taskBar .tStage{font-weight:900;color:#ffd700;letter-spacing:1px}
.taskBar .tProg{font-weight:800;color:#fff}
.taskBar .tProgBar{width:min(24vw,220px);height:16px;border-radius:8px;background:rgba(255,255,255,.12);overflow:hidden;border:1px solid rgba(255,215,0,.45);box-shadow:inset 0 2px 5px rgba(0,0,0,.45)}
.taskBar .tProgFill{display:block;height:100%;background:linear-gradient(90deg,#ffd700,#ff8c42);border-radius:8px;transition:width .35s cubic-bezier(.25,.8,.3,1);position:relative}
.taskBar .tProgFill.full{animation:progFlash 1.1s ease-out;box-shadow:0 0 14px rgba(255,215,0,.95)}
@keyframes progFlash{0%{filter:brightness(2.2)}100%{filter:brightness(1)}}
.taskBar .tKey{font-weight:800}
.taskBar .tEsc{font-weight:800;color:#4cd964}
.arena{flex:1;display:flex;min-height:0;padding:1vh 1.5vw;gap:1.2vw}
/* 左侧：猫的框（小，刚好放下图标和字） */
.sideArea{display:flex;flex-direction:column;align-items:center;gap:.8vh;width:min(12vw,140px);flex-shrink:0;align-self:flex-start;background:rgba(255,45,60,.10);border:2px solid rgba(255,80,80,.35);border-radius:14px;padding:10px}
.catCard{width:100%;aspect-ratio:3/4;border-radius:12px;overflow:hidden;position:relative;border:2px solid rgba(255,120,120,.5);box-shadow:0 6px 20px rgba(255,45,120,.35);background:#1a1a3a}
.catCard img{width:100%;height:100%;object-fit:cover;object-position:center top}
.catCard .catCardStatus{position:absolute;top:4px;left:4px;display:flex;flex-direction:column;flex-wrap:wrap;gap:3px;z-index:1000!important;pointer-events:none;max-width:calc(100% - 8px)} /* v08-198: 状态chips最高层, 防被立绘遮挡 */
.catCard .catCardStatus .catChip{background:rgba(8,6,22,.96)!important;border:1px solid rgba(255,215,0,.55)!important;border-radius:8px!important;padding:1px 6px!important;font-weight:800!important;box-shadow:0 1px 4px rgba(0,0,0,.6)!important} /* v08-198: chips加深描边, 浅色立绘上清晰可见 */
html[data-dev="portrait"][data-phone="1"] .catCard .catCardStatus{left:2px;top:2px;gap:2px;max-width:calc(100% - 4px)}
html[data-dev="portrait"][data-phone="1"] .catCard .catCardStatus .catChip,
html[data-dev="landscape"][data-phone="1"] .catCard .catCardStatus .catChip{font-size:8px;padding:1px 4px;line-height:1.3}
.catCard .cn{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:min(1.7vw,15px);font-weight:800;background:rgba(0,0,0,.7);padding:2px}
.catInfobox{width:100%;display:flex;flex-direction:column;gap:5px;align-items:center}
.catName{font-size:min(2vw,18px);font-weight:900;color:#ff8a8a;display:flex;align-items:center;gap:6px;justify-content:center;text-align:center}
.hpBar{width:100%;height:9px;border-radius:6px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.25);overflow:hidden;margin-top:2px;box-shadow:inset 0 1px 3px rgba(0,0,0,.6)}
.hpBarFill{height:100%;border-radius:6px;transition:width .45s cubic-bezier(.25,.8,.3,1);background:linear-gradient(90deg,#ff5a5a,#ffd700)}
.hpBarFill.high{background:linear-gradient(90deg,#4cd964,#8ef7a8)}
.hpBarFill.mid{background:linear-gradient(90deg,#ffd700,#ff9a3c)}
.hpBarFill.low{background:linear-gradient(90deg,#ff5a5a,#ff2d55);animation:hpPulse 1s infinite}
@keyframes hpPulse{0%,100%{opacity:1}50%{opacity:.6}}
.catChips{display:flex;flex-direction:column;gap:4px;align-items:center;width:100%}
.catStatusRow{display:flex;gap:.5vw;flex-wrap:wrap;justify-content:center}
.catChip{font-size:min(1.2vw,11px);font-weight:800;padding:3px 8px;border-radius:9px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);text-align:center}
.catChip.grab{background:rgba(255,150,60,.25);border-color:#ffa050;color:#ffd0a0}
.catChip.stun{background:rgba(120,120,255,.25);border-color:#8888ff;color:#c0c0ff}
.catChip.recover{background:rgba(76,217,100,.25);border-color:#4cd964;color:#a0ffc0}
.catChip.invul{background:rgba(255,255,120,.25);border-color:#ffff78;color:#ffffb0}
.catChip.exc{background:rgba(255,120,60,.28);border-color:#ff783c;color:#ffc0a0}
.catSkills{display:flex;gap:.5vw;flex-wrap:wrap;justify-content:center}
.cSkill{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px 8px;border-radius:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);transition:transform .12s}
.cSkill span{font-size:min(1.3vw,12px);font-weight:700}
.cSkill.used{filter:grayscale(1);opacity:.4}
/* 右侧主列：上=战斗信息框（大，十行），下=老鼠 */
.mainCol{flex:1;display:flex;flex-direction:column;min-width:0;gap:1vh}
.logPanel{display:flex;flex-direction:column;background:rgba(0,0,0,.5);border:2px solid rgba(255,215,0,.4);border-radius:14px;padding:8px 14px;box-shadow:0 6px 25px rgba(0,0,0,.5);flex-shrink:0;height:42vh}
.logTitle{font-size:min(1.7vw,15px);font-weight:900;color:#ffd700;letter-spacing:2px;margin-bottom:4px;text-shadow:0 1px 4px #000}
.battleLog{font-size:min(1.7vw,16px);color:#ffe9a8;text-align:left;padding:6px 10px;text-shadow:0 1px 3px #000;overflow-y:auto;line-height:1.8;height:36vh;min-height:36vh;max-height:46vh;background:rgba(0,0,0,.35);border-radius:10px}
.miceZone{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:.8vw;min-height:0;align-items:center}
.mouseCard{background:linear-gradient(180deg,rgba(255,200,60,.06),rgba(60,40,0,.1));border:2px solid rgba(255,200,60,.25);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;position:relative;max-height:100%}
.mouseCard.targetable{cursor:pointer;border-color:#4cd964;box-shadow:0 0 16px rgba(76,217,100,.5)} /* v08-178: 去掉无限pulseGold动画——Safari上选目标时卡片持续动画引发布局乱飞 */
.mouseCard.targetable:hover{transform:scale(1.03)}
.mouseCard.dimmed{opacity:.4;filter:grayscale(.6)}
.mouseCard.you{border-color:#4cd964;box-shadow:0 0 18px rgba(76,217,100,.4);padding-top:40px}
.mouseCard .top{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:rgba(0,0,0,.25);flex-wrap:wrap;gap:2px}
.mouseCard .mname{font-size:min(1.9vw,18px);font-weight:900;color:#ffd700}
.reviveBtn{font-size:min(1.4vw,13px);font-weight:800;padding:3px 10px;border:none;border-radius:10px;color:#fff;background:linear-gradient(135deg,#ffd700,#ff8c42);cursor:pointer;box-shadow:0 3px 10px rgba(255,140,66,.4);transition:transform .12s;margin:0 2px}
.reviveBtn:active{transform:scale(.93)}
.mouseCard .mhp{font-size:min(1.6vw,15px);font-weight:800;color:#fff}
.mhpBar{display:inline-block;width:52px;height:7px;border-radius:5px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);overflow:hidden;vertical-align:middle;margin-left:5px}
.mhpFill{height:100%;border-radius:5px;transition:width .4s cubic-bezier(.25,.8,.3,1);background:linear-gradient(90deg,#4cd964,#8ef7a8)}
.mhpFill.mid{background:linear-gradient(90deg,#ffd700,#ff9a3c)}
.mhpFill.low{background:linear-gradient(90deg,#ff5a5a,#ff2d55);animation:hpPulse 1s infinite}
.mouseCard .top{display:flex;align-items:center;justify-content:center;padding:3px 4px;gap:4px;background:rgba(255,200,60,.08);border-bottom:1px solid rgba(255,200,60,.2)}
.mouseCard .portrait{position:relative;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:min(30vh,34vh)}
.mouseCard .portrait img{width:auto;height:100%;max-width:100%;object-fit:contain;object-position:center top;flex-shrink:0;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}
.mouseCard .status{position:absolute;top:4px;left:4px;display:flex;flex-direction:column;gap:3px}
.statusChip{font-size:min(1.3vw,12px);font-weight:800;padding:2px 7px;border-radius:10px}
/* 🎯 状态角标徽章：眩晕/虚弱/兴奋/无敌/被抓 一眼可读(右上角大图标,上下堆叠) */
.cornerBadges{position:absolute;top:4px;right:4px;display:flex;flex-direction:column;gap:3px;z-index:5;pointer-events:none}
.cbadge{font-size:min(2.6vw,24px);filter:drop-shadow(0 2px 3px rgba(0,0,0,.7));animation:cbPop .4s cubic-bezier(.2,.9,.3,1.3)}
@keyframes cbPop{0%{transform:scale(.5) rotate(-20deg);opacity:0}70%{transform:scale(1.3) rotate(8deg);opacity:1}100%{transform:scale(1) rotate(0)}}
.cbadge.spin{animation:cbSpin 1.2s linear infinite}
@keyframes cbSpin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.cbadge.pulse{animation:cbPulse .8s ease-in-out infinite}
@keyframes cbPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.st-inv{background:rgba(120,180,255,.9);color:#001}
.st-shield{background:rgba(120,255,180,.9);color:#010}
.st-grow{background:rgba(255,255,120,.9);color:#110}
.st-exc{background:rgba(255,120,180,.9);color:#100}
.st-stun{background:rgba(120,120,255,.9);color:#001}
.st-grab{background:rgba(255,150,60,.9);color:#110}
.st-vanish{background:rgba(200,200,200,.9);color:#111}
.st-weak{background:rgba(255,45,120,.95);color:#fff;animation:weakBlink 1s infinite}
.st-hurt{background:rgba(255,70,70,.95);color:#fff;animation:weakBlink 1s infinite}
.st-perfume{background:rgba(255,150,220,.95);color:#400}
@keyframes weakBlink{0%,100%{opacity:1}50%{opacity:.5}}
.mouseCard.weak{border-color:#ff2d78;box-shadow:0 0 18px rgba(255,45,120,.5);filter:brightness(.8)}
.mouseCard.weak .portrait img{filter:grayscale(.4) brightness(.7)}
.weakTag{font-size:min(1.8vw,16px);font-weight:900;color:#ff8ac0;background:rgba(255,45,120,.25);padding:4px 14px;border-radius:14px;border:1px solid #ff2d78}
.miniBtn.revive{background:linear-gradient(135deg,#ffd700,#ff8c42)}
.mouseCard .potionSlot{position:absolute;top:4px;right:4px;display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.potChip{font-size:min(1.3vw,12px);font-weight:800;padding:2px 8px;border-radius:10px;background:rgba(76,217,100,.9);color:#010;cursor:pointer}
.mouseCard .mBtn{position:absolute;bottom:6px;left:6px;right:6px;display:flex;gap:6px;justify-content:center}
.mSkill{flex:1;padding:7px 3px;border:none;border-radius:10px;font-size:min(1.5vw,13px);font-weight:800;color:#fff;background:linear-gradient(135deg,#4facfe,#a855f7);cursor:pointer;transition:transform .12s}
.mSkill:active{transform:scale(.93)}
.mSkill.used{filter:grayscale(1);opacity:.4;cursor:not-allowed}
/* v08-258: 小键缩放抖动修复——手机端 active 按压缩放+点击后重建动画重启会"大一圈又回原样"。
   手机(触屏)上去掉 :active 缩放, 保留桌面 hover 效果; 统一过渡不抖 */
html[data-phone="1"] .mSkill:active,
html[data-phone="1"] .miniBtn:active,
html[data-phone="1"] .btn:active,
html[data-phone="1"] .capBtn:active,
html[data-phone="1"] .reviveBtn:active{transform:scale(1)!important;transition:none!important}
.skCnt{font-style:normal;font-size:.95em;opacity:1;margin-left:3px;font-weight:900;background:rgba(0,0,0,.28);padding:1px 5px;border-radius:9px;line-height:1.4;display:inline-block;vertical-align:middle}
/* v08-131: 临时效果按钮(闪避等)——放到立绘正下方, 大号易点 */
.tempCaps{position:absolute;left:45%;bottom:3%;transform:translateX(-50%);display:flex;justify-content:center;gap:6px;z-index:8;margin:0;min-height:0}
.capBtn{font-size:clamp(11px,1.5vw,15px);line-height:1.2;padding:8px 18px;min-height:36px;border-radius:999px;border:2px solid rgba(255,255,255,.45);color:#fff;font-weight:900;cursor:pointer;background:linear-gradient(135deg,#4ade80,#16a34a);box-shadow:0 2px 10px rgba(0,0,0,.45),0 0 16px rgba(74,222,128,.4);transition:transform .12s var(--ease-out)}
.capBtn:active{transform:scale(.94)}
.capBtn[disabled]{filter:grayscale(.8);opacity:.55;cursor:not-allowed}
.mSkill.blue{background:linear-gradient(135deg,#4facfe,#a855f7)}
.mSkill.gold{background:linear-gradient(135deg,#ffd700,#ff8c42)}
.mSkill:not(.used){animation:pulseGold 1.4s infinite;box-shadow:0 0 10px rgba(76,217,100,.35)}
/* v08-258: 小键反复缩放/抖动修复——手机端禁用脉冲动画(仅box-shadow呼吸, 无scale, 但动画重启视觉跳变) */
html[data-phone="1"] .mSkill:not(.used){animation:none!important;box-shadow:0 0 6px rgba(76,217,100,.25)}
.mouseCard.dead{filter:grayscale(1) brightness(.45)}
.mouseCard.dead .mBtn{display:none}
.mouseCard.escaped{filter:brightness(.85) sepia(.3);border-color:#4cd964;box-shadow:0 0 18px rgba(76,217,100,.5)}
.mouseCard.escaped .mBtn{display:none}
.mouseCard .deadTag{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:min(3vw,34px);font-weight:900;color:#ff2d78;text-shadow:0 0 20px #ff2d78;background:rgba(0,0,0,.3)}
.actionBar{display:flex;justify-content:center;align-items:center;gap:1.5vw;padding:1.2vh 2vw;background:rgba(0,0,0,.35);border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
/* 🎒 道具背包弹层：fixed底部，永不撑破卡片，点道具即收起 */
#itemPop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}
#itemPop.hidden{display:none}
#itemPopMask{position:absolute;inset:0;background:rgba(0,0,0,.5)}
#itemPopPanel{position:relative;z-index:2;width:min(92vw,560px);background:linear-gradient(180deg,#2a1a4a,#1a1030);border:2px solid rgba(168,85,247,.6);border-radius:18px 18px 0 0;padding:14px 16px max(18px,env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.7);text-align:center;max-height:82vh;overflow-y:auto} /* v08-178: 底部安全区适配 */
#itemPopTitle{font-size:min(4.5vw,20px);font-weight:900;color:#ffd700;margin-bottom:10px;text-shadow:0 2px 6px #000}
#itemPopRow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px;max-height:60vh;overflow-y:auto;padding-right:2px}
#itemPopRow .miniBtn{font-size:min(3.4vw,15px);padding:12px 14px;min-height:52px}
/* v08-155: 技能弹窗（技能键显示不全时合并成「技能」按钮，点开像道具键一样） */
#skillPop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}
#skillPop.hidden{display:none}
#skillPopMask{position:absolute;inset:0;background:rgba(0,0,0,.5)}
#skillPopPanel{position:relative;z-index:2;width:min(92vw,560px);background:linear-gradient(180deg,#2a1a4a,#1a1030);border:2px solid rgba(168,85,247,.6);border-radius:18px 18px 0 0;padding:14px 16px max(18px,env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.7);text-align:center;max-height:82vh;overflow-y:auto} /* v08-178: 底部安全区适配 */
#skillPopTitle{font-size:min(4.5vw,20px);font-weight:900;color:#ffd700;margin-bottom:12px;text-shadow:0 2px 6px #000}
#skillPopRow{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
#skillPopRow button{flex:1 1 200px;min-height:68px;font-size:min(3.2vw,16px);font-weight:900;border-radius:14px;border:none;cursor:pointer;padding:10px 12px;line-height:1.5}
#skillPopRow .skA{background:linear-gradient(135deg,#4facfe,#a855f7);color:#fff}
#skillPopRow .skW{background:linear-gradient(135deg,#ffd700,#ff8c42);color:#3a2400}
#skillPopRow button:disabled{filter:grayscale(1);opacity:.45;cursor:not-allowed}
#skillPopClose{margin-top:14px;padding:10px 34px;border-radius:99px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:14px;font-weight:800;cursor:pointer}
.btnAct{padding:13px 36px;font-size:min(2.5vw,22px);font-weight:900;border:none;border-radius:40px;color:#fff;letter-spacing:2px;background:linear-gradient(135deg,#ff2d78,#ff6b35);box-shadow:0 8px 30px rgba(255,45,120,.45)}
.btnAct.green{background:linear-gradient(135deg,#4cd964,#2ea8ff);box-shadow:0 8px 30px rgba(76,217,100,.4)}
.btnAct.gray{background:rgba(255,255,255,.15)}
#resultScreen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.8)}
.resultBox{text-align:center;padding:5vh 6vw;border-radius:30px;background:linear-gradient(160deg,#1b1b4b,#0f0c29);border:2px solid rgba(255,215,0,.4);box-shadow:0 0 60px rgba(255,215,0,.3);max-width:82vw}
.resultTitle{font-size:min(8vw,72px);font-weight:900;letter-spacing:8px;animation:popIn .6s cubic-bezier(.68,-.55,.27,1.55)}
.resultTitle.win{color:#ffd700;text-shadow:0 0 40px #ffd700}
.resultTitle.lose{color:#ff2d78;text-shadow:0 0 40px #ff2d78}
@keyframes popIn{0%{transform:scale(.9);opacity:0}100%{transform:scale(1);opacity:1}}
.resultMsg{font-size:min(2.3vw,21px);color:#ccc;margin:12px 0 8px;line-height:1.7}
.resultBtns{display:flex;gap:2vw;justify-content:center;margin-top:24px}
.resultBtns button{padding:14px 40px;font-size:min(2.4vw,22px);font-weight:800;border:none;border-radius:40px;color:#fff;transition:transform .15s}
.resultBtns button:active{transform:scale(.94)}
#btnAgain{background:linear-gradient(135deg,#ffd700,#ff2d78)}
#btnLobby{background:linear-gradient(135deg,#4cd964,#17a84b);color:#06240f}
#btnBackRoom{background:linear-gradient(135deg,#4aa8e8,#2f6fb8);color:#062a45}
#btnHome{background:rgba(10,8,22,.78);color:#fff;border:1px solid rgba(255,255,255,.55)}
#waterFx{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;pointer-events:none;flex-direction:column;gap:10px}
#waterBox{padding:3vh 6vw;border-radius:24px;background:rgba(20,20,60,.96);border:3px solid #4cd964;box-shadow:0 0 60px rgba(76,217,100,.6);text-align:center;animation:waterPop .25s var(--ease-out);pointer-events:auto;max-width:72vw}
@keyframes waterPop{0%{transform:scale(.95);opacity:0}100%{transform:scale(1);opacity:1}}
#boxModal{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;pointer-events:none;flex-direction:column}
#boxModal.hidden{display:none}
#boxPanel{padding:3vh 4vw;border-radius:24px;background:rgba(20,20,60,.97);border:3px solid #ffd700;box-shadow:0 0 60px rgba(255,215,0,.5);text-align:center;animation:waterPop .25s var(--ease-out);pointer-events:auto;max-width:80vw}
html[data-dev="landscape"] #boxPanel{max-width:90vw;max-height:92vh;overflow-y:auto}
html[data-dev="landscape"] #boxGrid{gap:1vw}
html[data-dev="landscape"] .boxCard{width:min(13vw,150px)}
#boxTitle{font-size:min(3.6vw,32px);font-weight:900;color:#ffd700;letter-spacing:2px;margin-bottom:2vh}
#boxGrid{display:flex;gap:1.5vw;justify-content:center;flex-wrap:wrap;margin-bottom:2vh}
.boxCard{width:min(14vw,110px);aspect-ratio:1;border-radius:16px;background:radial-gradient(circle at 30% 30%,#3a3a7a,#1a1a4a);border:2px solid rgba(255,215,0,.4);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:min(8vw,56px);cursor:pointer;transition:transform .15s,box-shadow .2s,border-color .2s;position:relative}
.boxCard:hover{transform:translateY(-4px) scale(1.06);border-color:#ffd700;box-shadow:0 0 20px rgba(255,215,0,.4)}
.boxCard.hasKey{border-color:#4cd964;box-shadow:0 0 20px rgba(76,217,100,.6)}
.boxCard .boxNum{font-size:min(2vw,16px);color:#fff;font-weight:800;margin-top:4px}
#boxHint{font-size:min(2vw,16px);color:#ccc;margin-bottom:2vh;line-height:1.6}
#boxPeekSel{display:flex;gap:1vw;justify-content:center;flex-wrap:wrap;margin-bottom:2vh}
.peekBtn{min-width:min(16vw,120px);padding:1.2vh 1.5vw;border-radius:14px;background:linear-gradient(135deg,#2a2a6a,#1a1a4a);border:2px solid rgba(255,215,0,.5);color:#fff;font-weight:800;font-size:min(2.4vw,20px);cursor:pointer;transition:transform .15s,box-shadow .2s}
.peekBtn:hover{transform:translateY(-3px);box-shadow:0 0 18px rgba(255,215,0,.45)}
.peekBtn.sel{border-color:#ffd700;background:linear-gradient(135deg,#4a3a1a,#3a2a0a);box-shadow:0 0 18px rgba(255,215,0,.5)}
.peekGo{min-width:min(20vw,150px);padding:1.2vh 1.5vw;border-radius:14px;background:linear-gradient(135deg,#ffd700,#ff9d00);border:none;color:#3a1a00;font-weight:900;font-size:min(2.4vw,20px);cursor:pointer;margin-top:1vh;transition:transform .15s}
.peekGo:hover{transform:translateY(-3px)}
.peekBtn .peekMain{display:block;line-height:1.25}
.peekBtn .peekSub{display:block;font-size:.72em;font-weight:700;color:#ffd700;margin-top:4px;line-height:1.2}
#waterTitle{font-size:min(4vw,36px);font-weight:900;color:#4cd964;letter-spacing:4px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
#waterTitle img{width:min(4vw,40px);height:min(4vw,40px);object-fit:contain}
#waterDesc{font-size:min(2.2vw,20px);color:#fff;margin-top:12px;line-height:1.6;min-height:5vh;display:flex;align-items:center;flex-direction:column;gap:4px;justify-content:center}
#waterBtn{margin-top:14px;padding:12px 50px;font-size:min(2.4vw,22px);font-weight:900;border:none;border-radius:40px;color:#fff;background:linear-gradient(135deg,#4cd964,#2ea8ff);letter-spacing:2px}
#loading{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0f0c29;flex-direction:column;gap:20px}
/* 启动画面：品牌 logo + 素材加载进度条（永远不白屏） */
.bootLogo{font-family:'SmileySans',"PingFang SC","Microsoft YaHei",sans-serif;font-size:min(14vw,64px);font-weight:900;letter-spacing:6px;background:linear-gradient(90deg,#ffd700,#ff8c42,#ffd700);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 3s linear infinite;filter:drop-shadow(0 4px 18px rgba(0,0,0,.6))}
.bootSub{font-size:min(3.5vw,15px);color:#9aa0b8;letter-spacing:3px;font-weight:700}
.bootBar{width:min(62vw,280px);height:8px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.4)}
.bootFill{height:100%;width:4%;border-radius:99px;background:linear-gradient(90deg,#ffd700,#ff8c42);box-shadow:0 0 12px rgba(255,180,0,.6);transition:width .25s var(--ease-out)}
#loadTxt{font-size:min(3vw,13px);color:#7dff9a;font-weight:700;letter-spacing:1px}
.loader{width:60px;height:60px;border:5px solid rgba(255,215,0,.2);border-top-color:#ffd700;border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#loadTxt{color:#ffd700;font-size:20px;font-weight:700;letter-spacing:2px}
.youTag{text-align:center;font-size:min(1.4vw,13px);font-weight:900;color:#001;background:#4cd964;padding:2px;z-index:5}
.miniBtns{display:flex;gap:6px;justify-content:center;padding:4px 6px;background:rgba(10,8,20,.92);z-index:9;flex-wrap:wrap;position:absolute;top:0;left:0;right:0;border-bottom:1px solid rgba(255,215,0,.25)}
.miniBtn{padding:5px 10px;font-size:min(1.6vw,14px);font-weight:800;border:none;border-radius:14px;color:#fff;cursor:pointer;transition:transform .12s;letter-spacing:0}
.miniBtn:active{transform:scale(.93)}
.miniBtn.green{background:linear-gradient(135deg,#4cd964,#2ea8ff)}
.miniBtn.gray{background:rgba(255,255,255,.22)}
.miniBtn.purple{background:linear-gradient(135deg,#a86ff8,#7c4dd8);border:1px solid rgba(255,255,255,.3)}
.miniBtn.mint{background:linear-gradient(135deg,#4bdc9f,#2bb3a0);border:1px solid rgba(255,255,255,.3)}
.itemRow{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.miniBtn.itPan{background:linear-gradient(135deg,#ffd0a0,#f0a060);color:#5a3a10}
.miniBtn.itHu{background:linear-gradient(135deg,#ff6b6b,#e04040);color:#fff}
.miniBtn.itIce{background:linear-gradient(135deg,#8ad8ff,#4aa8e8);color:#0a3a5a}
.miniBtn.itGuan{background:linear-gradient(135deg,#c8b8a0,#9a8a70);color:#3a2a10}
.miniBtn.itXiangshui{background:linear-gradient(135deg,#ffb8e8,#e878c8);color:#5a1040}
.catItemRow{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:4px}
/* ===== V14 阵营选择 ===== */
.sidePick{display:flex;gap:2.5vw;justify-content:center;align-items:center;margin:2vh auto;max-width:74vw;max-height:calc(100vh - 230px);flex-wrap:wrap;flex:0 1 auto}
/* 08-15: 选择阵营全分辨率适配——竖屏上下排、横屏左右排 */
@media (orientation:portrait){
  #sidePick{flex-direction:column;align-items:center;gap:2.2vh;width:min(92vw,440px);max-width:92vw;margin:2vh auto}
  #sidePick .sideBtn{width:min(82vw,400px);height:clamp(96px,14vh,150px)!important;min-height:0!important;max-height:none!important;overflow:hidden;gap:.8vh;padding:10px 12px}
  #sidePick .sideBig{font-size:clamp(34px,8vh,52px)}
  #sidePick .sideName{font-size:clamp(15px,3vh,20px)}
  #sidePick .sideDesc{font-size:clamp(11px,2.6vh,14px)!important;line-height:1.4}
}
@media (orientation:landscape){
  #sidePick{flex-direction:row;align-items:center;justify-content:center;gap:2.5vw;flex-wrap:nowrap;width:auto;max-width:92vw}
  #sidePick .sideBtn{width:min(38vw,260px);height:min(46vh,150px)!important;min-height:0!important;max-height:none!important;overflow:hidden;gap:.8vh;padding:8px 10px}
  #sidePick .sideBig{font-size:clamp(30px,7vh,44px)}
  #sidePick .sideName{font-size:clamp(13px,3vh,18px);letter-spacing:2px}
  #sidePick .sideDesc{font-size:clamp(10px,2.8vh,13px)!important;line-height:1.35}
}
.sideBtn{flex:0 1 300px;width:min(36vw,300px);max-width:320px;height:clamp(260px,42vh,470px);min-height:240px;padding:3vh 2.2vw;border:none;border-radius:26px;cursor:pointer;transition:transform .15s,box-shadow .15s;color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vh}
.sideBtn:hover{transform:translateY(-4px) scale(1.02)}
.sideBtn:active{transform:scale(.96)}
.sideBtn.catSide{background:linear-gradient(160deg,#2b1a3a,#4a1d2e);border:2px solid rgba(255,110,110,.55);box-shadow:0 16px 40px rgba(0,0,0,.45),0 0 22px rgba(255,90,90,.18),inset 0 1px 0 rgba(255,255,255,.08)}
.sideBtn.mouseSide{background:linear-gradient(160deg,#14263b,#1d3a2e);border:2px solid rgba(76,217,100,.55);box-shadow:0 16px 40px rgba(0,0,0,.45),0 0 22px rgba(76,217,100,.18),inset 0 1px 0 rgba(255,255,255,.08)}
.sideBig{font-size:min(7vw,64px);filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}
.sideName{font-size:min(3vw,28px);font-weight:900;letter-spacing:4px}
.sideDesc{font-size:min(1.9vw,17px);color:#ccc;line-height:1.6;text-align:center}
#pickScreen{overflow:hidden!important}
.pickFooter{flex-shrink:0!important}
.poolHeader{text-align:center;font-size:min(2.4vw,22px);font-weight:900;color:#ffd700;letter-spacing:3px;margin-bottom:10px}
.pickCard.catPick{border-color:#ff8a8a;box-shadow:0 0 22px rgba(255,90,90,.35)}
.pickCard.catPick .cname{color:#ffb0b0}
.cSkill.clickable{cursor:pointer;border-color:#4cd964;animation:pulseGold 1.2s infinite}
.cSkill.clickable:hover{transform:scale(1.06);box-shadow:0 0 18px rgba(76,217,100,.5)}
.catSkipBtn{width:100%;margin-top:4px;text-align:center;padding:4px 0;border-radius:8px;background:rgba(255,140,60,.2);border:1px solid #ffa060;color:#ffd0a0;font-size:min(1.3vw,12px);font-weight:700;cursor:pointer;transition:transform .12s}
.catSkipBtn:hover{transform:scale(1.04);box-shadow:0 0 12px rgba(255,160,60,.5)}
@keyframes pulseGold{0%,100%{box-shadow:0 0 8px rgba(76,217,100,.3)}50%{box-shadow:0 0 18px rgba(76,217,100,.7)}}


/* ═══════════ 【发布级适配·增强层】基于根字体 --fs 的均衡全覆盖 (手机/平板/电脑, 横竖) ═══════════ */

/* ---------- A. 手机竖屏 (data-dev=portrait 且 phone): 上下结构, 字号用 --fs, 均衡不挤 ---------- */
html[data-dev="portrait"][data-phone="1"] #app{flex-direction:column}
html[data-dev="portrait"][data-phone="1"] .topBar{padding:.8vh 2vw}
html[data-dev="portrait"][data-phone="1"] .turnBadge{font-size:clamp(13px,calc(var(--fs)*1.15),20px)}
html[data-dev="portrait"][data-phone="1"] .roundBadge{font-size:clamp(11px,var(--fs),15px)}
html[data-dev="portrait"][data-phone="1"] .taskBar{font-size:clamp(11px,calc(var(--fs)*.92),15px);flex-wrap:wrap;white-space:normal;overflow:visible;gap:2px 8px;line-height:1.35;padding:.6vh 1.5vw}
html[data-dev="portrait"][data-phone="1"] .taskBar>*{overflow:visible;text-overflow:clip;white-space:normal;flex-shrink:1}
html[data-dev="portrait"][data-phone="1"] .taskBar .tProgBar{width:clamp(90px,38vw,200px);flex-shrink:0}
html[data-dev="portrait"][data-phone="1"] .taskBar .tEsc{white-space:nowrap}
/* 战斗区: 上下两段, arena 内部可滚动(猫区固定, 主列滚动) → 永不溢出 */
html[data-dev="portrait"][data-phone="1"] .arena{flex-direction:column;overflow-y:auto;padding:1vh 1.5vw;gap:1vh}
html[data-dev="portrait"][data-phone="1"] .sideArea{width:100%;flex-direction:row;align-items:center;gap:2vw;padding:6px 8px;flex-shrink:0;flex-wrap:nowrap}
html[data-dev="portrait"][data-phone="1"] .catCard{width:clamp(52px,18vw,76px);height:clamp(70px,24vw,100px);aspect-ratio:auto;flex-shrink:0}
html[data-dev="portrait"][data-phone="1"] .catCard .cn{font-size:clamp(9px,3.4vw,13px)}
html[data-dev="portrait"][data-phone="1"] .catInfobox{flex:1;align-items:flex-start;gap:4px;min-width:0}
html[data-dev="portrait"][data-phone="1"] .catName{font-size:clamp(12px,4vw,18px);justify-content:flex-start}
html[data-dev="portrait"][data-phone="1"] .catName #catHP{font-size:clamp(9px,3vw,13px)!important}
html[data-dev="portrait"][data-phone="1"] .catChip{font-size:clamp(9px,2.8vw,12px);padding:2px 8px}
html[data-dev="portrait"][data-phone="1"] .cSkill span{font-size:clamp(9px,2.7vw,12px)}
html[data-dev="portrait"][data-phone="1"] .catSkipBtn{width:auto;padding:4px 12px;font-size:clamp(9px,2.6vw,12px)}
/* 主列: 弹性, 最小高度0 */
html[data-dev="portrait"][data-phone="1"] .mainCol{flex:1;gap:1vh;min-height:0}
/* 日志: 竖屏折叠浮层(右上), 不占主列空间 */
html[data-dev="portrait"][data-phone="1"] .logPanel{position:absolute;right:2vw;top:9vh;z-index:8;width:clamp(200px,52vw,340px);max-height:34vh;background:rgba(10,8,20,.94);border:2px solid rgba(255,215,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
html[data-dev="portrait"][data-phone="1"] .logPanel.collapsed{max-height:5vh}
html[data-dev="portrait"][data-phone="1"] .battleLog{height:18vh;min-height:18vh;max-height:26vh;font-size:clamp(10px,var(--fs),14px);pointer-events:none}
/* 老鼠: 2x2, minmax(0,1fr) 保证4只都在屏内且不溢出 */
html[data-dev="portrait"][data-phone="1"] .miceZone{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1vh 2vw;align-content:stretch}
html[data-dev="portrait"][data-phone="1"] .mouseCard{max-height:100%;min-height:0;overflow:hidden}
/* 玩家卡预留操作区, 展开收起版面不动 */
html[data-dev="portrait"][data-phone="1"] .mouseCard.you{padding-top:64px}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtns{position:absolute;top:0;left:0;right:0;padding:3px;gap:4px;flex-wrap:wrap}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtn{font-size:clamp(9px,2.6vw,12px);padding:6px 7px;min-height:30px}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mname{font-size:clamp(11px,3.4vw,15px)}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mhp{font-size:clamp(10px,2.9vw,13px)}
html[data-dev="portrait"][data-phone="1"] .mouseCard .statusChip{font-size:clamp(8px,2.4vw,11px)}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{height:clamp(70px,17vh,120px);flex:0 0 auto}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn{position:absolute;bottom:4px;left:4px;right:4px;gap:4px;padding:2px;background:rgba(0,0,0,.55);border-radius:8px}
html[data-dev="portrait"][data-phone="1"] .mSkill{font-size:clamp(9px,2.7vw,12px);padding:7px 2px}
/* 底部行动栏: 不换行溢出, 按钮用 flex 均衡 */
html[data-dev="portrait"][data-phone="1"] .actionBar{padding:1.2vh 1.5vw;gap:1.5vw;flex-wrap:wrap}
html[data-dev="portrait"][data-phone="1"] .btnAct{padding:11px 3.5vw;font-size:clamp(12px,4vw,18px);white-space:nowrap}
/* 说明文字/角标均衡 */
html[data-dev="portrait"][data-phone="1"] .logo{font-size:clamp(30px,13vw,64px)}
html[data-dev="portrait"][data-phone="1"] .logoSub{font-size:clamp(14px,4.5vw,26px);letter-spacing:6px}
html[data-dev="portrait"][data-phone="1"] .logoSmall{font-size:clamp(11px,3.2vw,15px);line-height:1.7}
/* v08-134: 手机竖屏标题放大、下移留呼吸(覆盖电影徽章里的 10.5vw 小字) */
html[data-dev="portrait"][data-phone="1"] #titleScreen .logo{font-size:clamp(46px,16vw,88px)!important;letter-spacing:clamp(5px,1.8vw,18px)!important;margin-top:5vh!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .logoSub{font-size:clamp(16px,5vw,28px)!important;letter-spacing:clamp(4px,1.4vw,12px)!important}
html[data-dev="portrait"][data-phone="1"] .btnStart{padding:14px 11vw;font-size:clamp(15px,5vw,26px)}
/* 手机竖屏标题界面: 一屏放下(压缩立绘/间距), 超高可滚动, 绝不横向溢出 */
html[data-dev="portrait"][data-phone="1"] #titleScreen{padding:2vh 2vw!important;overflow-y:auto;justify-content:flex-start;width:100%}
html[data-dev="portrait"][data-phone="1"] #titleScreen>*{max-width:100%}
html[data-dev="portrait"][data-phone="1"] .catVs{margin:10px 0!important;gap:2vw!important}
html[data-dev="portrait"][data-phone="1"] .catVs .big{width:clamp(68px,23vw,96px)!important;height:clamp(68px,23vw,96px)!important}
html[data-dev="portrait"][data-phone="1"] .catVs .vsx{font-size:clamp(22px,8vw,36px)!important}
html[data-dev="portrait"][data-phone="1"] .btnStart{margin-top:8px!important;padding:12px 10vw!important}
html[data-dev="portrait"][data-phone="1"] .btnFit{margin-top:6px!important;padding:8px 22px!important;font-size:clamp(12px,3.2vw,15px)!important}
html[data-dev="portrait"][data-phone="1"] .secRow{margin-top:6px!important;gap:6px!important}
html[data-dev="portrait"][data-phone="1"] .secRow .btnLab{padding:7px 4vw!important;min-height:44px!important;font-size:clamp(12px,3vw,14px)!important;margin-top:0!important}
html[data-dev="portrait"][data-phone="1"] .pickTitle{font-size:clamp(20px,7vw,38px)}
html[data-dev="portrait"][data-phone="1"] .pickSub{font-size:clamp(11px,3.4vw,16px)}
html[data-dev="portrait"][data-phone="1"] .mousePool{grid-template-columns:repeat(auto-fill,minmax(clamp(90px,26vw,120px),1fr));gap:1.5vh 2vw}
html[data-dev="portrait"][data-phone="1"] .pickCard .cname{font-size:clamp(10px,3.4vw,15px)}
html[data-dev="portrait"][data-phone="1"] .btnBack,.btnGo{font-size:clamp(12px,4vw,18px)}
/* 弹窗均衡 */
html[data-dev="portrait"][data-phone="1"] .boxCard{width:clamp(70px,22vw,96px)}
html[data-dev="portrait"][data-phone="1"] #boxTitle{font-size:clamp(18px,6vw,30px)}
html[data-dev="portrait"][data-phone="1"] .peekBtn,.peekGo{min-width:clamp(90px,26vw,120px);font-size:clamp(12px,4vw,18px)}
html[data-dev="portrait"][data-phone="1"] .resultTitle{font-size:clamp(34px,12vw,64px)}
html[data-dev="portrait"][data-phone="1"] .resultMsg{font-size:clamp(11px,3.4vw,18px)}
html[data-dev="portrait"][data-phone="1"] .resultBtns button{font-size:clamp(12px,4vw,18px);padding:11px 6vw}
/* 皮肤面板/道具弹层 */
html[data-dev="portrait"][data-phone="1"] #skinPanel{width:94vw;padding:16px}
html[data-dev="portrait"][data-phone="1"] .skinGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
html[data-dev="portrait"][data-phone="1"] #itemPopPanel{width:96vw}
/* 频闪抑制: 手机一律静态高亮 */
html[data-dev="portrait"][data-phone="1"] body::before,
html[data-dev="portrait"][data-phone="1"] #bg::after{animation:none}
html[data-dev="portrait"][data-phone="1"] .mouseCard.targetable,
html[data-dev="portrait"][data-phone="1"] .mSkill:not(.used),
html[data-dev="portrait"][data-phone="1"] .cSkill.clickable{animation:none!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.targetable{border-color:#4cd964;box-shadow:0 0 0 2px #4cd964}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you{box-shadow:0 0 0 2px #4cd964}
html[data-dev="portrait"][data-phone="1"] .mSkill:not(.used){box-shadow:0 0 0 1px #4cd964}
html[data-dev="portrait"][data-phone="1"] .cSkill.clickable{border-color:#4cd964;box-shadow:0 0 0 1px #4cd964}
html[data-dev="portrait"][data-phone="1"] .hpBarFill.low,.st-weak,.st-hurt{animation:none!important}

/* ---------- B. 手机/平板横屏 (data-dev=landscape, 矮屏): 紧凑左右, 字号用 --fs 均衡 ---------- */
html[data-dev="landscape"][data-phone="1"] #titleScreen{padding:1.5vh 3vw;overflow-y:auto;justify-content:flex-start}
html[data-dev="landscape"][data-phone="1"] .logo{font-size:clamp(24px,6.5vh,48px);margin:.8vh 0}
html[data-dev="landscape"][data-phone="1"] .logoSub{font-size:clamp(12px,4vh,20px);letter-spacing:4px}
html[data-dev="landscape"][data-phone="1"] .logoSmall{font-size:clamp(10px,3vh,14px);line-height:1.4}
html[data-dev="landscape"][data-phone="1"] .catVs{margin:1vh 0;gap:2vw}
html[data-dev="landscape"][data-phone="1"] .catVs .big{width:clamp(70px,16vh,110px);height:clamp(70px,16vh,110px)}
html[data-dev="landscape"][data-phone="1"] .catVs .vsx{font-size:clamp(28px,8vh,44px)}
html[data-dev="landscape"][data-phone="1"] .btnStart{padding:10px 38px;font-size:clamp(15px,5vh,24px)}
html[data-dev="landscape"][data-phone="1"] .btnLab{padding:6px 18px;min-height:44px;font-size:clamp(12px,3.5vh,16px)}
html[data-dev="landscape"][data-phone="1"] .sidePick{margin:1vh auto;max-width:90vw}
html[data-dev="landscape"][data-phone="1"] .sideBtn{min-width:0;padding:1.5vh 1.5vw}
html[data-dev="landscape"][data-phone="1"] .sideBig{font-size:clamp(36px,9vh,54px)}
html[data-dev="landscape"][data-phone="1"] .sideName{font-size:clamp(14px,4vh,20px)}
html[data-dev="landscape"][data-phone="1"] .sideDesc{font-size:clamp(10px,3vh,13px)}
html[data-dev="landscape"][data-phone="1"] .mousePool{grid-template-columns:repeat(auto-fill,minmax(clamp(92px,19vh,120px),1fr));gap:1vh 1vw}
html[data-dev="landscape"][data-phone="1"] #charPick .mousePool{max-height:calc(100vh - 130px)!important}
html[data-dev="landscape"][data-phone="1"] .pickTitle{font-size:clamp(18px,6vh,30px)}
html[data-dev="landscape"][data-phone="1"] .btnBack,.btnGo{font-size:clamp(12px,4vh,18px);padding:8px 20px}
/* v08-117: 横屏手机选角大卡修复——4列2行、卡片放大可点、标题紧凑腾空间 */
html[data-dev="landscape"][data-phone="1"] #pickScreen{padding:.8vh 2vw;gap:1vh}
html[data-dev="landscape"][data-phone="1"] .pickHeader{margin-bottom:0}
html[data-dev="landscape"][data-phone="1"] .pickKicker{display:none}
html[data-dev="landscape"][data-phone="1"] .pickTitle{font-size:clamp(14px,4.5vh,22px);letter-spacing:2px}
html[data-dev="landscape"][data-phone="1"] .pickSub{font-size:clamp(10px,2.8vh,13px);margin-top:1px;min-height:0}
html[data-dev="landscape"][data-phone="1"] #charPick{gap:1vh}
html[data-dev="landscape"][data-phone="1"] #charPick .mousePool{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-content:stretch;justify-items:stretch;gap:1vh 1.2vw;width:min(96vw,700px);max-height:none!important;flex:1;min-height:0}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard{width:100%;height:100%;aspect-ratio:auto}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard img{object-position:center 18%}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard .cname .cnMain{font-size:clamp(12px,3.6vh,17px)}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard .cname .cnSkin{font-size:clamp(10px,2.8vh,13px)}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard .hp{font-size:clamp(10px,2.8vh,14px)}
html[data-dev="landscape"][data-phone="1"] #charPick .pickCard .skinBtn{width:clamp(30px,8vh,36px)!important;height:clamp(30px,8vh,36px)!important;font-size:clamp(16px,5vh,20px)!important}
html[data-dev="landscape"][data-phone="1"] .pickFooter{margin-top:0;gap:2vw}
/* v08-117: 横屏手机教程气泡(无目标步骤)钉在顶部，不盖选人卡 */
html[data-dev="landscape"][data-phone="1"] #tutTip.tutCenter{top:max(6px,env(safe-area-inset-top));bottom:auto;left:50%;transform:translateX(-50%);width:min(86vw,360px);padding:8px 12px;max-height:26vh;overflow-y:auto}
/* v08-118: 横屏手机局内状态完整显示——状态框放宽(盖在立绘上方, 立绘最底), 字缩小不省略 */
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .status.status,
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .status.status{
  left:2.5%!important;top:16%!important;width:60%!important;height:auto!important;max-height:46%!important;overflow:hidden!important;gap:2px!important;z-index:6!important;margin:0!important;padding:0!important}
html[data-dev="landscape"][data-phone="1"] body .mouseCard .status.status .statusChip{
  font-size:clamp(7px,1.6vh,9px)!important;padding:1px 4px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important;max-width:100%!important;width:fit-content!important;display:inline-block!important;text-align:left!important;border-radius:6px!important;margin:0!important}
/* v08-118b: 竖屏手机同款状态修复——状态框放宽盖立绘上部, 字缩小可换行, 不再省略号 */
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .status.status,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .status.status{
  left:2.5%!important;top:16%!important;width:60%!important;height:auto!important;max-height:46%!important;overflow:hidden!important;gap:2px!important;z-index:6!important;margin:0!important;padding:0!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard .status.status .statusChip{
  font-size:clamp(8px,2.2vw,11px)!important;padding:1px 4px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important;max-width:100%!important;width:fit-content!important;display:inline-block!important;text-align:left!important;border-radius:6px!important;margin:0!important}
/* v08-119: 竖屏手机名字框同款加宽——血条右移让位, 名字/血量缩小, 配合 __fitNames 自动缩到一行放下 */
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top{
  left:2.5%!important;right:33.5%!important;width:auto!important;gap:2px!important;padding:0 3px!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .mhpBar.mhpBar,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .mhpBar.mhpBar{
  left:66.5%!important;right:2.5%!important;width:auto!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top .mname,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top .mname{
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex:1 1 auto!important;min-width:0!important;line-height:1.2!important;font-size:clamp(9px,2.4vw,12px)!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top .mhp,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top .mhp{
  font-size:clamp(8px,2vw,10px)!important;white-space:nowrap!important;margin-left:auto!important;flex:none!important}
/* v08-118: 横屏手机角色名一行显示完整(不再折行截断)——名字框加宽、血条右移让位、数字缩小 */
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top,
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top{
  left:2.5%!important;right:33.5%!important;width:auto!important;gap:2px!important;padding:0 3px!important}
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .mhpBar.mhpBar,
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .mhpBar.mhpBar{
  left:66.5%!important;right:2.5%!important;width:auto!important}
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top .mname,
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top .mname{
  font-size:clamp(8px,1.7vh,10px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex:1 1 auto!important;min-width:0!important;line-height:1.2!important}
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .top.top .mhp,
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you).mouseCard:not(.you) .top.top .mhp{
  font-size:clamp(7px,1.5vh,9px)!important;white-space:nowrap!important;margin-left:auto!important;flex:none!important}
/* v08-118: 局内设置弹窗横屏适配——限高可滚动、行紧凑 */
html[data-dev="landscape"][data-phone="1"] #battleSetPanel{width:min(94vw,520px)!important;max-height:88vh!important;overflow-y:auto!important;padding:10px 12px!important;border-radius:14px!important}
html[data-dev="landscape"][data-phone="1"] #battleSetTitle{font-size:15px!important;margin-bottom:6px!important}
html[data-dev="landscape"][data-phone="1"] #battleSetPanel .setRow{padding:6px 9px!important;margin-bottom:6px!important;border-radius:9px!important;gap:6px!important}
html[data-dev="landscape"][data-phone="1"] #battleSetPanel .setLabel{font-size:11px!important}
html[data-dev="landscape"][data-phone="1"] #battleSetPanel button{font-size:11px!important;padding:5px 10px!important;border-radius:8px!important}
html[data-dev="landscape"][data-phone="1"] #battleSetPanel input[type=range]{height:18px!important}
html[data-dev="landscape"][data-phone="1"] #bsCloseBtn{font-size:13px!important;padding:8px!important;margin-top:4px!important}
/* 横屏战斗: 左右, 猫区窄, 老鼠4列或2x2自适应 */
html[data-dev="landscape"][data-phone="1"] .topBar{padding:.4vh 1.5vw}
html[data-dev="landscape"][data-phone="1"] .turnBadge{font-size:clamp(12px,3.2vw,18px)}
html[data-dev="landscape"][data-phone="1"] .roundBadge{font-size:clamp(10px,2.6vw,14px)}
html[data-dev="landscape"][data-phone="1"] .taskBar{font-size:clamp(10px,2.4vw,14px);padding:.3vh 1vw;gap:.8vw}
html[data-dev="landscape"][data-phone="1"] .taskBar .tProgBar{width:clamp(80px,22vw,150px);height:7px}
html[data-dev="landscape"][data-phone="1"] .arena{padding:.6vh 1vw;gap:.8vw}
html[data-dev="landscape"][data-phone="1"] .sideArea{width:clamp(88px,13vw,120px);max-width:13vw;padding:5px;gap:.4vh;flex-shrink:0}
html[data-dev="landscape"][data-phone="1"] .catSkill{font-size:clamp(9px,2vw,12px)}
html[data-dev="landscape"][data-phone="1"] .logPanel{height:34vh}
html[data-dev="landscape"][data-phone="1"] .battleLog{height:24vh;min-height:24vh;max-height:28vh;font-size:clamp(10px,2.2vw,13px)}
/* 老鼠: 按宽度 auto-fit, 保底有4列可放 */
html[data-dev="landscape"][data-phone="1"] .miceZone{grid-template-columns:repeat(auto-fit,minmax(clamp(90px,min(22vw,15vh),150px),1fr));gap:.6vw;align-content:center}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{height:auto;flex:1;min-height:0}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:100%;width:100%;object-fit:contain;object-position:center top;max-height:none}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mname{font-size:clamp(10px,2.4vw,14px)}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mhp{font-size:clamp(9px,2vw,12px)}
html[data-dev="landscape"][data-phone="1"] .statusChip{font-size:clamp(8px,1.9vw,11px)}
html[data-dev="landscape"][data-phone="1"] .mSkill{font-size:clamp(9px,1.9vw,11px);padding:5px 2px}
html[data-dev="landscape"][data-phone="1"] .miniBtn{font-size:clamp(9px,2vw,12px);padding:5px 8px}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn{position:absolute;bottom:4px;left:4px;right:4px;gap:4px;background:rgba(0,0,0,.5);border-radius:8px}
/* 横屏频闪抑制 */
html[data-dev="landscape"][data-phone="1"] .mouseCard.targetable,
html[data-dev="landscape"][data-phone="1"] .mSkill:not(.used),
html[data-dev="landscape"][data-phone="1"] .cSkill.clickable{animation:none!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard.targetable{border-color:#4cd964;box-shadow:0 0 0 2px #4cd964}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you{box-shadow:0 0 0 2px #4cd964}
html[data-dev="landscape"][data-phone="1"] body::before,
html[data-dev="landscape"][data-phone="1"] #bg::after{animation:none}

/* ---------- C. 平板与桌面: 保留原布局, 只做轻微均衡(字号上限收敛, 不拥挤) ---------- */
html[data-phone="0"] .turnBadge{font-size:clamp(15px,2.6vw,24px)}
html[data-phone="0"] .roundBadge{font-size:clamp(13px,2.2vw,20px)}
html[data-phone="0"] .taskBar{font-size:clamp(13px,1.8vw,16px)}
html[data-phone="0"] .mouseCard .mname{font-size:clamp(13px,1.9vw,18px)}
html[data-phone="0"] .mSkill{font-size:clamp(11px,1.5vw,13px)}
html[data-phone="0"] .miniBtn{font-size:clamp(11px,1.6vw,14px)}
html[data-phone="0"] .statusChip{font-size:clamp(10px,1.3vw,12px)}

/* ---------- 通用: 展开/收起绝不挤动布局 (道具/日志/皮肤 全 fixed/absolute) ---------- */
#itemPop,#skinModal,#boxModal,#labModal,#resultScreen,#waterFx{position:fixed!important}
.mouseCard.you .miniBtns{position:absolute!important}
.arena{overflow:auto;-webkit-overflow-scrolling:touch}


/* ═══════════ 【旧媒体查询已退役, 由上方"发布级适配·增强层"取代】═══
   保留原文供追溯, 但整体禁用(永不匹配), 避免与新适配层冲突。
   (新适配层基于 data-dev/data-phone 属性 + clamp() + --fs, 更健壮)
═══════════ */
@media not all { /* disabled legacy media queries */
/* ═══════════ 移动端适配（竖屏窄屏：上下重排） ═══════════ */
/* 竖屏(含手机/平板竖屏)：整体重排为上下结构 */
@media (orientation:portrait),(max-width:820px) and (orientation:portrait){
  html,body{overflow:hidden;position:fixed;width:100%;height:100%}
  #app{display:flex;flex-direction:column}
  /* 手机禁用全屏星芒缩放动画(每帧重排全页→卡死频闪元凶), 改静态 */
  body::before{animation:none}
  #bg::after{animation:none}
  /* 手机禁用box-shadow脉冲动画(选择目标/技能/技能卡闪烁→手机每帧重绘→频闪), 改静态高亮 */
  .mouseCard.targetable,.mSkill:not(.used),.cSkill.clickable{animation:none!important}
  .mouseCard.targetable{border-color:#4cd964;box-shadow:0 0 0 2px #4cd964}
  .mouseCard.you{box-shadow:0 0 0 2px #4cd964}
  .mSkill:not(.used){box-shadow:0 0 0 1px #4cd964}
  .cSkill.clickable{border-color:#4cd964;box-shadow:0 0 0 1px #4cd964}
  .mouseCard.hpPulse .mhpFill,.hpBarFill.low,.st-weak,.st-hurt{animation:none!important}
  /* 顶部 */
  .topBar{padding:1vh 2vw}
  .turnBadge{font-size:min(5vw,26px)}
  .roundBadge{font-size:min(4vw,20px)}
  .taskBar{font-size:min(3.4vw,17px);gap:2vw;padding:.8vh 1vw;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
  .taskBar > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .taskBar .tProgBar{width:min(38vw,220px);flex-shrink:0}
  /* 顶部战斗徽章装饰层不挡操作 */
  #turnFlash{opacity:.5}
  /* arena 改为上下：猫区在上、主列在下 */
  .arena{flex-direction:column;padding:1vh 1.5vw;gap:1vh;overflow-y:auto}
  /* 猫区横向化：紧凑但完整, 不裁剪技能/跳过按钮(arena可滚动兜底) */
  .sideArea{width:100%;flex-direction:row;align-items:center;gap:2vw;padding:6px 8px;flex-shrink:0}
  .catCard{width:min(18vw,72px);height:min(24vw,96px);aspect-ratio:auto;flex-shrink:0}
  .catCard .cn{font-size:min(3vw,13px)}
  .catInfobox{flex:1;align-items:flex-start;gap:4px}
  .catName{font-size:min(4vw,18px);justify-content:flex-start}
  .catName #catHP{font-size:min(3vw,13px)!important}
  .hpBar{height:10px}
  .catStatusRow{justify-content:flex-start}
  .catChip{font-size:min(2.8vw,12px);padding:2px 8px}
  .catSkills{justify-content:flex-start;gap:1.5vw}
  .cSkill{padding:3px 8px}
  .cSkill span{font-size:min(2.8vw,12px)}
  .catSkipBtn{width:auto;padding:4px 12px;margin-top:0}
  /* 主列 */
  .mainCol{flex:1;gap:1vh;min-height:0}
  /* 战斗日志：压缩成可折叠小条（点击展开） */
  .logPanel{position:absolute;right:2vw;top:12vh;z-index:8;width:min(52vw,340px);height:auto;flex-shrink:0;max-height:34vh;background:rgba(10,8,20,.94);border:2px solid rgba(255,215,0,.5);box-shadow:0 10px 40px rgba(0,0,0,.7),0 0 24px rgba(255,215,0,.15);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
  .logTitle{font-size:min(3.4vw,15px);cursor:pointer;user-select:none;margin-bottom:0}
  .logTitle::after{content:" ▼";font-size:min(3vw,13px)}
  .logPanel.collapsed .battleLog{display:none}
  .logPanel.collapsed .logTitle::after{content:" ▶"}
  .logPanel.collapsed{max-height:5vh;top:12vh}
  .battleLog{height:18vh;min-height:18vh;max-height:28vh;font-size:min(3vw,15px);pointer-events:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}
  /* 老鼠：2x2 网格，minmax(0,1fr)保证行高不超容器、4只必在屏内完整可见 */
  .miceZone{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1vh 2vw;align-content:stretch}
  .mouseCard{max-height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}
  /* 玩家卡固定预留操作条高度(最多2行按钮~72px), 按钮出现/消失版面不跳 */
  .mouseCard.you{padding-top:72px}
  .mouseCard.you .miniBtns{position:absolute;top:0;left:0;right:0;padding:3px;gap:4px}
  .mouseCard.you .miniBtn{font-size:min(2.6vw,12px);padding:6px 6px;min-height:30px}
  .statusChip,.reviveBtn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%}
  .mouseCard .mname{font-size:min(3.4vw,16px)}
  .mouseCard .mhp{font-size:min(2.9vw,13px)}
  .mSkill{font-size:min(2.9vw,13px);padding:6px 3px}
  .miniBtn{font-size:min(2.9vw,13px);padding:6px 6px}
  .statusChip{font-size:min(2.5vw,12px)}
  .reviveBtn{font-size:min(2.7vw,12px)}
  .weakTag{font-size:min(2.9vw,14px)}
  .itemRow{flex-wrap:wrap;justify-content:center;gap:5px}
  /* 老鼠技能按钮(卡内)完整显示 */
  .mouseCard .mBtn{position:absolute;bottom:4px;left:4px;right:4px;gap:4px;padding:2px;background:rgba(0,0,0,.55);border-radius:8px}
  .mSkill{padding:7px 2px;font-size:min(2.7vw,12px);border-radius:8px}
  /* 老鼠插图: 竖屏2x2格子小, 立绘限高(16-22vh), 不撑满整卡, 给名字/血条/状态/按钮留空间 */
  .mouseCard .portrait{height:min(16vh,22vh);flex:0 0 auto;min-height:0}
  .mouseCard .portrait img{height:100%;width:auto;max-width:100%;object-fit:contain;object-position:center top;flex-shrink:0}
  /* 底部行动栏 */
  .actionBar{padding:1.2vh 1.5vw;gap:2vw}
  .btnAct{padding:12px 4vw;font-size:min(4vw,20px)}
  /* 选择页面 */
  .mousePool{grid-template-columns:repeat(auto-fill,minmax(min(26vw,110px),1fr));gap:1.5vh 2vw}
  .pickCard .cname{font-size:min(3.4vw,15px)}
  .pickCard .hp{font-size:min(3vw,13px)}
  .pickTitle{font-size:min(8vw,40px)}
  .pickSub{font-size:min(3.4vw,16px)}
  .btnBack,.btnGo{font-size:min(4vw,20px)}
  /* 弹窗 */
  .boxCard{width:min(22vw,96px)}
  #boxTitle{font-size:min(6vw,30px)}
  .peekBtn,.peekGo{min-width:min(26vw,120px);font-size:min(4vw,18px)}
  #boxHint{font-size:min(3.4vw,16px)}
  #waterTitle{font-size:min(6vw,32px)}
  #waterDesc{font-size:min(3.4vw,18px)}
  #waterBtn{font-size:min(4vw,20px)}
  .resultTitle{font-size:min(12vw,66px)}
  .resultMsg{font-size:min(3.4vw,18px)}
  .resultBtns button{font-size:min(4vw,20px);padding:12px 6vw}
  /* 标题页 */
  .logo{font-size:min(14vw,80px)}
  .logoSub{font-size:min(5vw,28px)}
  .logoSmall{font-size:min(3.4vw,16px)}
  .btnStart{font-size:min(5vw,28px);padding:16px 12vw}
  .btnLab{font-size:min(3.6vw,18px);padding:10px 7vw}
  .catVs .big{width:min(28vw,120px);height:min(28vw,120px)}
  .catVs .vsx{font-size:min(12vw,56px)}
  #labPanel{width:94vw}
  #labTitle{font-size:min(6vw,30px)}
  #labDesc,#labProgress,#labReport{font-size:min(3.4vw,16px)}
  #labCtrls .labLabel{font-size:min(3.4vw,16px)}
}

/* 横屏通用缩放（手机/平板横过来时：紧凑左右布局，防溢出、防乱） */
@media (orientation:landscape) and (max-height:900px){
  html,body{overflow:hidden;position:fixed;width:100%;height:100%}
  /* 横屏标题页/选人页压缩: 保证开始按钮可见 */
  #titleScreen{padding:2vh 3vw;justify-content:center;overflow-y:auto}
  .logo{font-size:min(12vh,64px);margin:1vh 0}
  .logoSub{font-size:min(6vh,24px);margin-top:4px}
  .logoSmall{font-size:min(4vh,15px);margin-top:4px}
  .catVs{margin:1.5vh 0;gap:3vw}
  .catVs .big{width:min(20vh,130px);height:min(20vh,130px);border-radius:18px}
  .catVs .vsx{font-size:min(9vh,50px)}
  .btnStart{margin-top:10px;padding:12px 48px;font-size:min(6vh,28px)}
  .btnLab{margin-top:8px;padding:8px 22px}
  .sidePick{margin:1.5vh auto}
  .sideBtn{min-width:0;padding:2vh 2vw}
  .mousePool{grid-template-columns:repeat(auto-fill,minmax(min(18vh,120px),1fr));gap:1.5vh 1vw}
  .topBar{padding:.5vh 2vw}
  .turnBadge{font-size:min(3.2vw,20px)}
  .roundBadge{font-size:min(2.6vw,16px)}
  .taskBar{padding:.4vh 1.5vw;font-size:min(2.6vw,15px)}
  .arena{padding:.6vh 1vw;gap:.8vw}
  /* 猫区：更紧凑, 且限制最大宽度防止挤跑老鼠区 */
  .sideArea{width:min(11vw,110px);max-width:11vw;padding:5px;gap:.4vh;flex-shrink:0}
  .catCard{aspect-ratio:3/4}
  .catSkill{font-size:min(2vw,13px)}
  .catSkipBtn{font-size:min(2vw,12px);padding:3px 4px}
  /* 日志：更矮但完整可读 */
  .logPanel{height:34vh}
  .battleLog{height:26vh;min-height:26vh;max-height:30vh;font-size:min(2.2vw,14px)}
  /* 老鼠：横屏按宽度自动排4列(宽)或2x2(窄), 最小列宽收紧保证4只在屏内 */
  .miceZone{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6vw;align-content:center}
  .mouseCard .portrait{height:auto;flex:1;min-height:0}
  .mouseCard .portrait img{height:100%;width:100%;object-fit:contain;object-position:center top;max-height:none}
  .mouseCard .mname{font-size:min(2.4vw,15px)}
  .mouseCard .mhp{font-size:min(2vw,13px)}
  .statusChip{font-size:min(1.9vw,12px)}
  .mSkill{font-size:min(1.9vw,12px);padding:5px 2px}
  .miniBtn{padding:5px 8px;font-size:min(2vw,13px)}
  .weakTag{font-size:min(2vw,13px)}
  .miniBtns{flex-wrap:wrap;gap:4px}
  .mouseCard .mBtn{position:absolute;bottom:4px;left:4px;right:4px;gap:4px;background:rgba(0,0,0,.5);border-radius:8px}
  /* 频闪抑制：横屏手机也禁box-shadow脉冲 */
  .mouseCard.targetable,.mSkill:not(.used),.cSkill.clickable{animation:none!important}
  .mouseCard.targetable{border-color:#4cd964;box-shadow:0 0 0 2px #4cd964}
  .mouseCard.you{box-shadow:0 0 0 2px #4cd964}
  body::before{animation:none}
  #bg::after{animation:none}
  .mouseCard.hpPulse .mhpFill,.hpBarFill.low,.st-weak,.st-hurt{animation:none!important}
}
/* ═══════════ 极矮横屏(手机横过来, 高度<560px)：猫区改横向压缩, 防溢出点不到 ═══════════ */
@media (orientation:landscape) and (max-height:560px){
  /* 横屏标题页：压缩垂直堆叠, 保证开始按钮可见可点 */
  #titleScreen{padding:1vh 3vw;justify-content:flex-start;overflow-y:auto}
  .logo{font-size:min(7vh,40px);margin:1vh 0}
  .logoSub{font-size:min(4vh,20px);margin-top:2px;letter-spacing:4px}
  .logoSmall{font-size:min(3vh,14px);margin-top:2px;line-height:1.3}
  .catVs{margin:1vh 0;gap:3vw}
  .catVs .big{width:min(18vh,110px);height:min(18vh,110px);border-radius:14px}
  .catVs .vsx{font-size:min(8vh,44px)}
  .btnStart{margin-top:8px;padding:10px 40px;font-size:min(5vh,26px);letter-spacing:3px}
  .btnLab{margin-top:6px;padding:6px 18px;font-size:min(4vh,16px)}
  /* 阵营选择/选鼠页横屏压缩 */
  .sidePick{margin:1vh auto;max-width:90vw}
  .sideBtn{min-width:0;max-width:300px;padding:1.5vh 2vw}
  .sideBig{font-size:min(10vh,56px)}
  .sideName{font-size:min(4vh,20px)}
  .sideDesc{font-size:min(3vh,13px)}
  .mousePool{grid-template-columns:repeat(auto-fill,minmax(min(16vh,110px),1fr));gap:1vh 1.5vw}
  .pickTitle{font-size:min(8vh,36px)}
  .pickSub{font-size:min(3.5vh,15px)}
  .btnBack,.btnGo{font-size:min(4vh,18px);padding:8px 20px}
  /* 横屏角色对战界面：选中阵容后压缩 */
  .catVs .big{width:min(16vh,100px);height:min(16vh,100px)}
  .btnStart{padding:10px 40px}
  /* 猫区：从纵向堆叠改为横向紧凑, 大幅压缩高度; 但必须限制宽度, 否则挤跑老鼠区 */
  .sideArea{flex-direction:row;width:auto;max-width:42vw;max-height:none;gap:.5vh;padding:4px 8px;flex-wrap:nowrap;align-items:center;flex-shrink:0}
  .catCard{width:min(14vw,88px);aspect-ratio:3/4;flex-shrink:0}
  .catInfobox{flex:1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;justify-content:flex-start;min-width:0}
  .catName{font-size:min(2.6vw,15px)}
  .catSkill,.cSkill{padding:2px 6px}
  .catSkills,.catChips{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}
  .catSkipBtn{padding:2px 8px;font-size:min(2vw,11px)}
  /* 老鼠：矮横屏强制4等分列, 不死守150px最小宽, 保证4只都在屏内 */
  .miceZone{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6vw;align-content:center}
  .mouseCard .portrait{height:min(12vh,16vh);flex:0 0 auto}
  .mouseCard .portrait img{height:100%;width:auto;max-width:100%;object-fit:contain;object-position:center top;flex-shrink:0}
  .topBar{padding:.3vh 1.5vw}
  .taskBar{font-size:min(2.4vw,13px);padding:.2vh 1vw;gap:.8vw}
  .taskBar .tProgBar{width:min(26vw,140px);height:7px}
  .taskBar .tKey,.taskBar .tEsc{white-space:nowrap}
  .battleLog{height:18vh;min-height:18vh;font-size:min(2vw,12px)}
  .mSkill{font-size:min(2vw,11px);padding:4px 1px}
  .miniBtn{font-size:min(2vw,11px);padding:3px 6px}
}
}
/* ═══════════ 史诗感增强（深色基调上叠加，V2金色命运主题） ═══════════ */
/* 背景星芒光晕：缓慢流动，营造"命运星穹"氛围（canvas星星之下） */
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(1200px 600px at 20% 15%,rgba(255,215,0,.10),transparent 60%),
    radial-gradient(900px 500px at 85% 10%,rgba(168,85,247,.12),transparent 60%),
    radial-gradient(1000px 700px at 70% 90%,rgba(255,45,120,.08),transparent 60%);
  animation:starDrift 18s ease-in-out infinite alternate}
@keyframes starDrift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-2%,-3%) scale(1.06)}}
/* 顶部细金线，命运分割 */
.topBar{border-bottom:1px solid rgba(255,215,0,.18);position:relative}
.topBar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent,rgba(255,215,0,.7),transparent);opacity:.6}
/* 鼠标卡片：浮雕 + 顶部高光 + 金边发光，像"命运卡牌" */
.mouseCard{background:
  linear-gradient(180deg,rgba(255,210,90,.10),rgba(90,60,10,.06) 55%,rgba(20,14,4,.14)),
  linear-gradient(180deg,rgba(255,255,255,.05),transparent 30%);
  border:2px solid rgba(255,205,90,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 22px rgba(0,0,0,.45);
  transition:transform .15s,box-shadow .2s,border-color .2s}
.mouseCard::before{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;
  background:radial-gradient(120% 60% at 50% 0%,rgba(255,215,0,.10),transparent 55%)}
.mouseCard:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 12px 30px rgba(0,0,0,.55),0 0 18px rgba(255,215,0,.12)}
/* 立绘神圣光晕：角色背后一圈金光 */
.mouseCard .portrait img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.6)) drop-shadow(0 0 14px rgba(255,215,0,.18))}
.mouseCard .portrait::after{content:"";position:absolute;left:50%;top:42%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,215,0,.16),transparent 65%);pointer-events:none}
/* 卡片底部名字渐变色条 */
.mouseCard .top{background:linear-gradient(180deg,rgba(255,200,60,.12),rgba(255,200,60,.02));border-bottom:1px solid rgba(255,215,0,.2)}
/* 猫卡同样增强 */
.catCard{border:2px solid rgba(255,120,120,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 8px 22px rgba(0,0,0,.45)}
.catCard img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.6)) drop-shadow(0 0 14px rgba(255,90,90,.2))}
/* 战斗日志：金色羊皮卷质感 */
.logPanel{border:2px solid rgba(255,215,0,.45);box-shadow:0 6px 25px rgba(0,0,0,.5),inset 0 0 30px rgba(255,215,0,.04)}
.battleLog{color:#ffe9a8}
/* 行动按钮：发光描边强化 */
.btnAct{box-shadow:0 8px 30px rgba(255,45,120,.45),0 0 0 1px rgba(255,255,255,.12) inset}
.btnAct.green{box-shadow:0 8px 30px rgba(76,217,100,.4),0 0 0 1px rgba(255,255,255,.12) inset}
/* 命中闪光（配合JS加 .hitFlash）：加强版 = 白闪 + 击退抖动 */
@keyframes hitFlash{0%{filter:brightness(3) saturate(1.6);transform:translateX(0) scale(1.04)}25%{transform:translateX(-5px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}100%{filter:brightness(1);transform:translateX(0) scale(1)}}
.hitFlash{animation:hitFlash .4s ease-out}
/* 💥 受击卡片更狠的红色重击抖动（叠加在hitFlash上） */
@keyframes hurtShake{0%{transform:translate(0,0) scale(1)}15%{transform:translate(-6px,3px) scale(1.05)}30%{transform:translate(5px,-3px) scale(1.02)}45%{transform:translate(-4px,2px) scale(1.05)}60%{transform:translate(3px,-2px) scale(1)}75%{transform:translate(-2px,1px) scale(1.02)}100%{transform:translate(0,0) scale(1)}}
.hurtShake{animation:hurtShake .5s ease-out}
/* 🩸 血条受击抖动 */
@keyframes hpShake{0%{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}100%{transform:translateX(0)}}
.hpShake{animation:hpShake .4s ease-out}
/* 🏃 出招突进：攻击方向扑过去(通过CSS变量 --lx/--ly 控制方向)再回位 */
@keyframes lungeAnim{0%{transform:translate(0,0)}35%{transform:translate(var(--lx,40px),var(--ly,-10px)) scale(1.06)}70%{transform:translate(calc(var(--lx,40px)*.3),calc(var(--ly,-10px)*.3)) scale(1.02)}100%{transform:translate(0,0)}}
.lunge{animation:lungeAnim .24s cubic-bezier(.2,.8,.3,1);position:relative;z-index:20}
/* 💨 被击退：向攻击反方向位移再弹回 */
@keyframes knockbackAnim{0%{transform:translate(0,0)}25%{transform:translate(var(--kx,-24px),var(--ky,6px)) scale(.96)}55%{transform:translate(calc(var(--kx,-24px)*.4),calc(var(--ky,6px)*.4)) scale(1.02)}100%{transform:translate(0,0)}}
.knockback{animation:knockbackAnim .3s cubic-bezier(.2,.8,.3,1)}
/* ❤️ 血条数字跳动 + 归零闪烁 */
@keyframes hpNumPop{0%{transform:scale(1.6);color:#ff5a5a}60%{transform:scale(1)}100%{transform:scale(1)}}
.hpNumPop{animation:hpNumPop .35s ease-out;display:inline-block}
@keyframes hpZeroFlash{0%,100%{opacity:1}50%{opacity:.2}}
.hpZeroFlash{animation:hpZeroFlash .5s infinite}
/* 血条减少闪白 */
@keyframes hpFlash{0%{filter:brightness(2)}100%{filter:brightness(1)}}
.hpFlash{animation:hpFlash .3s ease-out}
/* 技能释放冲击波 */
@keyframes castBurst{0%{box-shadow:0 0 0 0 rgba(255,215,0,.7)}100%{box-shadow:0 0 0 26px rgba(255,215,0,0)}}
.castBurst{animation:castBurst .5s ease-out}
/* 回合切换时顶部徽章微光 */
.turnBadge,.roundBadge{text-shadow:0 0 12px rgba(255,215,0,.5)}
/* 命运转轮：回合切换徽章闪入 */
@keyframes turnPulse{0%{transform:scale(.6);opacity:0;filter:blur(4px)}55%{transform:scale(1.18);opacity:1;filter:blur(0)}100%{transform:scale(1)}}
.turnPulse{animation:turnPulse .5s cubic-bezier(.68,-.55,.27,1.55)}
/* 全屏回合色调脉冲（猫=红调/鼠=绿调），瞬时覆盖后消失 */
#turnFlash{position:fixed;inset:0;z-index:9;pointer-events:none;opacity:0}
#turnFlash.flash{animation:turnFlashAnim .7s ease-out}
#turnFlash.catFlash{background:radial-gradient(circle at 50% 30%,rgba(255,80,80,.28),transparent 70%)}
#turnFlash.mouseFlash{background:radial-gradient(circle at 50% 30%,rgba(76,217,100,.28),transparent 70%)}
@keyframes turnFlashAnim{0%{opacity:1}100%{opacity:0}}
/* 选人卡片：史诗仪式感（立绘光晕+悬停金边+已选光环） */
.pickCard{background:linear-gradient(180deg,#232350,#14142e 70%);border:2px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 6px 18px rgba(0,0,0,.45)}
.pickCard img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(255,215,0,.12));transition:transform .15s}
.pickCard::before{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;
  background:radial-gradient(140% 70% at 50% 0%,rgba(255,215,0,.08),transparent 55%)}
.pickCard:hover{transform:translateY(-5px) scale(1.04);border-color:rgba(255,215,0,.6);
  box-shadow:0 14px 34px rgba(0,0,0,.6),0 0 22px rgba(255,215,0,.22)}
.pickCard:hover img{transform:scale(1.04)}
.pickCard.picked,.pickCard.playerPick{border-color:#ffd700;box-shadow:0 0 0 3px #ffd700,0 8px 24px rgba(0,0,0,.5),0 0 30px rgba(255,215,0,.4)}
.pickCard .cname{background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.75));font-size:min(2vw,18px);letter-spacing:1px;text-shadow:0 1px 4px #000}
.catPick{border-color:rgba(255,120,120,.35)}
.catPick::before{background:radial-gradient(140% 70% at 50% 0%,rgba(255,90,90,.08),transparent 55%)}
.catPick:hover{border-color:rgba(255,120,120,.6);box-shadow:0 14px 34px rgba(0,0,0,.6),0 0 22px rgba(255,90,90,.2)}
/* 结算揭晓：标题光辉放大 */
@keyframes ceremony{0%{transform:scale(.7);opacity:0;filter:blur(6px) brightness(1.6)}40%{transform:scale(1.12);opacity:1;filter:blur(0) brightness(1.5)}70%{transform:scale(1);filter:brightness(1.15)}100%{transform:scale(1);filter:brightness(1)}}
.ceremony{animation:ceremony 1.2s cubic-bezier(.22,.9,.35,1.1)}
.resultTitle{text-shadow:0 0 60px currentColor}
/* 命运星穹背景（标题/选人屏）XING1 */
#screenBg{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .45s var(--ease-out);
  background:radial-gradient(ellipse at 50% 40%,#1c1844 0%,#0e0b26 70%); /* v08-257: 星空图改为JS空闲加载, 占位渐变 */
  box-shadow:inset 0 0 30vh rgba(0,0,0,.5)}
#screenBg.on{opacity:1}
#screenBg::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(8,6,22,.45) 100%)}
/* 汤姆皮肤系统 */
#skinModal{position:fixed;inset:0;z-index:14;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#skinPanel{background:linear-gradient(180deg,#1c1a3e,#120f2e);border:1px solid rgba(255,215,0,.45);border-radius:18px;padding:22px;width:min(92vw,760px);max-height:88vh;overflow-y:auto;box-shadow:0 0 60px rgba(255,215,0,.25),0 20px 60px rgba(0,0,0,.7);text-align:center}
#skinTitle{font-size:min(4.5vw,20px);font-weight:900;color:#ffd700;letter-spacing:3px;margin-bottom:16px;text-shadow:0 0 20px rgba(255,215,0,.5)}
.skinGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.skinCard{position:relative;border-radius:14px;overflow:hidden;cursor:pointer;border:2px solid rgba(255,255,255,.15);background:#1a1a3a;transition:transform .15s,box-shadow .2s,border-color .2s}
.skinCard:hover{transform:translateY(-3px);border-color:#ffd700;box-shadow:0 10px 26px rgba(0,0,0,.55),0 0 24px rgba(255,215,0,.35)}
.skinCard.cur{border-color:#ffd700;box-shadow:0 0 0 3px #ffd700,0 0 30px rgba(255,215,0,.45)}
.skinCard.sp{border-color:rgba(255,215,0,.4);background:linear-gradient(160deg,#241d4a,#2a1238)}
.skinCard.sp:hover{border-color:#ff4d9d;box-shadow:0 10px 26px rgba(0,0,0,.55),0 0 30px rgba(255,77,157,.4)}
.skinCard.sp.cur{border-color:#ffd700;box-shadow:0 0 0 3px #ffd700,0 0 34px rgba(255,77,157,.55)}
/* SP 至尊专属: 旋转流光边框 + 外发光脉冲 */
.skinCard.sp::before{content:"";position:absolute;inset:-2px;border-radius:16px;padding:2px;
  background:conic-gradient(from var(--ang,0deg),#ffd700,#ff4d9d,#a06bff,#4dd0ff,#ffd700);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;animation:spBorder 4s linear infinite}
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes spBorder{to{--ang:360deg}}
.skinCard.sp .skinImg{filter:saturate(1.15) contrast(1.05)}
.skinCard.sp .skinRare.sp{font-size:min(2.8vw,12px);letter-spacing:1px}
.skinCard .skinImg{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.skinCard .skinName{background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.85));padding:8px;font-size:min(3.2vw,14px);font-weight:700;color:#ffd700;letter-spacing:1px;text-shadow:0 1px 4px #000;white-space:normal;word-break:break-all;line-height:1.35;min-height:2em}
.skinCard .skinRare{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#ffd700,#ff8c00);color:#3a1d00;padding:2px 10px;border-radius:20px;font-size:min(2.6vw,11px);font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.skinCard .skinRare.sp{background:linear-gradient(135deg,#ffd700,#ff4d9d,#a06bff,#ffd700);background-size:220% 220%;animation:spShine 3s linear infinite;color:#fff;text-shadow:0 0 6px rgba(255,215,0,.6),0 0 12px rgba(160,107,255,.6);border:1px solid rgba(255,255,255,.5)}
@keyframes spShine{0%{background-position:0% 50%}100%{background-position:200% 50%}}
/* SP 卡片呼吸光晕 */
.skinCard.sp{animation:spGlow 2.2s ease-in-out infinite}
@keyframes spGlow{0%,100%{box-shadow:0 0 12px rgba(255,215,0,.25)}50%{box-shadow:0 0 34px rgba(255,77,157,.55),0 0 60px rgba(160,107,255,.35)}}
.skinCard .skinCheck{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.7);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;color:#4cd964;border:1px solid rgba(76,217,100,.6)}
.skinBtn{margin-top:10px;padding:8px 14px;border:none;border-radius:10px;background:linear-gradient(135deg,#ffd700,#ff8c00);color:#3a1d00;font-weight:900;font-size:min(3.2vw,14px);cursor:pointer;box-shadow:0 4px 14px rgba(255,215,0,.4);transition:transform .12s}
.skinBtn:hover{transform:scale(1.05)}
/* 选人卡上的"换皮肤"按钮：右上角小图标, 不挡海报 */
.pickCard .skinBtn{position:absolute;top:4px;right:4px;left:auto;bottom:auto;z-index:6;margin:0;width:30px;height:30px;padding:0;font-size:15px;line-height:1;text-align:center;border-radius:50%;border:2px solid rgba(255,255,255,.6);box-shadow:0 4px 14px rgba(0,0,0,.6),0 0 12px rgba(255,215,0,.45);display:flex;align-items:center;justify-content:center}
.pickCard .infoBtn{position:absolute;top:4px;right:auto;left:4px;bottom:auto;z-index:6;width:30px;height:30px;padding:0;font-size:14px;line-height:1;text-align:center;border-radius:50%;border:2px solid rgba(255,255,255,.6);box-shadow:0 4px 14px rgba(0,0,0,.6),0 0 12px rgba(255,215,0,.45);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffd700,#ff8c00);color:#3a1a00;cursor:pointer}
.pickCard.catPick .skinBtn{background:linear-gradient(135deg,#ffd700,#ff8c00)}
/* 默认皮肤：大 emoji 头像（选人卡） */
.pickCard .avatarEmoji{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:min(18vw,90px);line-height:1;text-shadow:0 6px 24px rgba(0,0,0,.7),0 0 40px rgba(255,215,0,.35);filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
.pickCard .avatarEmoji.pickImg{font-size:min(16vw,80px)}
/* 皮肤面板：默认皮 emoji 缩略图 */
.skinCard .skinEmoji{display:flex;align-items:center;justify-content:center;font-size:min(16vw,72px);line-height:1;background:radial-gradient(circle at 50% 40%,rgba(255,215,0,.12),transparent 70%);text-shadow:0 4px 16px rgba(0,0,0,.6);aspect-ratio:16/9}


/* ═══════════ 平板/小屏中等缩放层 (非手机但高度<900: 平板横屏/小笔记本) ═══════════ */
html[data-short="1"] .topBar{padding:.6vh 2vw}
html[data-short="1"] .taskBar{padding:.5vh 1.5vw;font-size:clamp(12px,1.7vw,15px)}
html[data-short="1"] .logPanel{height:34vh}
html[data-short="1"] .battleLog{height:24vh;min-height:24vh;max-height:27vh}
html[data-short="1"] .mouseCard .portrait{height:min(22vh,26vh)}
html[data-short="1"] .mouseCard .mname{font-size:clamp(12px,1.8vw,16px)}
html[data-short="1"] .mouseCard .mhp{font-size:clamp(11px,1.6vw,14px)}
html[data-short="1"] .mSkill{font-size:clamp(10px,1.4vw,12px)}
html[data-short="1"] .statusChip{font-size:clamp(9px,1.3vw,11px)}
html[data-short="1"] .miniBtn{font-size:clamp(10px,1.5vw,13px)}
html[data-short="1"] .sideArea{width:clamp(100px,11vw,130px)}
html[data-short="1"] .catCard{aspect-ratio:3/4}
html[data-short="1"] .btnAct{padding:11px 4vw;font-size:clamp(13px,2.2vw,18px)}
html[data-short="1"] .pickCard .cname{font-size:clamp(11px,1.8vw,16px)}
html[data-short="1"] .mousePool{grid-template-columns:repeat(auto-fill,minmax(clamp(90px,12vw,130px),1fr))}
html[data-short="1"] .catChip{font-size:clamp(9px,1.2vw,11px)}
html[data-short="1"] .cSkill span{font-size:clamp(9px,1.3vw,12px)}
html[data-short="1"] .catSkipBtn{font-size:clamp(9px,1.2vw,11px)}


/* ═══════════ 触控优化: 大按钮大触控区(玩家友好, 发布标准≥44px) ═══════════ */
/* 技能按钮: 加大内边距和字号 → 手指好点, 不误触 */
.mSkill{padding:10px 6px;min-height:44px}
.cSkill{padding:8px 10px;min-height:40px;align-items:center}
.cSkill span{line-height:1.2}
/* 选项/探索按钮: 弃用vw/vh, 改固定px(手机不再过小) */
.peekBtn,.peekGo{padding:10px 18px;min-height:44px;font-size:clamp(13px,2.4vw,18px)}
/* 选人卡片按钮 */
.pickCard .cname{font-size:clamp(11px,2vw,17px);padding:7px 4px}
/* 底部大按钮: 保证高度 */
.btnAct{border-radius:44px}
/* 道具/技能弹层按钮: 更高更好点 */
#itemPopRow .miniBtn{min-height:52px;padding:14px 16px;font-size:clamp(13px,3.4vw,16px)}
/* 回合/状态按钮: 触控友好 */
.miniBtn{min-height:40px}
/* 血条旁数字大一点(手机上看得清) */
.mouseCard .mhp{font-size:clamp(11px,2.6vw,14px);padding-left:2px}
/* 手机竖屏: 技能按钮更大(触控优先) */
html[data-dev="portrait"][data-phone="1"] .mSkill{min-height:46px}
html[data-dev="portrait"][data-phone="1"] .mBtn{gap:6px}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{height:clamp(64px,15vh,110px)}

/* ═══════════ 发布级 UI 质感精修: 简洁·大方·均衡 ═══════════ */
/* —— 更克制的圆角/阴影/层级, 去"网页感", 增"游戏感" —— */
html,body{overscroll-behavior:none}
button,.btn,.miniBtn,.mSkill,.cSkill,.peekBtn,.peekGo,.boxCard,.skinCard,.pickCard{outline:none;-webkit-tap-highlight-color:transparent}
/* 主按钮: 统一触感(按下微缩+光晕), 桌面悬停微浮 */
.btn:active,.miniBtn:active,.mSkill:active,.cSkill:active,.btnAct:active{transform:scale(.94)!important;filter:brightness(1.1)}
/* 补全剩余可按元素的按压反馈（Refactoring UI：任何可点元素都要有按下去的实感） */
.setToggle:active,.devBtn:active,.peekGo:active,#settingsPanel button:active,#battleSetPanel button:active,#morePanel button:active,.ciClose:active,#skinModal button:active,#devAudioClose:active{transform:scale(.95);filter:brightness(1.08)}
/* Emil 品味：所有可按元素统一强 ease-out 曲线（120-180ms 按压反馈预算内） */
.btn,.btnLab,.miniBtn,.mSkill,.cSkill,.sideBtn,.reviveBtn,.skinBtn,.peekBtn,.peekGo,.catSkipBtn,.resultBtns button,.btnFit,.battleSetBtn,.pickCard,.skinCard,.boxCard{transition-timing-function:var(--ease-out)!important}
/* Refactoring UI 品味：长列表视口外跳过渲染（content-visibility 性能优化，视觉零变化） */
#mousePool .pickCard,#skinGrid .skinCard,#devAudioBody>*{content-visibility:auto;contain-intrinsic-size:auto 200px}
/* 可达性：键盘 Tab 导航时显示金色焦点环（鼠标/触屏不受影响） */
:focus-visible{outline:2px solid #ffd700;outline-offset:2px}
/* 质感统一：所有可滚动面板用细金滚动条，跟战斗日志同一套 */
#ruleBody,#mousePool,#skinGrid,#devAudioBody,.ciPanel,.lyricsBody,#morePanel{scrollbar-width:thin;scrollbar-color:rgba(255,215,0,.35) transparent}
#ruleBody::-webkit-scrollbar,#mousePool::-webkit-scrollbar,#skinGrid::-webkit-scrollbar,#devAudioBody::-webkit-scrollbar,.ciPanel::-webkit-scrollbar,.lyricsBody::-webkit-scrollbar,#morePanel::-webkit-scrollbar{width:5px}
#ruleBody::-webkit-scrollbar-thumb,#mousePool::-webkit-scrollbar-thumb,#skinGrid::-webkit-scrollbar-thumb,#devAudioBody::-webkit-scrollbar-thumb,.ciPanel::-webkit-scrollbar-thumb,.lyricsBody::-webkit-scrollbar-thumb,#morePanel::-webkit-scrollbar-thumb{background:rgba(255,215,0,.3);border-radius:4px}
/* ═══════════ 新手引导（零基础手把手，仅首次显示） ═══════════ */
#tutOverlay{position:fixed;inset:0;z-index:100000;pointer-events:none}
#tutMask{position:fixed;z-index:100000;background:transparent;border-radius:12px;box-shadow:0 0 0 9999px rgba(4,3,14,.66);pointer-events:none}
#tutTip{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(90vw,430px);background:linear-gradient(160deg,#1a1740,#241a45);border:2px solid rgba(255,215,0,.65);border-radius:18px;padding:14px 16px 12px;box-shadow:0 20px 60px rgba(0,0,0,.8),0 0 30px rgba(255,215,0,.15);pointer-events:auto;z-index:100001;animation:tutFade .18s ease-out}
#tutTip.top{bottom:auto;top:max(16px,env(safe-area-inset-top))}
#tutTip.tutCenter{bottom:auto;top:50%;left:50%;transform:translate(-50%,-50%)}
#tutStep{font-size:11px;font-weight:900;color:#7dff9a;letter-spacing:1px;margin-bottom:4px}
#tutTitle{font-size:17px;font-weight:900;color:#ffd700;margin-bottom:6px;letter-spacing:.5px}
#tutText{font-size:14px;color:#e8e0d0;line-height:1.7;margin-bottom:10px}
#tutBtns{display:flex;justify-content:space-between;align-items:center;gap:8px}
#tutBtns button{padding:9px 18px;border:none;border-radius:12px;font-weight:800;font-size:13px;cursor:pointer;transition:transform .15s var(--ease-out),box-shadow .2s}
#tutBtns button:active{transform:scale(.95)}
#tutSkip{background:rgba(10,8,22,.78);color:#fff;border:1px solid rgba(255,255,255,.55);font-size:14px}
#tutNext{background:linear-gradient(135deg,#ffd700,#ff9d00);color:#3a1a00;box-shadow:0 4px 14px rgba(255,180,0,.35)}
.tut-target{outline:3px solid #ffd700!important;outline-offset:2px;border-radius:10px;animation:tutPulse 1.3s ease-in-out infinite}
@keyframes tutPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,215,0,.55)}50%{box-shadow:0 0 0 9px rgba(255,215,0,0)}}
/* ═══════════ 教程中心（新手/进阶/角色，随时查看）═══════════ */
#tutModal{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;background:rgba(4,3,14,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#tutModal.hidden{display:none}
#tutPanel{width:min(92vw,520px);max-height:86vh;overflow-y:auto;background:linear-gradient(160deg,#1a1740,#241a45);border:2px solid rgba(255,215,0,.55);border-radius:18px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.75);animation:modalIn .25s var(--ease-out)}
#tutCenterTitle{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;font-weight:900;color:#ffd700;text-align:center;letter-spacing:2px;margin-bottom:14px}
.tutCat{background:rgba(255,255,255,.045);border:1px solid rgba(255,215,0,.22);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.tutCatTitle{font-size:15px;font-weight:900;color:#ffd700;margin-bottom:5px}
.tutCatDesc{font-size:12.5px;color:#cfc8dc;line-height:1.6;margin-bottom:10px}
.tutGo{width:100%;min-height:44px}
#tutRoleGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#tutRoleGrid button{min-height:42px;font-size:13px;padding:6px 8px}
/* ═══════════ 弹窗退出动画（关闭时快速缩回，进出对称） ═══════════ */
@keyframes fadeOut{to{opacity:0}}
@keyframes modalOut{to{opacity:0;transform:scale(.95)}}
.closing{animation:fadeOut .15s var(--ease-out) forwards!important}
.closing>*{animation:modalOut .15s var(--ease-out) forwards!important}
@media (hover:hover) and (pointer:fine){ .btn:hover,.btnAct:hover,.peekGo:hover{transform:translateY(-2px)} }
/* 卡片统一: 柔和高斯阴影替代生硬黑色投影 */
.mouseCard,.catCard,.pickCard,.skinCard{box-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35)}
.mouseCard:hover,.catCard:hover,.pickCard:hover{box-shadow:0 2px 6px rgba(0,0,0,.3),0 14px 34px rgba(0,0,0,.45)}
/* 顶部状态栏: 更简洁(半透明磨砂, 细金线) */
.topBar{background:rgba(8,6,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.taskBar{background:rgba(8,6,20,.4)}
/* 战斗日志: 淡金卷轴, 内边距均衡 */
.logPanel{background:rgba(10,8,20,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.battleLog{scrollbar-width:thin;scrollbar-color:rgba(255,215,0,.35) transparent}
.battleLog::-webkit-scrollbar{width:5px}
.battleLog::-webkit-scrollbar-thumb{background:rgba(255,215,0,.3);border-radius:4px}
/* 行动按钮: 更大触控区(发布标准), 间距均衡 */
.btnAct,.miniBtn,.mSkill,.cSkill,.peekBtn,.peekGo{min-height:40px}
.miniBtn{padding:8px 12px}
/* 老鼠卡立绘: 顶部对齐, 下方留白给信息, 更干净 */
.mouseCard .portrait{justify-content:flex-start}
.mouseCard .portrait img{object-position:center 12%}
/* 血条: 更精致(圆角胶囊, 底部高光) */
.hpBar,.mhpBar{border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.5)}
.hpBarFill,.mhpFill{border-radius:999px}
/* 回合徽章: 更清晰 */
.turnBadge{letter-spacing:1px}
/* 选中反馈: 金框呼吸更柔和(桌面) */
@media (hover:hover) and (pointer:fine){ .mouseCard.targetable{animation:pulseGoldSoft 1.6s ease-in-out infinite} }
@keyframes pulseGoldSoft{0%,100%{box-shadow:0 0 0 2px #4cd964,0 0 10px rgba(76,217,100,.25)}50%{box-shadow:0 0 0 2px #4cd964,0 0 20px rgba(76,217,100,.55)}}
/* 标题屏: 说明文字精简展示, 微调间距更透气 */
.logoSmall{max-width:min(560px,88vw);margin-left:auto;margin-right:auto;opacity:.9}
/* 结算屏: 更聚焦 */
.resultBox{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* 加载页: 更精致 */
.loader{border-width:4px;box-shadow:0 0 30px rgba(255,215,0,.25)}
/* 减少生硬的全屏纯色, 用渐变+辉光做层次(简洁大方) */
#loading{background:radial-gradient(ellipse at 50% 40%,#1a1a4a,#0f0c29 70%)}


/* 规则说明弹窗(清爽, 与实验室风格统一) */
#ruleModal{position:fixed;inset:0;z-index:13;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#rulePanel{width:min(92vw,640px);max-height:84vh;overflow-y:auto;background:linear-gradient(160deg,#1a1a4a,#241a4a);border:2px solid rgba(255,215,0,.4);border-radius:22px;padding:2.5vh 2.5vw;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(255,215,0,.15);text-align:center}
#ruleTitle{font-size:clamp(20px,4.5vw,32px);font-weight:900;color:#ffd700;letter-spacing:4px;margin-bottom:1.5vh;text-shadow:0 2px 10px rgba(255,215,0,.4)}
#ruleBody{font-size:clamp(13px,2.4vw,16px);color:#e8e8ff;line-height:1.9;text-align:left;background:rgba(0,0,0,.3);border-radius:14px;padding:2vh 2vw;margin-bottom:2vh;max-height:66vh;overflow-y:auto}
#ruleBody b{color:#ffd700}
#ruleBody .cat{color:#ff9a9a}
#ruleBody .mouse{color:#8ef7a8}
#ruleClose{padding:12px 46px;font-size:clamp(14px,2.6vw,18px);font-weight:900;border:none;border-radius:40px;color:#fff;background:linear-gradient(135deg,#ffd700,#ff8c42);cursor:pointer;letter-spacing:2px;box-shadow:0 6px 20px rgba(255,140,66,.4)}
/* ===== 歌词面板 ===== */
#lyricsModal{position:fixed;inset:0;z-index:13;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#lyricsPanel{width:min(92vw,680px);max-height:84vh;overflow-y:auto;background:linear-gradient(160deg,#132a1a,#1a3a2a);border:2px solid rgba(80,220,160,.5);border-radius:22px;padding:2.5vh 2.5vw;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(80,220,160,.2);text-align:center}
#lyricsTitle{font-size:clamp(18px,4vw,28px);font-weight:900;color:#8ff0c0;letter-spacing:3px;margin-bottom:1.5vh;text-shadow:0 2px 10px rgba(80,220,160,.4)}
#lyricsBody{font-size:clamp(13px,2.4vw,16px);color:#e8ffe8;line-height:1.8;text-align:left;background:rgba(0,0,0,.3);border-radius:14px;padding:2vh 2vw;margin-bottom:2vh}
#lyricsBody b{color:#8ff0c0}
.lyrSong{font-weight:900;color:#ffd700;margin:1.2em 0 .5em;font-size:1.1em;letter-spacing:1px}
.lyrVerse{color:#e8ffe8;font-style:italic}
#lyricsClose{padding:12px 46px;font-size:clamp(14px,2.6vw,18px);font-weight:900;border:none;border-radius:40px;color:#0a2015;background:linear-gradient(135deg,#8ff0c0,#50dc9e);cursor:pointer;letter-spacing:2px;box-shadow:0 6px 20px rgba(80,220,160,.4)}
#ruleClose:active{transform:scale(.94)}
/* ===== 设置面板 ===== */
#settingsModal{position:fixed;inset:0;z-index:13;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#settingsPanel{width:min(90vw,400px);max-height:88vh;overflow-y:auto;background:linear-gradient(160deg,#1a1a4a,#241a4a);border:2px solid rgba(255,215,0,.4);border-radius:22px;padding:2.5vh 2.5vw;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(255,215,0,.15);text-align:center}
#settingsTitle{font-size:clamp(20px,4.5vw,30px);font-weight:900;color:#ffd700;letter-spacing:4px;margin-bottom:2vh;text-shadow:0 2px 10px rgba(255,215,0,.4)}
.setRow{display:flex;align-items:center;justify-content:space-between;background:rgba(0,0,0,.3);border-radius:14px;padding:1.6vh 2vw;margin-bottom:1.6vh}
.setLabel{font-size:clamp(15px,3vw,18px);font-weight:700;color:#e8e8ff}
.setToggle{padding:10px 30px;font-size:clamp(14px,2.6vw,17px);font-weight:900;border:none;border-radius:30px;cursor:pointer;letter-spacing:2px;transition:transform .2s var(--ease-out),background .2s,box-shadow .2s,color .2s}
.setToggle.on{color:#123;background:linear-gradient(135deg,#5dff9d,#2ee06a);box-shadow:0 4px 14px rgba(46,224,106,.4)}
.setToggle.off{color:#999;background:linear-gradient(135deg,#444,#333);box-shadow:none}
#settingsClose{padding:12px 46px;font-size:clamp(14px,2.6vw,18px);font-weight:900;border:none;border-radius:40px;color:#fff;background:linear-gradient(135deg,#ffd700,#ff8c42);cursor:pointer;letter-spacing:2px;box-shadow:0 6px 20px rgba(255,140,66,.4);margin-top:1vh}
#settingsClose:active{transform:scale(.94)}
/* ===== 开发者选项(音效音乐库) ===== */
.devBtn{width:100%;padding:12px 14px;font-size:clamp(13px,2.4vw,15px);font-weight:800;border:1px solid rgba(120,200,255,.5);border-radius:14px;color:#bfe9ff;background:rgba(30,60,120,.4);cursor:pointer;letter-spacing:1px;margin-bottom:1.4vh;transition:transform .15s var(--ease-out),background .2s,border-color .2s,color .2s}
.devBtn:hover{background:rgba(30,80,160,.5)}
#devAudioModal{position:fixed;inset:0;z-index:14;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
#devAudioPanel{width:min(92vw,680px);max-height:86vh;overflow-y:auto;background:linear-gradient(160deg,#131a3a,#1c1440);border:2px solid rgba(120,200,255,.45);border-radius:22px;padding:2.5vh 2.5vw;box-shadow:0 20px 60px rgba(0,0,0,.8);text-align:center}
#devAudioTitle{font-size:clamp(18px,4vw,26px);font-weight:900;color:#8fd4ff;letter-spacing:3px;margin-bottom:2vh;text-shadow:0 2px 8px rgba(120,200,255,.4)}
#devAudioBody{text-align:left}
.devGroup{margin-bottom:2vh}
.devGroupTitle{font-size:clamp(14px,2.8vw,17px);font-weight:900;color:#ffd700;letter-spacing:2px;margin-bottom:1vh;border-bottom:1px solid rgba(255,215,0,.3);padding-bottom:.6vh}
.devItem{display:flex;align-items:center;justify-content:space-between;background:rgba(0,0,0,.3);border-radius:10px;padding:.8vh 1.2vw;margin-bottom:.6vh}
.devItemName{font-size:clamp(12px,2.4vw,14px);color:#e8e8ff;font-weight:600}
.devItemTag{font-size:clamp(10px,2vw,12px);color:#aaa;margin-left:1vw}
.devPlay{padding:6px 18px;font-size:clamp(12px,2.2vw,14px);font-weight:800;border:none;border-radius:20px;color:#123;background:linear-gradient(135deg,#5dff9d,#2ee06a);cursor:pointer}
.devPlay:hover{filter:brightness(1.1)}
#devAudioClose{padding:12px 46px;font-size:clamp(14px,2.6vw,18px);font-weight:900;border:none;border-radius:40px;color:#fff;background:linear-gradient(135deg,#ffd700,#ff8c42);cursor:pointer;letter-spacing:2px;box-shadow:0 6px 20px rgba(255,140,66,.4);margin-top:1.5vh}
#devAudioClose:active{transform:scale(.94)}
/* 标题屏说明: 一句话点睛, 更透气 */
.logoSmall{opacity:.92}
.btnRule{margin-top:4px;background:rgba(255,215,0,.12);border:1px solid rgba(255,215,0,.35);color:#ffd700}
.btnRule:hover{background:rgba(255,215,0,.2)}


/* 标题屏次要按钮横排(均衡, 手机自动换行) */
.secRow{display:flex;justify-content:center;gap:1.5vw;flex-wrap:wrap;margin-top:10px}
.secRow .btnLab{margin-top:0}
html[data-phone="1"] .secRow{gap:8px}
html[data-phone="1"] .secRow .btnLab{padding:10px 5.5vw;font-size:clamp(12px,3.6vw,16px)}


/* 行动按钮字号: 触控优先(手机不偏小) */
.btnAct{font-size:clamp(14px,2.4vw,20px)}
#ruleClose{font-size:clamp(15px,2.6vw,18px);padding:13px 48px}
html[data-dev="portrait"][data-phone="1"] .btnAct{font-size:clamp(14px,4vw,18px);white-space:nowrap}
html[data-dev="portrait"][data-phone="1"] .actionBar{gap:2vw}
html[data-dev="portrait"][data-phone="1"] .actionBar .btnAct{padding:12px 4.5vw}


/* ═══════════ 平板/桌面大屏: 标题更有冲击力, 留白变气势 ═══════════ */
html[data-phone="0"] .logo{font-size:clamp(48px,9vw,110px)}
html[data-phone="0"] .logoSub{font-size:clamp(20px,3.5vw,30px);letter-spacing:10px}
html[data-phone="0"] .logoSmall{font-size:clamp(14px,1.8vw,18px)}
html[data-phone="0"] .catVs .big{width:clamp(140px,20vw,200px);height:clamp(140px,20vw,200px)}
html[data-phone="0"] .btnStart{font-size:clamp(20px,3.4vw,32px);padding:16px 60px}
html[data-phone="0"] .secRow .btnLab{font-size:clamp(15px,2.2vw,20px);padding:11px 26px}
html[data-phone="0"] #titleScreen{padding:5vh 4vw}
html[data-phone="0"] .catVs .vsx{font-size:clamp(48px,8vw,70px)}


/* ═══════════ 战斗界面整体视觉统一(命运金线主题, 发布质感) ═══════════ */
/* 猫区/日志/底部栏: 统一精细金边, 像一套设计 */
.sideArea{border:1px solid rgba(255,215,0,.28);background:linear-gradient(180deg,rgba(255,45,60,.08),rgba(255,215,0,.04));border-radius:16px}
.logPanel{border:1px solid rgba(255,215,0,.32)}
.actionBar{border-top:1px solid rgba(255,215,0,.15);background:rgba(8,6,20,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.topBar{border-bottom:1px solid rgba(255,215,0,.15)}
.taskBar{border-bottom:1px solid rgba(255,215,0,.08)}
/* 回合徽章: 金框胶囊, 更醒目 */
.turnBadge{background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.35);border-radius:20px;padding:4px 14px}
.roundBadge{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:3px 10px}
/* 连击/行动提示: 金底黑字更清晰 */
.btnAct{letter-spacing:1px}
/* 猫卡: 红金双色主题统一 */
.catCard{border:1px solid rgba(255,120,120,.4);box-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(255,60,60,.15)}


/* ═══════════ 底部操作区视觉统一(发布级: 一套协调的触控条) ═══════════ */
/* 技能条: 毛玻璃底, 圆角胶囊按钮, 悬停/禁用反馈 */
.mBtn{background:rgba(10,8,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:16px;padding:6px;gap:8px}
.mSkill{border-radius:14px;font-size:clamp(11px,2.4vw,15px);min-height:46px;box-shadow:0 2px 8px rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.15)}
.mSkill.blue{background:linear-gradient(135deg,#2f6bff,#6a8bff)}
.mSkill.gold{background:linear-gradient(135deg,#ff9d00,#ffc94d);color:#3a2400}
.mSkill.used{opacity:.4;filter:grayscale(.6)}
/* 道具/结束条: 统一高度, 更醒目的结束按钮 */
.miniBtns{background:rgba(10,8,20,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.miniBtn{min-height:46px;border-radius:14px;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.miniBtn.purple{background:linear-gradient(135deg,#8b5cf6,#b16cff)}
.miniBtn.green{background:linear-gradient(135deg,#16a34a,#4ade80);font-weight:900}
.miniBtn.dodge{background:linear-gradient(135deg,#64748b,#94a3b8)}
/* 猫视角行动条(.btnAct)同样统一 */
.btnAct{border-radius:44px;box-shadow:0 4px 14px rgba(0,0,0,.35),0 0 0 1px rgba(255,215,0,.25) inset}
/* 手机竖屏: 操作条贴底更顺手 */
html[data-dev="portrait"][data-phone="1"] .actionBar{padding-bottom:calc(1.2vh + env(safe-area-inset-bottom))}


/* ═══════════ 修复: 技能按钮不再遮挡立绘(独立技能区) ═══════════ */
/* 老鼠卡: 底部留出技能条专属空间, 立绘区自动收缩, 互不遮挡 */
.mouseCard{padding-bottom:0}
.mouseCard .portrait{flex:1 1 auto;min-height:0}
.mouseCard .mBtn{position:static;margin-top:auto;padding:4px 5px;background:rgba(0,0,0,.35);border-top:1px solid rgba(255,215,0,.2)}
/* 手机竖屏: 每格矮, 技能条独立一行, 立绘完整可见 */
html[data-dev="portrait"][data-phone="1"] .mouseCard{gap:2px}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{height:clamp(72px,15vh,120px);justify-content:center;flex:0 0 auto}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img{height:100%;width:auto;max-width:100%;object-fit:contain}
html[data-dev="portrait"][data-phone="1"] .mBtn{position:static;margin-top:auto;padding:3px 4px;gap:5px}
html[data-dev="portrait"][data-phone="1"] .mBtn .mSkill{min-height:38px;font-size:clamp(10px,3vw,12px);padding:6px 2px}
/* 手机横屏: 更矮, 技能条紧凑, 立绘不遮 */
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{height:auto;justify-content:center;flex:1 1 auto}
html[data-dev="landscape"][data-phone="1"] .mBtn{position:static;margin-top:auto;padding:3px 4px;gap:4px}
html[data-dev="landscape"][data-phone="1"] .mBtn .mSkill{min-height:32px;font-size:clamp(9px,2vh,11px);padding:4px 2px}


/* ═══════════ 修复: 立绘完整显示不裁切 + 播报清晰不挡字 ═══════════ */
/* 立绘: 等比缩放到完整显示全身(不再 height:100% 撑满被裁) */
.mouseCard .portrait{overflow:visible}
.mouseCard .portrait img{height:100%!important;width:auto!important;max-height:100%;max-width:100%;object-fit:contain;object-position:center}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img{height:100%!important;width:auto!important;max-height:100%;max-width:100%;object-fit:contain}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:auto!important;width:auto!important;max-height:100%;max-width:100%;object-fit:contain}
/* 播报: 不透明深底(清晰可读), 展开时不叠在老鼠区上, 独立滚动 */
.logPanel{background:rgba(8,6,18,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,215,0,.35)}
#logPanel{background:rgba(8,6,18,.96)}
.battleLog{background:rgba(8,6,18,.96);color:#f0e8c8;font-size:clamp(12px,2.6vw,15px)}
/* 竖屏: 播报改为独立区(不遮挡老鼠区), 用 flex 布局预留空间 */
html[data-dev="portrait"][data-phone="1"] .logPanel{position:static;height:clamp(70px,16vh,110px);width:100%;margin-top:4px;flex-shrink:0}
html[data-dev="portrait"][data-phone="1"] .battleLog{height:100%;max-height:100%}


/* ═══════════ 彻底修复: 立绘自适应完整显示 + 技能键不叠立绘 ═══════════ */
/* 立绘容器: 自适应高度, flex纵向, 立绘主体flex:1, 技能键在下方 */
.mouseCard .portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;height:min(26vh,30vh);flex:0 0 auto;min-height:0;overflow:hidden;position:relative}
.mouseCard .portrait img{height:100%!important;width:auto!important;max-height:100%;max-width:100%;object-fit:contain;object-position:center;flex:0 1 auto}
/* 技能键: 在立绘下方独立一行(不叠立绘), 不被挤出 */
.mouseCard .mBtn{position:static!important;margin-top:auto;flex:0 0 auto;width:100%;display:flex;gap:4px;justify-content:center;padding:4px;background:rgba(0,0,0,.4);border-top:1px solid rgba(255,215,0,.25)}
.mouseCard .mBtn .mSkill{flex:1;min-height:34px;padding:4px 2px;font-size:clamp(9px,2.4vw,11px);border-radius:10px}
/* 竖屏: 每格自适应, 立绘+技能分区 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{height:clamp(70px,15vh,118px)!important;flex:0 0 auto;min-height:0;justify-content:center;overflow:hidden}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img{height:100%!important;width:auto!important;max-height:100%;max-width:96%;object-fit:contain}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn{position:static!important;margin-top:auto}
/* 横屏: 同理 */
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{height:auto!important;flex:1 1 auto}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:auto!important;max-height:100%;max-width:96%}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn{position:static!important;margin-top:auto}


/* ═══════════ 修复: 选人页立绘完整显示(不再 cover 裁切) ═══════════ */
/* 角色卡立绘: contain 完整显示全身, 留白用背景补 */
.pickCard img{object-fit:contain!important;object-position:center;padding:4px}
.pickCard{background:radial-gradient(circle at 50% 35%,rgba(255,215,0,.12),#1a1a3a 70%)}
/* 竖屏/横屏同样 */
html[data-dev="portrait"][data-phone="1"] .pickCard img{object-fit:contain!important;object-position:center;padding:3px}
html[data-dev="landscape"][data-phone="1"] .pickCard img{object-fit:contain!important;object-position:center;padding:3px}
/* 横屏小卡：辅助按钮缩小贴角，避免挡住卡片中心的选择区（真实误触修复） */
html[data-dev="landscape"][data-phone="1"] .pickCard .skinBtn,
html[data-dev="landscape"][data-phone="1"] .pickCard .infoBtn{width:22px!important;height:22px!important;font-size:12px!important;top:3px!important;border-width:1px}
html[data-dev="landscape"][data-phone="1"] .pickCard .skinBtn{right:3px!important}
html[data-dev="landscape"][data-phone="1"] .pickCard .infoBtn{left:3px!important}
/* 头像emoji回退同样contain居中 */
.pickCard .avatarEmoji{justify-content:center}


/* 自动适配按钮 + 结果提示 */
.btnFit{margin-top:8px;padding:11px 34px;font-size:clamp(13px,2.6vw,18px);font-weight:800;border:none;border-radius:40px;color:#ffe9a8;letter-spacing:2px;background:linear-gradient(135deg,rgba(255,215,0,.22),rgba(255,140,66,.18));border:1px solid rgba(255,215,0,.4);cursor:pointer;transition:transform .15s,box-shadow .2s}
.btnFit:active{transform:scale(.95)}
.btnFit:hover{box-shadow:0 4px 18px rgba(255,215,0,.3)}
#fitTip{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:30;padding:10px 22px;border-radius:30px;background:rgba(8,6,18,.96);border:1px solid rgba(255,215,0,.5);color:#ffd700;font-size:clamp(12px,3vw,16px);font-weight:800;letter-spacing:1px;box-shadow:0 8px 30px rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:opacity .3s;white-space:nowrap}
#fitTip.show{opacity:1}


/* ═══════════ 播报条精修: 可点击+精致+可收放(竖屏手机370x668等) ═══════════ */
html[data-dev="portrait"][data-phone="1"] .logPanel{position:static!important;width:100%!important;right:auto!important;top:auto!important;height:auto!important;border-radius:14px;background:rgba(8,6,18,.96)!important;border:1px solid rgba(255,215,0,.35)!important;box-shadow:0 4px 16px rgba(0,0,0,.4)!important;max-height:none!important}
html[data-dev="portrait"][data-phone="1"] .logPanel .logTitle{cursor:pointer!important;user-select:none;font-size:clamp(12px,3.4vw,15px);padding:8px 12px!important;margin:0!important;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,215,0,.15);background:linear-gradient(90deg,rgba(255,215,0,.12),transparent)}
html[data-dev="portrait"][data-phone="1"] .logPanel .logTitle::after{content:" ▼ 点击展开/收起";font-size:clamp(9px,2.4vw,11px);color:rgba(255,215,0,.7);letter-spacing:0}
html[data-dev="portrait"][data-phone="1"] .logPanel.collapsed .logTitle::after{content:" ▲ 点击展开"}
html[data-dev="portrait"][data-phone="1"] .logPanel .battleLog{font-size:clamp(11px,3vw,13px);padding:8px 12px;max-height:clamp(90px,22vh,160px);overflow-y:auto;line-height:1.5}
html[data-dev="portrait"][data-phone="1"] .logPanel.collapsed{max-height:none!important}
html[data-dev="portrait"][data-phone="1"] .logPanel.collapsed .logTitle{border-bottom:none}
html[data-dev="portrait"][data-phone="1"] .logPanel.collapsed .battleLog{display:none}


/* ═══════════ 按老公布局重排老鼠卡: 立绘居中+状态在左+技能/药水在右(手机) ═══════════ */
/* 整卡: 变矮, 横向三栏 */
html[data-dev="portrait"][data-phone="1"] .mouseCard,
html[data-dev="landscape"][data-phone="1"] .mouseCard{
  display:grid!important;
  grid-template-rows:auto 1fr!important;
  grid-template-columns:minmax(78px,22%) 1fr 96px!important;  /* 左状态 | 中立绘(弹性) | 右技能(固定) */
  grid-template-areas:"head head head" "stat port act"!important;
  height:clamp(96px,26vh,150px)!important;
  max-height:none!important;
  overflow:hidden!important;
  align-items:stretch!important;
  padding:0!important;
}
/* 名字/血条: 顶部整行 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .top,
html[data-dev="landscape"][data-phone="1"] .mouseCard .top{grid-area:head;width:100%!important;padding:3px 8px!important;border-bottom:1px solid rgba(255,215,0,.15)!important}
/* 左边状态栏 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .status,
html[data-dev="landscape"][data-phone="1"] .mouseCard .status{grid-area:stat;position:static!important;display:flex;flex-direction:column;gap:3px;padding:4px;overflow:hidden;font-size:clamp(8px,2.2vw,11px);min-width:0}
html[data-dev="portrait"][data-phone="1"] .mouseCard .status .statusChip,
html[data-dev="landscape"][data-phone="1"] .mouseCard .status .statusChip{white-space:normal;line-height:1.15;font-size:clamp(8px,2.2vw,11px);padding:1px 4px}
/* 中间立绘: 完整 contain 居中显示 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait,
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{grid-area:port;position:static!important;height:auto!important;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:2px}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img,
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:auto!important;width:auto!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important}
/* 右边技能+药水: 竖排小按钮 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn,
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn{
  grid-area:act;position:static!important;margin:0!important;width:100%!important;height:100%;
  display:flex;flex-direction:column;justify-content:center;gap:4px;padding:4px;
  background:rgba(0,0,0,.3)!important;border-top:none!important;border-left:1px solid rgba(255,215,0,.15)!important;border-radius:0!important;
}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn .mSkill,
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn .mSkill{
  flex:none!important;width:100%;min-height:0!important;padding:6px 3px;font-size:clamp(9px,2.7vw,12px);border-radius:8px;white-space:normal;line-height:1.2;word-break:break-word;
}
/* 药水: 移到右边栏(技能下方) */
html[data-dev="portrait"][data-phone="1"] .mouseCard .potionSlot,
html[data-dev="landscape"][data-phone="1"] .mouseCard .potionSlot{
  position:static!important;grid-area:act;display:flex;flex-direction:column;gap:2px;align-items:stretch;padding:0 4px 4px;
}
/* 右上角徽章: 移到左侧状态栏下方或保留右上(不挡立绘) */
html[data-dev="portrait"][data-phone="1"] .mouseCard .cornerBadges,
html[data-dev="landscape"][data-phone="1"] .mouseCard .cornerBadges{top:auto!important;right:auto!important;bottom:2px;left:6px;display:flex;flex-direction:row;gap:2px;flex-wrap:wrap}
/* 玩家迷你操作按钮: 保持顶部整行 */
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtns,
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{grid-area:head;position:static!important;width:100%;padding:2px 4px;gap:3px;background:rgba(255,215,0,.08)}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtns .miniBtn,
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns .miniBtn{padding:3px 5px;font-size:clamp(8px,2.2vw,10px);min-height:26px}


/* ═══════════ 竖屏手机: 老鼠区1列 + 卡片三栏(状态左/立绘中/技能右) ═══════════ */
/* 老鼠区: 1列4行, 每卡够宽 */
html[data-dev="portrait"][data-phone="1"] .miceZone{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:repeat(4,minmax(0,1fr))!important;gap:1vh 0!important}
/* 卡片: 三栏 grid */
html[data-dev="portrait"][data-phone="1"] .mouseCard{
  grid-template-columns:minmax(84px,24%) 1fr 104px!important;
  grid-template-areas:"head head head" "stat port act"!important;
  height:clamp(92px,24vh,140px)!important;
}
/* 竖屏立绘: 中间, 完整contain */
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{min-width:0!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img{max-height:100%!important;max-width:100%!important}
/* 竖屏状态栏: 左侧够宽 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .status{min-width:0!important;overflow:hidden}
html[data-dev="portrait"][data-phone="1"] .mouseCard .status .statusChip{font-size:clamp(8px,2.3vw,11px)!important;white-space:normal!important;line-height:1.15!important}
/* 竖屏技能栏: 右侧固定, 竖排 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn{min-width:0!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn .mSkill{font-size:clamp(9px,2.7vw,12px)!important}


/* ═══════════ 竖屏手机: 2列2行 + 卡片左右分栏(左立绘/右状态技能药水) ═══════════ */
/* 老鼠区: 回到2列2行(4只放得下) */
html[data-dev="portrait"][data-phone="1"] .miceZone{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:1vh 2vw!important}
/* 卡片: 左右两栏(左立绘, 右信息+技能) */
html[data-dev="portrait"][data-phone="1"] .mouseCard{
  grid-template-columns:minmax(0,1fr) 108px!important;  /* 左立绘弹性 | 右信息固定 */
  grid-template-rows:auto 1fr!important;
  grid-template-areas:"head head" "port info"!important;
  height:clamp(92px,24vh,140px)!important;
}
/* 立绘: 左下, 完整contain */
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait{grid-area:port;min-width:0!important;overflow:hidden}
html[data-dev="portrait"][data-phone="1"] .mouseCard .portrait img{max-height:100%!important;max-width:100%!important}
/* 右边信息区: 状态+技能+药水 竖排 (grid-area info) */
html[data-dev="portrait"][data-phone="1"] .mouseCard .status{grid-area:info;position:static!important;min-width:0!important;overflow:hidden;max-height:40%}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn{grid-area:info;position:static!important;margin:0!important;width:100%!important;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:3px;border-left:1px solid rgba(255,215,0,.15)!important;border-top:none!important;border-radius:0!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard .mBtn .mSkill{flex:none!important;width:100%;padding:5px 2px;font-size:clamp(9px,2.6vw,12px);border-radius:7px;white-space:normal;line-height:1.15;word-break:break-word}
/* 药水: 右上角保留(不挡立绘) */
html[data-dev="portrait"][data-phone="1"] .mouseCard .potionSlot{position:absolute!important;top:2px;right:2px}
/* 名字/血条: 顶部整行 */
html[data-dev="portrait"][data-phone="1"] .mouseCard .top{grid-area:head;width:100%!important;padding:2px 6px!important;border-bottom:1px solid rgba(255,215,0,.12)!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtns{grid-area:head;position:static!important;width:100%!important;padding:1px 4px!important;gap:3px;background:rgba(255,215,0,.08)}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .miniBtns .miniBtn{padding:3px 5px;font-size:clamp(8px,2.2vw,10px);min-height:24px}


/* ═══════════ 横屏手机修复: 老鼠卡恢复紧凑布局(不被竖屏三栏规则污染) ═══════════ */
/* 横屏: 卡片不强设grid三栏, 用flex左右(立绘+右侧信息技能), 高度矮 */
html[data-dev="landscape"][data-phone="1"] .mouseCard{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  grid-template-areas:none!important;
  height:100%!important;   /* 占满横屏网格行 */
  max-height:none!important;
  overflow:hidden!important;
}
/* 横屏: 名字/血条顶部紧凑 */
html[data-dev="landscape"][data-phone="1"] .mouseCard .top{width:100%!important;padding:2px 6px!important;border-bottom:1px solid rgba(255,215,0,.12)!important;flex:none}
/* 横屏: 立绘主体, 完整contain, 占剩余空间 */
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{
  flex:1 1 auto!important;min-height:0!important;position:static!important;
  display:flex;align-items:center;justify-content:center;overflow:hidden;margin:1px;
}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:auto!important;width:auto!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important}
/* 横屏: 技能+状态: 底部一行小按钮(水平) */
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn{
  position:static!important;flex:none!important;width:100%!important;margin:0!important;
  display:flex;flex-direction:row;justify-content:center;gap:3px;padding:3px;
  border-top:1px solid rgba(255,215,0,.12)!important;border-left:none!important;border-radius:0!important;
}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn .mSkill{flex:1!important;min-height:0!important;padding:3px 2px;font-size:clamp(8px,2vw,10px);border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 横屏: 状态栏恢复absolute右上(不占主布局) */
html[data-dev="landscape"][data-phone="1"] .mouseCard .status{position:absolute!important;top:2px;right:2px;bottom:auto!important;left:auto!important;display:flex;flex-direction:column;gap:2px;font-size:clamp(8px,2vw,10px);max-height:60%;overflow:hidden;z-index:4}
/* 横屏: 药水右上角 */
html[data-dev="landscape"][data-phone="1"] .mouseCard .potionSlot{position:absolute!important;top:2px;left:2px}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{position:static!important;width:100%!important;padding:2px 4px;gap:3px;flex-wrap:wrap;background:rgba(255,215,0,.06)}


/* ═══════════ 横屏终级覆盖: 卡片高度封顶+立绘小图+技能底部一行(修复溢出) ═══════════ */
html[data-dev="landscape"][data-phone="1"] .mouseCard{
  display:flex!important;
  flex-direction:column!important;
  height:clamp(64px,17vh,100px)!important;   /* 横屏卡片高度封顶, 不溢出390px屏 */
  max-height:100px!important;
  min-height:0!important;
  overflow:hidden!important;
}
html[data-dev="landscape"][data-phone="1"] .mouseCard .top{flex:none!important;width:100%!important;padding:1px 5px!important;font-size:clamp(9px,2.2vw,11px)!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait{flex:1 1 auto!important;min-height:0!important;display:flex!important;align-items:center;justify-content:center;overflow:hidden!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard .portrait img{height:100%!important;width:auto!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn{flex:none!important;width:100%!important;display:flex!important;flex-direction:row;justify-content:center!important;gap:2px!important;padding:1px!important;margin:0!important;border:none!important;background:none!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard .mBtn .mSkill{flex:1!important;min-height:0!important;padding:2px!important;font-size:clamp(8px,1.9vw,10px)!important;border-radius:5px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-dev="landscape"][data-phone="1"] .mouseCard .status{max-height:38%!important;overflow:hidden!important;font-size:clamp(7px,1.6vw,10px)!important;gap:1px!important;display:flex!important}  /* v08-178: 横屏状态角标改为压缩显示(原display:none全隐藏, 玩家看不到护盾/隐身/兴奋等) */
html[data-dev="landscape"][data-phone="1"] .mouseCard .potionSlot{position:absolute!important;top:1px;right:1px}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{display:none!important}  /* 横屏矮: 玩家操作按钮隐藏(用顶部/下方) */


/* ═══════════ 横屏终级修复2: 限制老鼠区高度, 卡片1行4列完整入屏 ═══════════ */
html[data-dev="landscape"][data-phone="1"] .miceZone{
  height:clamp(120px,48vh,176px)!important;   /* 限高, 不撑出屏幕(猫区~128px, 老鼠区~176px内) */
  min-height:0!important;
  max-height:176px!important;
  align-content:stretch!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;  /* 固定4列, 卡片1行 */
  grid-template-rows:1fr!important;                          /* 单行 */
  gap:4px!important;
}
html[data-dev="landscape"][data-phone="1"] .mouseCard{height:100%!important;max-height:100%!important}

/* ============ 🔥 燃化特效层 CSS（19:05 追加） ============ */
/* 战斗背景动态能量辉光（暗红+金 流动，燃剪氛围） */
#battleScreen::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 80% at 50% -10%,rgba(255,60,30,.14),transparent 55%),
             radial-gradient(90% 70% at 85% 110%,rgba(255,170,0,.10),transparent 50%),
             radial-gradient(80% 60% at 10% 100%,rgba(255,45,120,.08),transparent 45%);
  animation:optBgGlow 6s ease-in-out infinite;mix-blend-mode:screen}
@keyframes optBgGlow{0%,100%{opacity:.75}50%{opacity:1}}
/* 猫区/鼠区边框火焰光效 */
.sideArea,.mainCol{position:relative}
.catCard{animation:optFire 2.2s ease-in-out infinite}
/* 备战界面光效改 opacity 微闪：box-shadow/drop-shadow 每帧重绘很贵，视觉几乎无差但更流畅 */
@keyframes optFire{0%,100%{opacity:1}50%{opacity:.86}}
.miceZone{animation:optFire2 2.6s ease-in-out infinite}
@keyframes optFire2{0%,100%{opacity:1}50%{opacity:.9}}
/* 大招全屏大字（燃剪定格感） */
.opt-ult{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);z-index:9999;pointer-events:none;
  font-size:clamp(30px,6vw,72px);font-weight:900;color:#fff;letter-spacing:4px;white-space:nowrap;
  text-shadow:0 0 12px #ff2d55,0 0 30px #ff2d55,0 0 60px #ff8c00,0 4px 0 #a1001a;
  animation:optUlt .85s cubic-bezier(.2,.9,.3,1.4) forwards}
@keyframes optUlt{0%{transform:translate(-50%,-50%) scale(.3) rotate(-6deg);opacity:0;filter:blur(8px) brightness(2)}
	30%{transform:translate(-50%,-50%) scale(1.18) rotate(2deg);opacity:1;filter:blur(0) brightness(1.6)}
	60%{transform:translate(-50%,-50%) scale(1) rotate(0)}
	100%{transform:translate(-50%,-50%) scale(1.05);opacity:0;filter:blur(2px)}}
/* 击倒全屏大字（红色冲击） */
.opt-knock{position:fixed;left:50%;top:30%;transform:translate(-50%,-50%);z-index:9999;pointer-events:none;
  font-size:clamp(26px,5vw,60px);font-weight:900;color:#ff2d55;letter-spacing:3px;white-space:nowrap;
  text-shadow:0 0 10px #ff2d55,0 0 34px rgba(255,45,85,.8),0 3px 0 #7a0014;animation:optKnock 1.2s cubic-bezier(.2,.9,.3,1.3) forwards}
@keyframes optKnock{0%{transform:translate(-50%,-50%) scale(.4);opacity:0;filter:blur(6px) brightness(2)}
	25%{transform:translate(-50%,-50%) scale(1.25) rotate(-3deg);opacity:1;filter:blur(0)}
	55%{transform:translate(-50%,-50%) scale(1) rotate(0)}
	100%{transform:translate(-50%,-50%) scale(1.1);opacity:0}}
.opt-red{animation:optRedFlash 1.3s ease-out!important}
@keyframes optRedFlash{0%{opacity:1;background:radial-gradient(circle at 50% 30%,rgba(255,45,60,.5),transparent 70%)}100%{opacity:0}}
/* 回合徽章更燃 */
.turnBadge{text-shadow:0 0 12px currentColor,0 0 26px currentColor}
/* ============ 🖥️ 电脑版专属美化（min-width:1024px，19:10 追加） ============ */
@media(min-width:1024px){
  /* 主标题金色史诗光效 */
  #app .title,.mainTitle,#screenBg .title{text-shadow:0 0 18px rgba(255,215,0,.55),0 0 60px rgba(255,180,0,.4),0 4px 0 rgba(120,80,0,.6)!important}
  /* 主按钮立体+辉光 */
  #btnStart,.btnMain{box-shadow:0 0 22px rgba(255,215,0,.4),0 6px 0 rgba(150,100,0,.5),inset 0 1px 0 rgba(255,255,255,.45)!important}
  /* 卡面金色描边更亮 */
  .mouseCard,.catCard{border-color:rgba(255,200,60,.6)!important;box-shadow:0 6px 26px rgba(0,0,0,.5),0 0 18px rgba(255,180,60,.14)!important}
  /* 战斗信息面板更清晰 */
  .logPanel{background:rgba(20,16,44,.88)!important;border:1px solid rgba(255,215,0,.3)!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
  /* 顶部栏金色渐变 */
  .topBar{background:linear-gradient(180deg,rgba(255,215,0,.14),transparent)!important}
  /* 技能按钮更立体 */
  .mSkill,.miniBtn{box-shadow:0 3px 0 rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.3)!important}
}

/* 金色爆裂伤害数字（大伤害≥60，燃剪打击感） */
.opt-dmg{position:fixed;transform:translate(-50%,-50%);z-index:9998;pointer-events:none;
  font-size:clamp(34px,6vw,72px);font-weight:900;color:#ffd700;font-family:Impact,'Arial Black',sans-serif;
  text-shadow:0 0 10px #ff8c00,0 0 26px #ff2d55,0 3px 0 #7a3c00;
  animation:optDmg .95s cubic-bezier(.2,.9,.3,1.4) forwards}
@keyframes optDmg{0%{transform:translate(-50%,-50%) scale(.3) rotate(-8deg);opacity:0}
	30%{transform:translate(-50%,-50%) scale(1.5) rotate(4deg);opacity:1}
	60%{transform:translate(-50%,-50%) scale(1.05) rotate(0)}
	100%{transform:translate(-50%,-50%) scale(1.15) translateY(-20px);opacity:0}}
/* 回合切换震撼转场 */
.opt-round{position:fixed;left:50%;top:30%;transform:translate(-50%,-50%);z-index:9997;pointer-events:none;
  font-size:clamp(24px,5vw,58px);font-weight:900;color:#fff;letter-spacing:4px;white-space:nowrap;
  text-shadow:0 0 14px #ff8c00,0 0 40px rgba(255,140,0,.6),0 4px 0 #7a3c00;
  animation:optRound .95s cubic-bezier(.2,.9,.3,1.3) forwards}
@keyframes optRound{0%{transform:translate(-50%,-50%) scale(.4) rotateX(70deg);opacity:0}
	40%{transform:translate(-50%,-50%) scale(1.15);opacity:1}
	70%{transform:translate(-50%,-50%) scale(1)}
	100%{transform:translate(-50%,-50%) scale(1.05);opacity:0}}
/* ============ 🖥️ 电脑版全局视觉统一（19:22 追加） ============ */
@media(min-width:1024px){
  /* 标题/选角/结算面板毛玻璃+金边 */
  .titleBox,.resultBox,.pickBox,.ruleBox,.skinBox,.labPanel{background:rgba(20,16,44,.72)!important;-webkit-backdrop-filter:blur(6px)!important;backdrop-filter:blur(6px)!important;border:1px solid rgba(255,215,0,.35)!important;box-shadow:0 12px 50px rgba(0,0,0,.6),0 0 30px rgba(255,180,60,.12)!important}
  /* 角色卡在选角界面更立体 */
  .pickCard,.catPickCard{transition:transform .18s,box-shadow .18s!important}
  .pickCard:hover,.catPickCard:hover{transform:translateY(-4px)!important;box-shadow:0 10px 30px rgba(255,180,60,.3)!important}
  /* 结算标题更燃 */
  #resTitle{text-shadow:0 0 16px currentColor,0 0 40px currentColor!important}
  /* 按钮统一立体感 */
  .btn,.btnLab,.btnRule{transition:transform .12s!important}
  .btn:active,.btnLab:active{transform:scale(.96)!important}
  /* 弹窗层级更高 */
  .skinModal,.itemPop,.boxModal{-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}
}
/* ================= 玩家卡·严格按用户配置的模块化布局（最高特异度，压过一切响应式） =================
   配置: frame 295x236, name(2,3.8,55.8,17.3) hpbar(59.3,4.7,37.8,12.8)
         status(2,23.7,21.7,23.7) portrait(27.1,21.6,36.5,73.5)
         right(66.1,22.9,29.4,68.9) potion(2.7,77,24,19.2)
   等比缩放: 卡片宽=网格列宽, 高=宽x(236/295), 模块全百分比定位
   选择器用重复类 .xxx.xxx → 特异度(0,4,2), 压过手机 html[data-dev]...static!important (0,4,1) */
html body .mouseCard.you.mouseCard.you{aspect-ratio:295/236!important;padding-top:0!important;display:block!important;overflow:hidden!important;max-height:none!important;min-height:0!important;height:auto!important;position:relative!important}
/* 顶部名字(左) —— name模块 */
html body .mouseCard.you.mouseCard.you .top.top{
  position:absolute!important;left:2.7%!important;top:5.1%!important;width:56.8%!important;height:9.3%!important;
  justify-content:flex-start!important;align-items:center!important;gap:4px!important;padding:0 5px!important;
  background:rgba(0,0,0,.35)!important;border:1px solid rgba(255,215,0,.25)!important;border-radius:4px!important;
  border-bottom:1px solid rgba(255,215,0,.25)!important;flex-wrap:nowrap!important;margin:0!important;
  grid-area:auto!important;z-index:5}
html body .mouseCard.you.mouseCard.you .top.top .mname{font-size:clamp(11px,1.4vw,16px)!important;color:#ffd700!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html[data-dev="landscape"][data-phone="1"] html body .mouseCard.you.mouseCard.you .top.top .mname{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.08!important}
html body .mouseCard.you.mouseCard.you .top.top .mhp{font-size:clamp(9px,1.2vw,13px)!important;color:#fff!important;white-space:nowrap!important;margin-left:auto!important}
html body .mouseCard.you.mouseCard.you .top.top .reviveBtn{margin:0!important;padding:1px 6px!important;font-size:clamp(8px,1vw,11px)!important}
/* 顶部血条(右) —— hpbar模块 */
html body .mouseCard.you.mouseCard.you .mhpBar.mhpBar{
  position:absolute!important;left:57.7%!important;top:5.5%!important;width:39.5%!important;height:9.3%!important;
  margin-left:0!important;border-radius:4px!important;border:1px solid rgba(255,255,255,.25)!important;
  background:rgba(0,0,0,.5)!important;display:flex!important;align-items:center!important;z-index:5}
html body .mouseCard.you.mouseCard.you .mhpBar.mhpBar .mhpFill{height:100%!important;border-radius:4px!important}
/* 状态角标(左中) —— status模块 */
html body .mouseCard.you.mouseCard.you .status.status{
  position:absolute!important;left:1.2%!important;top:19.9%!important;width:22.2%!important;height:21.9%!important;
  display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important;z-index:4}
html body .mouseCard.you.mouseCard.you .status.status .statusChip{font-size:clamp(8px,1vw,11px)!important;padding:1px 4px!important;white-space:nowrap!important}
/* 立绘(居中) —— portrait模块 */
html body .mouseCard.you.mouseCard.you .portrait.portrait{
  position:absolute!important;left:24.4%!important;top:19.5%!important;width:41.3%!important;height:74.5%!important;
  display:flex!important;align-items:flex-start!important;justify-content:center!important;overflow:hidden!important;
  flex:none!important;min-height:0!important;background:none!important;border:none!important;border-radius:0!important;
  box-shadow:none!important}
html body .mouseCard.you.mouseCard.you .portrait.portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important;max-height:none!important;flex:none!important;position:static!important}
/* 右栏技能按钮 —— right模块 (.mBtn 主动+武器): 竖排右侧, 占右栏上半, 绝不盖立绘 */
html body .mouseCard.you.mouseCard.you .mBtn.mBtn{
  position:absolute!important;left:67%!important;top:16.5%!important;width:29.2%!important;height:38%!important;
  display:flex!important;flex-direction:column!important;gap:4px!important;justify-content:center!important;
  right:auto!important;bottom:auto!important;background:none!important;border-radius:0!important;padding:0!important;z-index:5}
html body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{flex:1!important;font-size:clamp(8px,1vw,11px)!important;padding:2px!important;border-radius:4px!important;min-height:0!important}
/* 药水(左下) —— potion模块 */
html body .mouseCard.you.mouseCard.you .potionSlot.potionSlot{
  position:absolute!important;left:2.1%!important;top:83.1%!important;width:28.8%!important;height:9.3%!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;gap:2px!important;
  right:auto!important;bottom:auto!important;z-index:5}
html body .mouseCard.you.mouseCard.you .potionSlot.potionSlot .potChip{font-size:clamp(9px,1.1vw,12px)!important;padding:3px 6px!important;white-space:nowrap!important}
/* 操作栏(miniBtns) —— 右侧竖列, 与技能按钮(mBtn)同在右栏, 立绘下方不留按钮 */
html body .mouseCard.you.mouseCard.you .miniBtns.miniBtns{
  position:absolute!important;left:67%!important;top:56.5%!important;bottom:auto!important;width:29.2%!important;height:40%!important;
  display:flex!important;gap:4px!important;justify-content:center!important;padding:2px!important;flex-direction:column!important;
  background:rgba(10,8,20,.92)!important;border-radius:8px!important;border:1px solid rgba(255,215,0,.25)!important;z-index:8}
html body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn{font-size:clamp(8px,1vw,10px)!important;padding:3px 6px!important;min-height:0!important;width:100%!important;flex:none!important}
html body .mouseCard.you.mouseCard.you .youTag.youTag{position:absolute!important;top:-8px!important;right:6px!important;z-index:9}
/* 状态大徽章(立绘内左上) */
html body .mouseCard.you.mouseCard.you .portrait.portrait .cornerBadges{top:2px!important;left:2px!important;position:absolute!important}
html body .mouseCard.you.mouseCard.you .portrait.portrait .cornerBadges .cbadge{font-size:clamp(12px,1.8vw,20px)!important}
/* 队友卡: 血条移出.top后, 补一个位置(名字下方一行) */
html body .mouseCard:not(.you) .mhpBar{position:absolute!important;left:8%!important;top:26%!important;width:84%!important;height:4%!important}
html body .mouseCard:not(.you) .top{position:relative!important}
/* 队友卡: status/potion/mBtn 移出.portrait后, 补合理位置(叠在立绘上, 保持原观感) */
html body .mouseCard:not(.you) .status{position:absolute!important;top:4px!important;left:4px!important;display:flex!important;flex-direction:column!important;gap:3px!important;z-index:4}
/* 队友卡药水: 统一标准模板(第2/4点) → 固定左下角, 与玩家一致; 无药水由JS不渲染隐藏 */
html body .mouseCard:not(.you) .potionSlot{position:absolute!important;left:2.1%!important;top:83.1%!important;right:auto!important;bottom:auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:2px!important;z-index:5!important;margin:0!important}
html body .mouseCard:not(.you) .potionSlot .potChip{font-size:clamp(8px,1vw,11px)!important;padding:2px 5px!important;white-space:nowrap!important;border-radius:999px!important;background:linear-gradient(135deg,#a78bfa,#7c5cff)!important;color:#fff!important;font-weight:800!important;box-shadow:0 2px 6px rgba(0,0,0,.3)!important}
html body .mouseCard:not(.you) .mBtn{position:absolute!important;bottom:6px!important;left:6px!important;right:6px!important;display:flex!important;gap:6px!important;justify-content:center!important;z-index:5}



/* ═══════════ 玩家卡终极铁律(老公固定布局) —— 任何设备/状态都锁死, 覆盖所有手机横竖屏规则 ═══════════ */
html[data-dev] body .mouseCard.you.mouseCard.you{position:relative!important;display:block!important;overflow:hidden!important;padding-top:0!important;aspect-ratio:295/236!important;height:auto!important;max-height:none!important;min-height:0!important;grid-template-columns:none!important;grid-template-rows:none!important;grid-template-areas:none!important}
/* name 名字(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .top.top{position:absolute!important;left:2.7%!important;top:5.1%!important;width:56.8%!important;height:9.3%!important;grid-area:auto!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;gap:4px!important;padding:0 5px!important;background:rgba(0,0,0,.35)!important;border:1px solid rgba(255,215,0,.25)!important;border-radius:4px!important;z-index:5!important;margin:0!important;flex-wrap:nowrap!important}
/* hpbar 血条(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .mhpBar.mhpBar{position:absolute!important;left:57.7%!important;top:5.5%!important;width:39.5%!important;height:9.3%!important;grid-area:auto!important;display:flex!important;align-items:center!important;margin:0!important;border-radius:4px!important;border:1px solid rgba(255,255,255,.25)!important;background:rgba(0,0,0,.5)!important;z-index:5!important}
/* status 状态(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .status.status{position:absolute!important;left:1.2%!important;top:19.9%!important;width:22.2%!important;height:21.9%!important;grid-area:auto!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important;z-index:4!important;margin:0!important;max-height:none!important}
/* portrait 立绘(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .portrait.portrait{position:absolute!important;left:24.4%!important;top:19.5%!important;width:41.3%!important;height:74.5%!important;grid-area:auto!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;overflow:hidden!important;flex:none!important;min-height:0!important;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;margin:0!important;z-index:2!important}
html[data-dev] body .mouseCard.you.mouseCard.you .portrait.portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important;max-height:none!important;max-width:none!important;flex:none!important;position:static!important;margin:0!important}
/* mBtn 主动+武器(右列上半, 固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn{position:absolute!important;left:67%!important;top:73%!important;width:29.2%!important;height:25%!important;right:auto!important;bottom:auto!important;grid-area:auto!important;display:flex!important;flex-direction:column!important;gap:5px!important;justify-content:flex-start!important;background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;margin:0!important;z-index:5!important;flex:none!important;min-height:0!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{flex:1!important;font-size:clamp(8px,1vw,11px)!important;padding:2px!important;border-radius:4px!important;min-height:0!important;width:100%!important;flex:none!important}
/* miniBtns 道具+推奶酪+结束(右列下半, 固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns{position:absolute!important;left:67%!important;top:16.5%!important;bottom:auto!important;right:auto!important;width:29.2%!important;height:55%!important;grid-area:auto!important;display:flex!important;gap:5px!important;justify-content:flex-start!important;padding:0!important;flex-direction:column!important;background:transparent!important;border:none!important;border-radius:0!important;z-index:8!important;margin:0!important;flex-wrap:nowrap!important}
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn{font-size:clamp(8px,1vw,10px)!important;padding:3px 6px!important;min-height:0!important;width:100%!important;flex:none!important;flex-wrap:nowrap!important}
/* potion 药水(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .potionSlot.potionSlot{position:absolute!important;left:2.1%!important;top:83.1%!important;width:28.8%!important;height:9.3%!important;right:auto!important;bottom:auto!important;grid-area:auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:2px!important;z-index:5!important;margin:0!important}
/* youTag 角标(固定) */
html[data-dev] body .mouseCard.you.mouseCard.you .youTag.youTag{position:absolute!important;top:-8px!important;right:6px!important;z-index:9!important}


/* ═══════════ 玩家卡右列按钮视觉精修(老公要求: 无底板悬浮竖排, 第2个动态大块) ═══════════ */
/* miniBtns(跳过+动态+道具) 与 mBtn(主动+武器) 合成视觉一列, 紧凑间距 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{
  width:100%!important;margin:0!important;border-radius:8px!important;font-weight:800!important;
  display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;
  letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  box-shadow:0 2px 6px rgba(0,0,0,.35)!important;border:none!important;flex:none!important}
/* 跳过(蓝色) = miniBtns 最后一个(绿色endTurn), 改成蓝色 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.green{background:linear-gradient(135deg,#4facfe,#3a7bd5)!important}
/* 动态词条大块头(miniBtn gray) - 明显高于其他按钮 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.gray{flex:2.2!important;background:linear-gradient(135deg,#56c8ff,#2ea8ff)!important;font-size:clamp(10px,1.2vw,14px)!important}
/* 道具(紫色) */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.purple{background:linear-gradient(135deg,#a86ff8,#7c4dd8)!important;flex:1!important}
/* 主动+武器(橙色暖色) */
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill.blue{background:linear-gradient(135deg,#ff9a3d,#ff6b2c)!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill.gold{background:linear-gradient(135deg,#ffc24d,#ff8c42)!important}
/* 已使用按钮置灰 */
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill.used,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.used{filter:grayscale(1)!important;opacity:.45!important}
/* 按钮字体大小: 5个紧凑竖排 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn{font-size:clamp(9px,1.05vw,13px)!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{font-size:clamp(9px,1.05vw,13px)!important}
/* 去掉动画脉冲(避免干扰) */
html[data-dev] body .mouseCard.you.mouseCard.you .mSkill:not(.used){animation:none!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important}


/* ═══════════ 老公新需求: 左治疗按钮 + 立绘中间状态卡片 + 移除角标 (21:53) ═══════════ */
/* A. 治疗/扶起按钮: 药水正上方, 尺寸与药水一致(28.8%x9.3%), 圆角胶囊 */
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot{
  position:absolute!important;left:2.1%!important;top:70.8%!important;width:28.8%!important;height:9.3%!important;
  right:auto!important;bottom:auto!important;z-index:5!important;margin:0!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important}
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot .healChip{
  width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  border-radius:999px!important;font-weight:800!important;font-size:clamp(9px,1.1vw,13px)!important;white-space:nowrap!important;
  overflow:hidden!important;text-overflow:ellipsis!important;padding:0 4px!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important;
  background:linear-gradient(135deg,#5ed6a0,#3bbf86)!important;color:#042!important;border:1px solid rgba(255,255,255,.35)!important;cursor:pointer!important}
/* 无虚弱队友时: 灰色不可点 */
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot .healChip.disabled{
  background:linear-gradient(135deg,#8a8a8a,#6a6a6a)!important;color:#ddd!important;cursor:not-allowed!important;opacity:.55!important}

/* B. 立绘中间状态卡片: 覆盖立绘正中, 歪斜, 半透明描边, 非按钮 */
html[data-dev] body .mouseCard.you.mouseCard.you .midState.midState{
  position:absolute!important;left:45.05%!important;top:56.75%!important;transform:translate(-50%,-50%) rotate(-8deg)!important;
  z-index:900!important;background:rgba(20,16,40,.78)!important;border:2px solid rgba(255,255,255,.55)!important;
  border-radius:12px!important;padding:6px 12px!important;font-weight:800!important;letter-spacing:.5px!important;
  white-space:nowrap!important;box-shadow:0 4px 14px rgba(0,0,0,.5)!important;text-shadow:0 1px 3px rgba(0,0,0,.7)!important;
  display:inline-block!important;pointer-events:none!important}
html[data-dev] body .mouseCard.you.mouseCard.you .midState .msTxt{font-size:clamp(10px,1.35vw,15px)!important;color:#fff!important}
/* 4种状态配色 */
html[data-dev] body .mouseCard.you.mouseCard.you .portrait .midState.ms-weak{border-color:#ff9ab8!important;background:rgba(90,10,50,.82)!important}
html[data-dev] body .mouseCard.you.mouseCard.you .portrait .midState.ms-grab{border-color:#ffb066!important;background:rgba(80,30,5,.82)!important}
html[data-dev] body .mouseCard.you.mouseCard.you .portrait .midState.ms-dead{border-color:#ff6b6b!important;background:rgba(60,0,0,.85)!important}
html[data-dev] body .mouseCard.you.mouseCard.you .portrait .midState.ms-esc{border-color:#6bd8ff!important;background:rgba(0,50,70,.82)!important}

/* C. 移除所有角标徽章: 直接隐藏(无论哪套规则) */
html[data-dev] body .mouseCard .cornerBadges.cornerBadges,
html[data-dev] body .mouseCard .cornerBadges{display:none!important}


/* ═══════════ 统一所有鼠UI为杰瑞模板(23:30): 非玩家鼠也右侧竖排, 不要底部横条 ═══════════ */
/* ═══════════ 修复(08-08): 非玩家鼠(罗宾汉/侦探/国王)按钮定位与玩家杰瑞【完全一致】,
   杜绝"按钮跑出绿色边框"。mBtn 用 top:73%(同杰瑞), miniBtns 用 top:16.5%(同杰瑞),
   加 overflow-y:auto 防内容多时溢出卡片。非玩家鼠miniBtns本就为空(第2点已屏蔽违禁按钮) ═══════════ */
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn{position:absolute!important;right:3%!important;left:auto!important;top:73%!important;bottom:auto!important;width:29%!important;height:25%!important;display:flex!important;flex-direction:column!important;gap:5px!important;justify-content:flex-start!important;align-items:stretch!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important;flex:none!important;flex-shrink:0!important;flex-wrap:nowrap!important}
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns{position:absolute!important;right:3%!important;left:auto!important;top:16.5%!important;bottom:auto!important;width:29%!important;height:55%!important;display:flex!important;flex-direction:column!important;gap:5px!important;justify-content:flex-start!important;align-items:stretch!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:6!important;flex-wrap:nowrap!important;overflow-y:auto!important;flex-shrink:0!important}
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn{width:100%!important;margin:0!important;border-radius:8px!important;font-size:clamp(8px,1vw,12px)!important;padding:3px 6px!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;overflow:hidden!important;opacity:.9!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:30px!important;box-sizing:border-box!important}
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn.gray{flex:2!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{width:100%!important;font-size:clamp(8px,1vw,12px)!important;padding:3px 6px!important;border-radius:8px!important;margin:0!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:30px!important;box-sizing:border-box!important}
/* 非玩家鼠禁用光标 */
html[data-dev] body .mouseCard:not(.you) .mBtn .mSkill,
html[data-dev] body .mouseCard:not(.you) .miniBtns .miniBtn{cursor:default!important;pointer-events:none!important}


/* ═══════════ 问题3修复(23:48): 右列按钮面板固定容器, 防变大/变壮/状态变化时折叠错位 ═══════════ */
/* 口诀: 外层容器 display:flex + flex-shrink:0 + 固定定位, 禁随角色缩放自动改变位置 */
html[data-dev] body .mouseCard .miniBtns,
html[data-dev] body .mouseCard .mBtn,
html[data-dev] body .mouseCard .healSlot{flex-shrink:0!important;flex-grow:0!important;flex-basis:auto!important}
/* 玩家鼠: miniBtns(上)与mBtn(下)绝对定位锁定, 不受内部状态描述增多影响 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns{position:absolute!important;top:16.5%!important;left:auto!important;right:3%!important;bottom:auto!important;width:29%!important;height:55%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;overflow-y:auto!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:6!important;flex-shrink:0!important;flex-wrap:nowrap!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn{position:absolute!important;top:73%!important;left:auto!important;right:3%!important;bottom:auto!important;width:29%!important;height:25%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important;flex-shrink:0!important;flex-wrap:nowrap!important}
/* miniBtns/mBtn 内部按钮: 绝对对齐(网格), 每个按钮固定高, 禁用也不折叠 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{width:100%!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:30px!important;height:auto!important;margin:0!important;box-sizing:border-box!important}
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.gray.big,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.purple.big,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.gold.big,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.green.big{flex:0 0 auto!important;flex-shrink:0!important;min-height:44px!important}
/* 变大无敌标签(weakTag)放在miniBtns内, 占固定位不挤按钮 */
html[data-dev] body .mouseCard .weakTag{display:inline-block!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:24px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
/* 禁用的按钮: 降饱和但仍显示(占位不消失) */
html[data-dev] body .mouseCard button[disabled]{opacity:.55!important;cursor:not-allowed!important;filter:grayscale(.3)!important}

/* ═══════════ 全设备"永不跑出屏幕"安全层（小天 2026-08-08）═══════════
   原则：不碰老公锁死的6模块坐标，只保证容器可滚动、玩家卡在手机上够大、无横向溢出 */
html[data-dev] #app{overflow:hidden}
html[data-dev] #titleScreen,html[data-dev] #sidePick,html[data-dev] #charPick{
  flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;max-height:100%!important}
html[data-dev] #battleScreen{min-height:0!important;overflow:hidden!important}
html[data-dev] .arena{min-height:0!important;overflow:auto!important}
html[data-dev] body{overflow-x:hidden!important}
/* 弹窗超高可滚动 */
html[data-dev] .skinModal,html[data-dev] .itemPop,html[data-dev] .boxModal,html[data-dev] .labModal{
  max-height:92vh!important;overflow-y:auto!important}
/* 手机竖屏(08-09修正): 四张鼠卡2×2完全一样大, 不区分玩家/队友 */
html[data-dev="portrait"][data-phone="1"] .miceZone{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important}
/* 手机竖屏(08-09修正2): 玩家卡按钮也随视口压缩(道具/武器才放得下), 覆盖30px铁律 */
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{min-height:clamp(13px,3.2vmin,26px)!important;font-size:clamp(9px,2.8vw,14px)!important;padding:3px 4px!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.gray.big,
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.purple.big,
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.gold.big,
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn.green.big{min-height:clamp(16px,4.2vmin,38px)!important}
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns,
html[data-dev="portrait"][data-phone="1"] body .mouseCard.you.mouseCard.you .mBtn.mBtn{gap:4px!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .top.top .mname{font-size:clamp(12px,3.6vw,16px)!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .top.top .mhp{font-size:clamp(10px,3vw,13px)!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .status.status .statusChip{font-size:clamp(9px,2.6vw,12px)!important}
html[data-dev="portrait"][data-phone="1"] .mouseCard.you .potionSlot.potionSlot .potChip{font-size:clamp(10px,3vw,13px)!important}

/* ═══════════ 队友卡统一杰瑞模板（2026-08-08 老公反馈：队友卡畸形/按钮乱/字显示不全）
   严格镜像玩家卡6模块坐标；队友无miniBtns/药水(铁屏蔽)，技能按钮占满右列，与杰瑞视觉一致 ═══════════ */
html[data-dev] body .mouseCard:not(.you).mouseCard:not(.you){position:relative!important;display:block!important;overflow:hidden!important;padding-top:0!important;aspect-ratio:295/236!important;height:auto!important;max-height:none!important;min-height:0!important;grid-template-columns:none!important;grid-template-rows:none!important;grid-template-areas:none!important}
html[data-dev] body .mouseCard:not(.you) .top.top{position:absolute!important;left:2.7%!important;top:5.1%!important;width:56.8%!important;height:9.3%!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;gap:4px!important;padding:0 5px!important;background:rgba(0,0,0,.35)!important;border:1px solid rgba(255,215,0,.25)!important;border-radius:4px!important;z-index:5!important;margin:0!important;flex-wrap:nowrap!important;overflow:hidden!important;grid-area:auto!important}
html[data-dev] body .mouseCard:not(.you) .top.top .mname{font-size:clamp(10px,1.2vw,14px)!important;color:#ffd700!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html[data-dev="landscape"][data-phone="1"] body .mouseCard:not(.you) .top.top .mname{font-size:clamp(9px,1.05vw,13px)!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.08!important}
html[data-dev] body .mouseCard:not(.you) .top.top .mhp{font-size:clamp(9px,1.1vw,13px)!important;color:#fff!important;white-space:nowrap!important;margin-left:auto!important;overflow:hidden!important}
html[data-dev] body .mouseCard:not(.you) .mhpBar.mhpBar{position:absolute!important;left:57.7%!important;top:5.5%!important;width:39.5%!important;height:9.3%!important;margin:0!important;border-radius:4px!important;border:1px solid rgba(255,255,255,.25)!important;background:rgba(0,0,0,.5)!important;display:flex!important;align-items:center!important;z-index:5!important}
html[data-dev] body .mouseCard:not(.you) .mhpBar.mhpBar .mhpFill{height:100%!important;border-radius:4px!important}
html[data-dev] body .mouseCard:not(.you) .status.status{position:absolute!important;left:1.2%!important;top:19.9%!important;width:22.2%!important;height:21.9%!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important;z-index:4!important;margin:0!important;max-height:none!important}
html[data-dev] body .mouseCard:not(.you) .status.status .statusChip{font-size:clamp(8px,0.95vw,11px)!important;padding:1px 4px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}
html[data-dev] body .mouseCard:not(.you) .portrait.portrait{position:absolute!important;left:24.4%!important;top:19.5%!important;width:41.3%!important;height:74.5%!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;overflow:hidden!important;flex:none!important;min-height:0!important;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;margin:0!important;z-index:2!important}
html[data-dev] body .mouseCard:not(.you) .portrait.portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important;max-height:none!important;max-width:none!important;flex:none!important;position:static!important;margin:0!important}
/* 技能右列：队友无miniBtns(铁屏蔽)，mBtn占满右列与杰瑞视觉一致 */
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn{position:absolute!important;left:67%!important;right:auto!important;top:16.5%!important;bottom:auto!important;width:29.2%!important;height:80%!important;display:flex!important;flex-direction:column!important;gap:5px!important;justify-content:flex-start!important;align-items:stretch!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important;flex-wrap:nowrap!important;overflow:hidden!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{flex:1!important;width:100%!important;font-size:clamp(8px,0.95vw,11px)!important;padding:3px 4px!important;border-radius:8px!important;margin:0!important;min-height:0!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
/* 中间状态卡(虚弱/被抓/淘汰/逃出)居中于立绘，不挡按钮 */
html[data-dev] body .mouseCard:not(.you) .midState{left:45.05%!important;top:56.75%!important;transform:translate(-50%,-50%)!important;max-width:80%!important;max-height:80%!important;z-index:900!important}
/* 队友卡状态卡与玩家完全一致: 半透明底+微斜+描边+文字样式 */
html[data-dev] body .mouseCard:not(.you) .midState{
  position:absolute!important;transform:translate(-50%,-50%) rotate(-8deg)!important;
  z-index:900!important;background:rgba(20,16,40,.78)!important;border:2px solid rgba(255,255,255,.55)!important;
  border-radius:12px!important;padding:6px 12px!important;font-weight:800!important;letter-spacing:.5px!important;
  white-space:nowrap!important;box-shadow:0 4px 14px rgba(0,0,0,.5)!important;text-shadow:0 1px 3px rgba(0,0,0,.7)!important;
  display:inline-block!important;pointer-events:none!important;max-width:92%!important;max-height:88%!important}
html[data-dev] body .mouseCard:not(.you) .midState .msTxt{font-size:clamp(10px,1.35vw,15px)!important;color:#fff!important}
html[data-dev] body .mouseCard:not(.you) .midState.ms-weak{border-color:#ff9ab8!important;background:rgba(90,10,50,.82)!important}
html[data-dev] body .mouseCard:not(.you) .midState.ms-grab{border-color:#ffb066!important;background:rgba(80,30,5,.82)!important}
html[data-dev] body .mouseCard:not(.you) .midState.ms-dead{border-color:#ff6b6b!important;background:rgba(60,0,0,.85)!important}
html[data-dev] body .mouseCard:not(.you) .midState.ms-esc{border-color:#6bd8ff!important;background:rgba(0,50,70,.82)!important}
html[data-dev] body .mouseCard:not(.you) .midState.ms-dc{border-color:#ffcc66!important;background:rgba(70,45,0,.85)!important}
/* 08-29: "轮到谁"大标志——比虚弱等状态卡更大更醒目, 脉冲高亮 */
.mouseCard .midTurn{position:absolute!important;left:45.05%!important;top:56.75%!important;transform:translate(-50%,-50%)!important;z-index:999!important;background:linear-gradient(160deg,rgba(20,16,50,.96),rgba(44,30,90,.94))!important;border:2px solid rgba(255,215,0,.9)!important;border-radius:16px!important;padding:8px 18px!important;font-weight:900!important;letter-spacing:2px!important;white-space:nowrap!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;box-shadow:0 0 26px rgba(255,190,0,.38),0 8px 22px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 16px rgba(255,215,0,.10)!important;text-shadow:0 0 12px rgba(255,200,0,.55),0 2px 4px rgba(0,0,0,.7)!important;pointer-events:none!important} /* v08-253: 去掉midTurnPulse呼吸动画——每次操作重建'你的回合'徽章时动画重启→scale跳变=闪 */
.catCard .midTurn{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;z-index:999!important;background:linear-gradient(160deg,rgba(20,16,50,.96),rgba(44,30,90,.94))!important;border:2px solid rgba(255,215,0,.9)!important;border-radius:16px!important;padding:8px 18px!important;font-weight:900!important;letter-spacing:2px!important;white-space:nowrap!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;box-shadow:0 0 26px rgba(255,190,0,.38),0 8px 22px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 16px rgba(255,215,0,.10)!important;text-shadow:0 0 12px rgba(255,200,0,.55),0 2px 4px rgba(0,0,0,.7)!important;pointer-events:none!important} /* v08-253: 同上去动画 */
.mouseCard .midTurn .mtTxt,.catCard .midTurn .mtTxt{font-size:clamp(11px,1.8vw,17px)!important;color:#ffe9a8!important;display:flex;align-items:center;justify-content:center;gap:6px}
/* v08-301: 回合亮框——轮到谁谁亮框: 友方蓝/敌方红/自己绿(配"你的回合"徽章) */
.mouseCard.turnFriend{border-color:#4facfe!important;box-shadow:0 0 0 2px rgba(79,172,254,.65),0 0 22px rgba(79,172,254,.55),inset 0 0 18px rgba(79,172,254,.12)!important}
.mouseCard.turnEnemy{border-color:#ff5a5a!important;box-shadow:0 0 0 2px rgba(255,90,90,.65),0 0 22px rgba(255,90,90,.5),inset 0 0 18px rgba(255,90,90,.12)!important}
.catCard.turnMine{border-color:#4cd964!important;box-shadow:0 0 0 2px rgba(76,217,100,.65),0 0 24px rgba(76,217,100,.55)!important}
.catCard.turnEnemy{border-color:#ff5a5a!important;box-shadow:0 0 0 2px rgba(255,90,90,.65),0 0 24px rgba(255,90,90,.55)!important}
@keyframes midTurnPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}
/* 08-28: 猫卡掉线标记（与鼠卡同款微斜中间卡） */
.catCard .midState{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%) rotate(-8deg)!important;z-index:900!important;background:rgba(70,45,0,.85)!important;border:2px solid #ffcc66!important;border-radius:12px!important;padding:6px 12px!important;font-weight:800!important;letter-spacing:.5px!important;white-space:nowrap!important;box-shadow:0 4px 14px rgba(0,0,0,.5)!important;text-shadow:0 1px 3px rgba(0,0,0,.7)!important;pointer-events:none!important}
.catCard .midState .msTxt{font-size:clamp(10px,1.35vw,15px)!important;color:#fff!important}
/* ═══════════ 定稿规范补充(08-09): 道具键/禁用变灰 ═══════════ */
/* 队友道具键：紫色，可点击(仅查看)，技能键保持不可点 */
html[data-dev] body .mouseCard .mBtn.mBtn .mSkill.purple{background:linear-gradient(135deg,#a78bfa,#7c5cff)!important;color:#fff!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important}
html[data-dev] body .mouseCard:not(.you) .mBtn .mSkill.itemBtn{pointer-events:auto!important;cursor:pointer!important}
html[data-dev] body .mouseCard:not(.you) .mBtn .mSkill.itemBtn[disabled]{pointer-events:none!important;cursor:not-allowed!important}
/* 技能/道具用完：变灰不可用（定稿规范截图要求） */
html[data-dev] body .mouseCard .mBtn.mBtn .mSkill[disabled],
html[data-dev] body .mouseCard .miniBtns.miniBtns .miniBtn[disabled]{filter:grayscale(1)!important;opacity:.5!important;cursor:not-allowed!important}
html[data-dev] body .mouseCard .mBtn.mBtn .mSkill.used{opacity:.65!important;filter:saturate(.6)!important}
/* ═══════════ 队友卡按钮严格镜像杰瑞(08-09修正): miniBtns区=道具键(上), mBtn区=2技能(下), 同尺寸同位置 ═══════════ */
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns{position:absolute!important;top:16.5%!important;left:auto!important;right:3%!important;bottom:auto!important;width:29%!important;height:55%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:6!important;flex-shrink:0!important;flex-wrap:nowrap!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn{position:absolute!important;top:73%!important;left:auto!important;right:3%!important;bottom:auto!important;width:29%!important;height:25%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important;flex-shrink:0!important;flex-wrap:nowrap!important}
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{width:100%!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:30px!important;height:auto!important;margin:0!important;box-sizing:border-box!important}
/* 队友道具键: 与杰瑞道具键同尺寸(30px), 紫色, 可点击(仅查看); 禁用时变灰不可点 */
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn.itemBtn{background:linear-gradient(135deg,#a78bfa,#7c5cff)!important;color:#fff!important;border-radius:8px!important;font-size:clamp(8px,0.95vw,11px)!important;padding:3px 6px!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;pointer-events:auto!important;cursor:pointer!important}
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn.itemBtn[disabled]{pointer-events:none!important;cursor:not-allowed!important}
/* 队友技能: 不可点(AI操作), 尺寸与杰瑞mSkill一致 */
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{pointer-events:none!important;cursor:default!important}
/* ═══════════ 全分辨率适配增强(08-09): 按钮/字号随视口缩放 + 手机竖屏队友卡加高 ═══════════ */
/* 队友卡按钮: 桌面30px, 手机至少15-16px, 随视口平滑缩放(不挤爆/不截断) */
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{min-height:clamp(15px,3.4vmin,30px)!important;font-size:clamp(7px,1.6vmin,12px)!important;padding:2px 4px!important}
/* ═══════════ 08-09晚: 队友道具键贴主动技能正上方(同列3键紧贴), 战斗信息填满 ═══════════ */
/* 队友卡右列整体竖排: 道具(上) + 主动 + 武器, 占满右列(同杰瑞模板位置) */
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn{top:16.5%!important;height:80%!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .itemBtn,
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{width:100%!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:clamp(15px,3.4vmin,30px)!important;height:auto!important;margin:0!important;box-sizing:border-box!important;border-radius:8px!important;border:none!important;font-size:clamp(7px,1.6vmin,12px)!important;padding:2px 4px!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .itemBtn{background:linear-gradient(135deg,#a78bfa,#7c5cff)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;pointer-events:auto!important;cursor:pointer!important}
html[data-dev] body .mouseCard:not(.you) .mBtn.mBtn .itemBtn[disabled]{pointer-events:none!important;cursor:not-allowed!important;filter:grayscale(1)!important;opacity:.5!important}
/* 布局激活时: 战斗信息填满整个播报框, 不显示不全/不留空白 */
html[data-dev] .logPanel.layoutApplied .battleLog{flex:1!important;height:auto!important;min-height:0!important;max-height:none!important}
/* 队友卡名字/血量/状态/药水字号随视口缩放 */
html[data-dev] body .mouseCard:not(.you) .top.top .mname{font-size:clamp(9px,2.1vmin,16px)!important}
html[data-dev] body .mouseCard:not(.you) .top.top .mhp{font-size:clamp(8px,1.9vmin,13px)!important}
html[data-dev] body .mouseCard:not(.you) .status.status .statusChip{font-size:clamp(7px,1.7vmin,11px)!important}
html[data-dev] body .mouseCard:not(.you) .potionSlot.potionSlot .potChip{font-size:clamp(8px,1.9vmin,12px)!important}
/* 手机横屏(矮屏): 玩家卡也在4列里变小, 按钮同步压缩 */
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev="landscape"][data-phone="1"] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill{min-height:clamp(15px,3.4vmin,28px)!important}
/* 手机竖屏(08-09修正): 四卡同一295/236比例, 大小完全一致 */
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you) .mBtn.mBtn .mSkill,
html[data-dev="portrait"][data-phone="1"] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn{min-height:clamp(13px,3.2vmin,26px)!important;font-size:clamp(7px,1.5vmin,11px)!important}
/* ═══════════ 无滚轮最终层(08-09 老公要求: 除战斗信息外, 游戏内无任何滚轮) ═══════════
   战斗区/卡片/按钮容器一律 overflow:hidden; 战斗信息(.battleLog/#log)保持可滚动 */
html[data-dev] .arena,html[data-dev="portrait"][data-phone="1"] .arena{overflow:hidden!important}
html[data-dev] .miceZone,html[data-dev] .mainCol{overflow:hidden!important}
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns,
html[data-dev] body .mouseCard:not(.you) .miniBtns.miniBtns{overflow:hidden!important}
/* ═══════════ 自定义小图模式(08-09 临时): 实战小图可调位置/缩放/替换 ═══════════ */
#customPanel{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center}
#customBox{background:#1a1440;border:2px solid rgba(255,215,0,.45);border-radius:16px;padding:18px;max-width:640px;width:92vw;max-height:88vh;overflow-y:auto;box-shadow:0 12px 50px rgba(0,0,0,.7)}
#customTitle{font-size:18px;font-weight:900;color:#ffd700;text-align:center;margin-bottom:10px;letter-spacing:1px}
#customChars{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:12px}
#customChars .btn.sel{outline:2px solid #ffd700;outline-offset:1px}
#customSkinName{text-align:center;color:#ffdda8;font-size:14px;font-weight:800;margin-bottom:6px}
#customSkins{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:12px}
#customSkins .btn.sel{outline:2px solid #4cd964;outline-offset:1px}
#customMain{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
#customPreview{width:140px;height:202px;border:2px solid rgba(255,215,0,.5);border-radius:6px;overflow:hidden;background:#000;flex-shrink:0;position:relative}
#customPrevImg{width:100%;height:100%;object-fit:cover;display:block}
#customPreviewTip{text-align:center;color:#9aa0b8;font-size:11px;margin-top:4px}
#customCtrls{display:flex;flex-direction:column;gap:8px;flex:1;min-width:220px}
#customCtrls label{display:flex;align-items:center;gap:6px;color:#e8e0d0;font-size:13px}
#customCtrls input[type=range]{flex:1}
#customCtrls .btn{margin:0}
#customCloseRow{text-align:center;margin-top:12px}
/* v08-268: 恢复 cover 裁剪展示(用户设置了截取区域)——v08-258 误改成 contain(整图完整显示), 破坏用户截取区域。
   当初杰瑞立绘"跑下边巨大"的真根因是皮肤_small替换致404(已修), 与 cover 无关, 恢复 cover 安全 */
#battleScreen .mouseCard .portrait{overflow:hidden!important}
#battleScreen .mouseCard .portrait img{object-fit:cover!important;object-position:center top!important}
#battleScreen .portrait img.cust{object-fit:cover!important;object-position:var(--cx,50%) top!important}
/* 猫卡实战本来就是 cover(高度填满/宽裁剪), 自定义只改水平位置 */
#battleScreen .catCard img.cust{object-fit:cover!important;object-position:var(--cx,50%) top!important}
/* ═══════════ 盲盒小游戏(2026-08-09): 点星星/接水管/华容道, 简洁页面 ═══════════ */
#miniGame{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center}
#miniGameBox{background:#151240;border:2px solid rgba(255,215,0,.45);border-radius:16px;padding:14px;width:92vw;max-width:min(360px,94vw);max-height:94vh;overflow-y:auto;-webkit-overflow-scrolling:touch;text-align:center;box-shadow:0 12px 50px rgba(0,0,0,.7)}
#miniGameHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
#miniGameTitle{color:#ffd700;font-size:16px;font-weight:900}
#miniGameTimer{color:#fff;font-size:16px;font-weight:900;background:rgba(255,80,80,.25);padding:4px 12px;border-radius:20px;border:1px solid rgba(255,120,120,.4)}
#miniGameArea{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
#miniGameResult{margin-top:10px}
#miniGameClose{margin-top:10px}
#miniGameArea .mgZone,#miniGameArea #mgStarZone,#miniGameArea #mgSlideGrid,#miniGameArea canvas{max-width:100%}
/* ═══════════ 【终极布局修复层 2026-08-09】四模式统一：卡片填满格子消除空白、按钮永不被裁 ═══════════ */
/* 1) 竖屏统一(手机竖屏+平板竖屏/窄窗)：上下结构，猫栏在上，2×2 鼠卡 */
html[data-dev="portrait"] #app{flex-direction:column!important}
html[data-dev="portrait"] .arena{flex-direction:column!important;padding:1vh 1.5vw!important;gap:1vh!important}
html[data-dev="portrait"] .sideArea{width:100%!important;max-width:100%!important;flex-direction:row!important;align-items:center!important;gap:2vw!important;padding:6px 8px!important;flex-shrink:0!important;flex-wrap:nowrap!important;align-self:auto!important;height:auto!important;min-height:0!important}
html[data-dev="portrait"] .catCard{width:clamp(52px,18vw,110px)!important;height:clamp(70px,24vw,130px)!important;aspect-ratio:auto!important;flex-shrink:0!important}
html[data-dev="portrait"] .catInfobox{flex:1!important;align-items:flex-start!important;gap:4px!important;min-width:0!important}
html[data-dev="portrait"] .catName{font-size:clamp(12px,3.4vw,20px)!important;justify-content:flex-start!important}
html[data-dev="portrait"] .catChip{font-size:clamp(9px,2.6vw,13px)!important;padding:2px 8px!important}
html[data-dev="portrait"] .cSkill span{font-size:clamp(9px,2.5vw,13px)!important}
html[data-dev="portrait"] .catSkipBtn{width:auto!important;padding:4px 12px!important;font-size:clamp(9px,2.4vw,13px)!important}
html[data-dev="portrait"] .mainCol{flex:1!important;min-height:0!important;gap:1vh!important}
html[data-dev="portrait"] .miceZone{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:1vh 2vw!important;align-content:stretch!important;align-items:stretch!important}
html[data-dev="portrait"] .logPanel{max-height:34vh!important}
/* 2) 横屏手机矮屏：猫栏压缩填满高度，鼠卡自动列填满 */
html[data-dev="landscape"][data-phone="1"] .sideArea{width:clamp(70px,12vw,100px)!important;max-width:12vw!important;height:100%!important;max-height:100%!important;overflow:hidden!important;gap:3px!important;padding:4px!important}
html[data-dev="landscape"][data-phone="1"] .catCard{height:clamp(48px,12vh,84px)!important;width:clamp(44px,11vh,72px)!important}
html[data-dev="landscape"][data-phone="1"] .miceZone{grid-template-columns:repeat(auto-fit,minmax(clamp(100px,min(19vw,14vh),150px),1fr))!important;grid-template-rows:minmax(0,1fr)!important;gap:.6vw!important;align-content:stretch!important;align-items:stretch!important}
/* 3) 横屏大屏/桌面：4列填满高度 */
html[data-dev="landscape"][data-phone="0"] .miceZone{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:minmax(0,1fr)!important;align-content:stretch!important;align-items:stretch!important}
html[data-dev="landscape"][data-phone="0"] .logPanel{max-height:36vh!important}
/* —— 非手机(桌面/平板)：猫模块改为顶部横条(矮+宽)，战斗信息收缩，鼠卡用满下方(含左下角) —— */
html[data-dev="landscape"][data-phone="0"] .arena,
html[data-dev="portrait"][data-phone="0"] .arena{flex-direction:column!important;padding:1vh 1.5vw!important;gap:1vh!important}
html[data-dev="landscape"][data-phone="0"] .sideArea,
html[data-dev="portrait"][data-phone="0"] .sideArea{width:100%!important;max-width:100%!important;flex-direction:row!important;align-items:center!important;gap:1.5vw!important;padding:6px 12px!important;height:auto!important;flex-shrink:0!important;align-self:auto!important}
html[data-dev="landscape"][data-phone="0"] .catCard,
html[data-dev="portrait"][data-phone="0"] .catCard{width:clamp(64px,7vw,110px)!important;height:clamp(64px,10vh,104px)!important;aspect-ratio:auto!important;flex-shrink:0!important}
html[data-dev="landscape"][data-phone="0"] .catInfobox,
html[data-dev="portrait"][data-phone="0"] .catInfobox{flex:1!important;min-width:0!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important}
html[data-dev="landscape"][data-phone="0"] .catName,
html[data-dev="portrait"][data-phone="0"] .catName{justify-content:flex-start!important;font-size:clamp(13px,1.6vw,18px)!important;gap:10px!important}
html[data-dev="landscape"][data-phone="0"] .catName .hpBar,
html[data-dev="portrait"][data-phone="0"] .catName .hpBar{flex:1!important;min-width:140px!important}
html[data-dev="landscape"][data-phone="0"] .catChips,
html[data-dev="portrait"][data-phone="0"] .catChips{flex-direction:row!important;flex-wrap:wrap!important;gap:4px!important;justify-content:flex-start!important;align-items:center!important}
html[data-dev="landscape"][data-phone="0"] .catSkills,
html[data-dev="portrait"][data-phone="0"] .catSkills{justify-content:flex-start!important;flex-wrap:wrap!important;gap:6px!important}
html[data-dev="landscape"][data-phone="0"] .cSkill,
html[data-dev="portrait"][data-phone="0"] .cSkill{min-height:clamp(26px,3.4vh,38px)!important;padding:2px 10px!important;flex-direction:row!important;gap:4px!important}
html[data-dev="landscape"][data-phone="0"] .cSkill span,
html[data-dev="portrait"][data-phone="0"] .cSkill span{font-size:clamp(10px,1.1vw,13px)!important}
html[data-dev="landscape"][data-phone="0"] .mainCol,
html[data-dev="portrait"][data-phone="0"] .mainCol{flex:1!important;min-height:0!important;gap:1vh!important}
html[data-dev="landscape"][data-phone="0"] .logPanel,
html[data-dev="portrait"][data-phone="0"] .logPanel{max-height:20vh!important}
html[data-dev="landscape"][data-phone="0"] .battleLog,
html[data-dev="portrait"][data-phone="0"] .battleLog{height:14vh!important;min-height:14vh!important;max-height:18vh!important}
html[data-dev="landscape"][data-phone="0"] .miceZone{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:minmax(0,1fr)!important;align-content:stretch!important;align-items:stretch!important}
html[data-dev="portrait"][data-phone="0"] .miceZone{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;align-content:stretch!important;align-items:stretch!important}
/* 4) 卡片一律填满格子(四卡同大、无空白) */
html[data-dev] body .mouseCard.you.mouseCard.you{aspect-ratio:auto!important;height:100%!important;max-height:100%!important;min-height:0!important}
html[data-dev] body .mouseCard:not(.you).mouseCard:not(.you){aspect-ratio:auto!important;height:100%!important;max-height:100%!important;min-height:0!important}
html[data-dev] body .mouseCard{min-width:0!important}
/* ═══════════ 【模块等比例铁律 v3】卡片只等比缩放(295:236)，绝不横向/竖向拉伸 ═══════════ */
html[data-dev] body .mouseCard.you.mouseCard.you,
html[data-dev] body .mouseCard:not(.you).mouseCard:not(.you){aspect-ratio:295/236!important;height:auto!important;max-height:none!important;min-height:0!important;width:100%!important}
html[data-dev="landscape"][data-phone="0"] .miceZone,
html[data-dev="portrait"][data-phone="0"] .miceZone,
html[data-dev="landscape"][data-phone="1"] .miceZone,
html[data-dev="portrait"][data-phone="1"] .miceZone{grid-template-rows:auto!important;align-content:center!important;align-items:center!important}
/* 5) 按钮条：上/下贴边、高度随内容(矮卡也不会被裁) */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns{top:2px!important;bottom:auto!important;height:auto!important;max-height:58%!important;overflow:hidden!important;flex-wrap:wrap!important;align-content:flex-start!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn{top:auto!important;bottom:2px!important;height:auto!important;max-height:52%!important;overflow:hidden!important}
html[data-dev] body .mouseCard:not(.you).mouseCard:not(.you) .miniBtns.miniBtns{top:2px!important;bottom:auto!important;height:auto!important;max-height:55%!important;overflow:hidden!important}
html[data-dev] body .mouseCard:not(.you).mouseCard:not(.you) .mBtn.mBtn{top:auto!important;bottom:2px!important;height:auto!important;max-height:52%!important;overflow:hidden!important}
html[data-dev] body .mouseCard .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard .mBtn.mBtn .mSkill{min-height:clamp(13px,2.8vmin,30px)!important;font-size:clamp(8px,1.05vw,13px)!important;flex:0 1 auto!important}
html[data-dev] body .mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard.you .miniBtns.miniBtns .skipBtn{flex:0 0 auto!important;min-width:max-content!important}
/* 08-26 最终兜底(全设备): 玩家卡严格镜像人机鼠卡——道具/主动/武器右列贴紧, 跳过/推奶酪在血条下方 */
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns{
  position:absolute!important;top:15.5%!important;left:2%!important;right:auto!important;bottom:auto!important;
  width:auto!important;height:auto!important;max-height:22%!important;
  display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-content:flex-start!important;align-items:stretch!important;
  justify-content:flex-start!important;gap:4px!important;overflow:hidden!important;
  background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:6!important}
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .skipBtn,
html[data-dev] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .weakTag{
  flex:0 0 auto!important;min-width:max-content!important;min-height:clamp(16px,3.4vmin,30px)!important;
  font-size:clamp(9px,1.1vw,13px)!important;padding:2px 8px!important;margin:0!important;box-sizing:border-box!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn{
  position:absolute!important;top:auto!important;left:auto!important;right:3%!important;bottom:2px!important;
  width:29%!important;height:auto!important;max-height:85%!important;
  display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:5px!important;
  justify-content:flex-start!important;align-items:stretch!important;overflow:hidden!important;
  background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important}
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .itemBtn,
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill,
html[data-dev] body .mouseCard.you.mouseCard.you .mBtn.mBtn .miniBtn{
  width:100%!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:clamp(16px,3.4vmin,30px)!important;
  height:auto!important;margin:0!important;box-sizing:border-box!important;border-radius:8px!important;border:none!important;
  font-size:clamp(8px,1vw,12px)!important;padding:2px 4px!important}
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot{left:2%!important;right:auto!important;top:auto!important;bottom:22%!important;width:24%!important;height:15%!important}
html[data-dev] body .mouseCard.you.mouseCard.you .potionSlot.potionSlot{left:2%!important;right:auto!important;top:auto!important;bottom:4%!important}
/* 08-34: 卡片内容随卡片尺寸等比缩放(容器查询单位)——编辑器拖多大, 按钮/文字就多大, 实战一致 */
html[data-dev] body .mouseCard.mouseCard{container-type:size}
html[data-dev] body .mouseCard.mouseCard .miniBtns.miniBtns .miniBtn,
html[data-dev] body .mouseCard.mouseCard .mBtn.mBtn .mSkill,
html[data-dev] body .mouseCard.mouseCard .mBtn.mBtn .miniBtn,
html[data-dev] body .mouseCard.mouseCard .healChip,
html[data-dev] body .mouseCard.mouseCard .potChip,
html[data-dev] body .mouseCard.mouseCard .weakTag{
  min-height:clamp(18px,9.5cqw,110px)!important;
  font-size:clamp(10px,3.6cqw,42px)!important;
}
/* v08-143: 治疗/药水/虚弱小胶囊保持小巧(不随按钮加大而变胖), 压过上面的容器规则 */
html[data-dev] body .mouseCard.mouseCard .healChip,
html[data-dev] body .mouseCard.mouseCard .potChip,
html[data-dev] body .mouseCard.mouseCard .weakTag{min-height:clamp(14px,6cqw,30px)!important;font-size:clamp(9px,2.6cqw,16px)!important}
/* 08-37: 治疗/药水按钮美化——与其他按钮同质感(渐变+圆角+光效+图标) */
html[data-dev] body .mouseCard .healSlot .healChip,
html[data-dev] body .mouseCard .potionSlot .potChip{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;
  min-width:max-content!important;min-height:clamp(16px,9.5cqw,46px)!important;
  border-radius:10px!important;border:1px solid rgba(255,255,255,.35)!important;
  box-shadow:0 2px 6px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.35)!important;
  font-weight:900!important;letter-spacing:.5px!important;text-shadow:0 1px 2px rgba(0,0,0,.4)!important;
  padding:2px 10px!important;box-sizing:border-box!important;cursor:pointer!important;white-space:nowrap!important;
}
html[data-dev] body .mouseCard .healSlot .healChip{background:linear-gradient(135deg,#4ade80,#16a34a)!important;color:#fff!important}
html[data-dev] body .mouseCard .healSlot .healChip::before{content:'💗 '}
html[data-dev] body .mouseCard .potionSlot .potChip{background:linear-gradient(135deg,#22c55e,#15803d)!important;color:#fff!important}
html[data-dev] body .mouseCard .healSlot .healChip.disabled{filter:grayscale(.75)!important;opacity:.55!important;cursor:not-allowed!important}
/* ═══════════ 【布局开发者模式 2026-08-09】6模块自由拖动 + 多分辨率模拟 ═══════════ */
#layoutDev{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(5,4,14,.94);flex-direction:column;padding:12px}
#layoutDev.hidden{display:none}
#layoutDevBox{width:min(98vw,1900px);height:96vh;display:flex;flex-direction:row;gap:10px;background:rgba(20,18,40,.98);border:2px solid rgba(255,215,0,.45);border-radius:18px;padding:12px 14px;box-sizing:border-box}
#layoutDevSide{width:280px;flex:none;display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;border-right:1px solid rgba(255,215,0,.2);padding-right:10px;box-sizing:border-box}
#layoutDevHead{display:flex;flex-direction:column;gap:6px}
#layoutDevRes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;max-height:86px;overflow-y:auto}
.ldvGroup{font-size:12px;font-weight:900;color:#ffd700;margin-right:2px}
#layoutDevRes .peekBtn{padding:5px 10px;font-size:12px;min-width:0}
#layoutDevRes .peekBtn.sel{border-color:#ffd700;background:linear-gradient(135deg,#4a3a1a,#3a2a0a)}
#layoutDevStage{flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,#151230,#080714);border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;position:relative}
#layoutDevFrameWrap{transform-origin:center center;flex:none}
#layoutDevFrame{outline:1px solid rgba(255,215,0,.5);background:#0f0c29;display:block}
#layoutDevCode{width:100%;height:84px;background:#0a0818;color:#7dff9a;font-family:monospace;font-size:11px;border:1px solid rgba(255,215,0,.3);border-radius:8px;padding:8px;box-sizing:border-box;resize:none;flex:none}
/* ═══════════ 08-10: 分辨率试玩模拟器（手机/平板/电脑一键切换，直接试玩）═══════════ */
#simModal{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;background:rgba(5,4,14,.95);flex-direction:column;padding:12px}
#simModal.hidden{display:none}
#simBox{width:min(96vw,1700px);height:94vh;display:flex;flex-direction:column;gap:8px;background:rgba(20,18,40,.98);border:2px solid rgba(76,217,100,.45);border-radius:18px;padding:12px 14px;box-sizing:border-box}
#simHead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:18px;font-weight:900;color:#4cd964}
#simRes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;max-height:92px;overflow-y:auto}
#simStage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,#14122c,#070612);border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;position:relative}
#simWrap{transform-origin:center center;flex:none}
#simFrame{outline:1px solid rgba(76,217,100,.55);background:#0f0c29;display:block}
#skinReviewModal{position:fixed;inset:0;z-index:96;display:flex;align-items:center;justify-content:center;background:rgba(5,4,14,.96);flex-direction:column;padding:12px}
#skinReviewModal.hidden{display:none}
#skinReviewBox{width:min(96vw,1400px);height:94vh;display:flex;flex-direction:column;gap:8px;background:rgba(20,18,40,.98);border:2px solid rgba(255,215,0,.45);border-radius:18px;padding:12px 14px;box-sizing:border-box}
#skinReviewHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:18px;font-weight:900;color:#ffd700}
#skinReviewHead .btn{margin:0}
#skinReviewFrame{flex:1;min-height:0;width:100%;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:#fff}
/* ═══════════ 独立按键模块(第7模块): 六键一组(左:任务/主动/武器, 右:跳过/治疗/道具+药水) ═══════════ */
#opsLayer{position:absolute;z-index:7;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;background:rgba(8,6,20,.78);border:1px solid rgba(255,215,0,.5);border-radius:14px;box-sizing:border-box;min-width:0;min-height:0;align-items:stretch}
#opsLayer #opsTop{grid-column:1/-1;display:flex;justify-content:center;align-items:stretch;gap:6px;flex-wrap:wrap;min-width:0;min-height:0}
#opsLayer #opsTop .opsBtn{flex:0 1 auto;width:min(46%,280px);min-width:0;min-height:40px}
#opsLayer .opsCol{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0}
#opsLayer.opsRows{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto 1fr 1fr;min-width:0;min-height:0}
#opsLayer.opsRows .opsCol{display:none}
#opsLayer.opsRows #opsTop{grid-column:1/-1}
#opsLayer .opsBtn{display:flex;align-items:center;justify-content:center;text-align:center;width:100%!important;flex:1;min-height:0!important;max-height:none!important;min-width:0;border:none;border-radius:10px;font-weight:800;font-size:clamp(14px,3.2vmin,20px)!important;color:#fff;cursor:pointer;padding:3px 4px!important;box-sizing:border-box;overflow:hidden;line-height:1.15;letter-spacing:0;position:static!important;margin:0!important;background:linear-gradient(135deg,#4facfe,#a855f7);box-shadow:0 2px 6px rgba(0,0,0,.3)}
#opsLayer .opsBtn{appearance:none;-webkit-appearance:none;font-family:inherit}
#opsLayer .opsBtn.picking{outline:2px solid #4cd964;box-shadow:0 0 0 2px rgba(76,217,100,.5)}
#opsLayer .opsBtn:active{transform:scale(.95)}
#opsLayer .opsBtn:disabled,#opsLayer .opsBtn.used{filter:grayscale(1);opacity:.45;cursor:not-allowed}
#opsLayer .mSkill:not(.used),#opsLayer .miniBtn:not(.used){animation:none!important}
#opsLayer .opsBtn.gray{background:linear-gradient(135deg,#56c8ff,#2ea8ff);color:#fff}
#opsLayer .opsBtn.green{background:linear-gradient(135deg,#16a34a,#4ade80)}
#opsLayer .opsBtn.purple{background:linear-gradient(135deg,#8b5cf6,#b16cff)}
#opsLayer .opsBtn.gold{background:linear-gradient(135deg,#ff9d00,#ffc94d);color:#3a2400}
#opsLayer .opsBtn.mint{background:linear-gradient(135deg,#4bdc9f,#2bb3a0)}
#opsLayer .opsBtn.blue{background:linear-gradient(135deg,#2f6bff,#6a8bff)}
#opsLayer .opsBtn.heal{background:linear-gradient(135deg,#16a34a,#4ade80)}
#opsLayer .opsBtn.big{font-size:clamp(14px,3.4vmin,21px)!important}
body.layoutEdit #opsLayer{cursor:move;touch-action:none;max-width:none!important;max-height:none!important;min-width:0!important;min-height:0!important;box-sizing:border-box!important}
body.layoutEdit #opsLayer::after{content:attr(data-ldv);position:absolute;top:-18px;left:50%;transform:translateX(-50%);background:rgba(255,215,0,.92);color:#1a1a3a;font-size:10px;font-weight:900;padding:1px 8px;border-radius:8px;z-index:99;pointer-events:none;white-space:nowrap}
/* 编辑态(iframe内部)：6模块可拖动 */
html[data-dev] body.layoutEdit .sideArea,html[data-dev] body.layoutEdit .logPanel,html[data-dev] body.layoutEdit .mouseCard{cursor:move;touch-action:none;max-width:none!important;max-height:none!important;min-width:0!important;min-height:0!important;box-sizing:border-box!important}
body.layoutEdit .sideArea::after,body.layoutEdit .logPanel::after,body.layoutEdit .mouseCard::after{content:attr(data-ldv);position:absolute;top:2px;left:50%;transform:translateX(-50%);background:rgba(255,215,0,.92);color:#1a1a3a;font-size:10px;font-weight:900;padding:1px 8px;border-radius:8px;z-index:99;pointer-events:none;white-space:normal;text-align:center;line-height:1.15;max-width:calc(100% - 4px);box-sizing:border-box}
/* ═══════════ 08-09晚: 布局激活时解除隐藏max钳制 + 横屏细节修正 ═══════════ */
/* 布局码生效时: 猫/鼠/播报模块不受max-width/max-height钳制(否则横屏猫模块被压成13vw窄条) */
html[data-dev] .sideArea.layoutApplied,
html[data-dev] .logPanel.layoutApplied,
html[data-dev] .mouseCard.layoutApplied{max-width:none!important;max-height:none!important}
/* 08-10: 战斗信息展开铺满整个框 + 内部可滚动(修复滚轮动不了) */
html[data-dev] .logPanel.layoutApplied{overflow:hidden!important}
html[data-dev] .logPanel.layoutApplied .battleLog{
  flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important;
  overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;pointer-events:auto!important;
  overscroll-behavior:contain!important}
/* 横屏: 玩家卡小按钮恢复显示(右列竖排), 不再被横屏紧凑规则隐藏 */
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{display:flex!important}
/* 横屏: 玩家卡小按钮压缩到一列放得下(跳过/任务/道具不被挤没) */
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{gap:2px!important;height:58%!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns .miniBtn{min-height:24px!important;padding:2px 3px!important;font-size:clamp(8px,1.9vw,11px)!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .mBtn.mBtn{top:76%!important;height:22%!important}
/* 横屏: 队友卡按钮严格右列竖排(道具+主动+武器, 顶部对齐), 不受紧凑横排影响 */
html[data-dev="landscape"][data-phone="1"] .mouseCard:not(.you) .mBtn.mBtn{position:absolute!important;left:auto!important;right:3%!important;top:16.5%!important;bottom:auto!important;width:29%!important;height:80%!important;display:flex!important;flex-direction:column!important;gap:4px!important;justify-content:flex-start!important;align-items:stretch!important;background:transparent!important;border:none!important;padding:0!important;margin:0!important;z-index:5!important}
/* 治疗键: 稍微上移+变短, 不和药水键重合 */
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot{top:69%!important;height:8%!important}
/* v08-191: 大键文字强制单行不换行——治疗键"💗治疗"换行会撑高按钮(80px vs 60px)与其他键不一致 */
#opsLayer .opsBtn{overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important}
/* ═══════════ 08-09深修: 大键字号写死+推奶酪天蓝+治疗套用药水外观 ═══════════ */
/* 大键字号: 再加大一档, 全部!important 防覆盖 */
#opsLayer .opsBtn{font-size:clamp(16px,4vmin,24px)!important;min-height:38px!important}
#opsLayer .opsBtn.big{font-size:clamp(16px,4.2vmin,24px)!important}
/* 推奶酪等任务键: 与小键一模一样的天蓝色, 可用时绝不灰 */
#opsLayer .opsBtn.gray{background:linear-gradient(135deg,#56c8ff,#2ea8ff)!important;color:#fff!important;filter:none!important}
#opsLayer .opsBtn.gray:disabled{filter:grayscale(1)!important;opacity:.45!important}
/* 两行模式: 按钮按内容撑起高度, 容器自动包住两行(第二行不被裁) */
#opsLayer.opsRows .opsBtn{flex:none!important;min-height:36px!important}
/* 治疗键: 完全套用药水键外观(同尺寸/同圆角/同位置逻辑), 颜色浅绿 */
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot{left:2.1%!important;right:auto!important;top:67.5%!important;width:28.8%!important;height:9.3%!important;bottom:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important;z-index:5!important}
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot .healChip{width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:999px!important;font-weight:800!important;font-size:clamp(9px,1.1vw,13px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding:0 4px!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important;background:linear-gradient(135deg,#a8f0c8,#6fe0a0)!important;color:#042!important;border:1px solid rgba(255,255,255,.4)!important;cursor:pointer!important}
html[data-dev] body .mouseCard.you.mouseCard.you .healSlot.healSlot .healChip.disabled{background:linear-gradient(135deg,#8a8a8a,#6a6a6a)!important;color:#ddd!important;cursor:not-allowed!important;opacity:.55!important}
/* 编辑态：模块顶部文字放不下时自动分两行，不截断不溢出 */
body.layoutEdit .mouseCard .top{flex-wrap:wrap;justify-content:center;text-align:center;overflow:visible}
body.layoutEdit .mouseCard .top .mname{white-space:normal;overflow:visible;text-overflow:clip}
body.layoutEdit .catName{flex-wrap:wrap;text-align:center}
body.layoutEdit .logPanel{white-space:normal;word-break:break-word}
body.layoutEdit .mouseCard{border-color:#ffd700!important}
body.layoutEdit .logPanel{background:rgba(10,8,20,.94)}
#editBar{position:fixed;left:6px;top:6px;bottom:6px;right:auto;transform:none;z-index:999;display:flex;flex-direction:column;gap:6px;align-items:stretch;justify-content:flex-start;background:linear-gradient(160deg,#2a1a4a,#1a1030);border:1px solid #ffd700;border-radius:14px;padding:8px 7px;font-size:12px;color:#ffd700;font-weight:800;box-shadow:0 4px 20px rgba(0,0,0,.6);width:150px;max-width:150px;box-sizing:border-box;user-select:none;touch-action:none;cursor:grab;overflow:hidden}
#editBar.dragging{cursor:grabbing;opacity:.92}
#editBar .editBarHandle{cursor:grab;padding:0 4px;font-size:14px;opacity:.85;text-align:center;flex:none}
#editBar .editBarHandle:hover{opacity:1}
#editBar .editBarTitle{text-align:center;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#editBar .editBarBody{display:flex;gap:5px;flex-wrap:wrap;align-items:stretch;justify-content:flex-start;flex:1;min-height:0;overflow-y:auto;align-content:flex-start}
#editBar .editBarBody>button{flex:1 1 calc(50% - 3px);min-width:0}
#editBar.collapsed{width:auto;max-width:none;padding:5px 6px;left:6px;top:50%;transform:translateY(-50%);flex-direction:column}
#editBar.collapsed .editBarBody{display:none!important}
#editBar #editExpandBtn{display:none;flex:none}
#editBar.collapsed #editExpandBtn{display:inline-block;writing-mode:vertical-lr}
#editBar button{border:none;border-radius:10px;padding:5px 6px;font-size:12px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#ffd700,#ff9d00);color:#3a1a00;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#editBar button.ghost{background:rgba(255,255,255,.15);color:#fff}
/* 猫框"方块"形态：竖排像杰瑞卡片 */
body.layoutEdit .sideArea.catShapeCard,html[data-dev] .sideArea.catShapeCard{flex-direction:column!important;align-items:center!important;gap:3px!important;padding:6px!important;overflow:hidden!important}
body.layoutEdit .sideArea.catShapeCard .catCard,html[data-dev] .sideArea.catShapeCard .catCard{width:100%!important;height:52%!important;aspect-ratio:auto!important;flex:none!important}
body.layoutEdit .sideArea.catShapeCard .catInfobox,html[data-dev] .sideArea.catShapeCard .catInfobox{width:100%!important;align-items:center!important;gap:2px!important;flex:1!important}
body.layoutEdit .sideArea.catShapeCard .catName,html[data-dev] .sideArea.catShapeCard .catName{justify-content:center!important;font-size:clamp(10px,1.1vw,14px)!important;gap:4px!important;flex-wrap:wrap!important}
body.layoutEdit .sideArea.catShapeCard .catName .hpBar,html[data-dev] .sideArea.catShapeCard .catName .hpBar{min-width:0!important}
body.layoutEdit .sideArea.catShapeCard .cSkill,html[data-dev] .sideArea.catShapeCard .cSkill{min-height:clamp(18px,2.2vh,28px)!important;padding:1px 6px!important}
/* 猫"方块"= 完全仿鼠卡海报布局：图左、名字血条上、技能右列 */
html[data-dev] .sideArea.catShapeCard{display:block!important;background:linear-gradient(180deg,rgba(255,90,60,.08),rgba(120,40,0,.06))!important;border:2px solid rgba(255,120,120,.4)!important;border-radius:16px!important}
html[data-dev] .sideArea.catShapeCard .catCard{position:absolute!important;left:24.4%!important;top:19.5%!important;width:41.3%!important;height:74.5%!important;background:none!important;border:none!important;box-shadow:none!important;border-radius:0!important;overflow:hidden!important;display:flex!important;align-items:flex-start!important;justify-content:center!important;margin:0!important}
html[data-dev] .sideArea.catShapeCard .catCard img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important}
html[data-dev] .sideArea.catShapeCard .catCard .cn{display:none!important}
html[data-dev] .sideArea.catShapeCard .catName{position:absolute!important;left:2.7%!important;top:5.1%!important;width:94.6%!important;height:9.3%!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;padding:0 8px!important;background:rgba(0,0,0,.35)!important;border:1px solid rgba(255,160,120,.25)!important;border-radius:6px!important;overflow:hidden!important;white-space:nowrap!important}
html[data-dev] .sideArea.catShapeCard .catName .hpBar{flex:1!important;min-width:0!important}
html[data-dev] .sideArea.catShapeCard .catChips{position:absolute!important;left:1.2%!important;top:19.9%!important;width:22.2%!important;display:flex!important;flex-direction:column!important;gap:2px!important;align-items:flex-start!important;overflow:hidden!important}
html[data-dev] .sideArea.catShapeCard .catChips .catChip{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
html[data-dev] .sideArea.catShapeCard .catSkills{position:absolute!important;right:3%!important;top:16.5%!important;bottom:auto!important;left:auto!important;width:29%!important;height:80%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;overflow:hidden!important}
html[data-dev] .sideArea.catShapeCard .catSkills .cSkill{width:100%!important;flex:0 0 auto!important;margin:0!important}
html[data-dev] .sideArea.catShapeCard .catSkipBtn{width:100%!important;margin:0!important;flex:0 0 auto!important}
/* 拖拽缩放手柄 */
.ldvGrip{position:absolute!important;right:2px!important;bottom:2px!important;width:30px!important;height:30px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:linear-gradient(135deg,#ffd700,#ff9d00)!important;color:#1a1a3a!important;font-size:18px!important;font-weight:900!important;border:2px solid #fff!important;border-radius:8px!important;box-shadow:0 2px 8px rgba(0,0,0,.55)!important;z-index:999!important;cursor:nwse-resize!important;pointer-events:auto!important;user-select:none!important;line-height:1!important}
/* ═══════════ 【UI省力优化 2026-08-09 老公觉得玩起来吃力】：去闪烁、强对比、回合更醒目、节奏更快 ═══════════ */
html[data-dev] .mSkill:not(.used),html[data-dev] .cSkill.clickable,html[data-dev] .mouseCard.targetable,html[data-dev] .miceZone,html[data-dev] .catCard{animation:none!important}
html[data-dev] .mSkill:not(.used){box-shadow:0 0 8px rgba(76,217,100,.28)!important}
html[data-dev] .cSkill.clickable,html[data-dev] .mouseCard.targetable{box-shadow:0 0 0 2px #4cd964!important}
html[data-dev] .st-weak,html[data-dev] .st-hurt{animation:weakBlink 1.8s ease-in-out infinite!important}
html[data-dev] .turnBadge{font-size:clamp(15px,2vw,22px)!important}
html[data-dev] .mouseCard.you{border-width:3px!important;box-shadow:0 0 0 2px #4cd964,0 0 20px rgba(76,217,100,.5)!important}
html[data-dev] .mhp,html[data-dev] #catHP{font-size:clamp(12px,1.4vw,16px)!important;font-weight:900!important}
html[data-dev] .mSkill,html[data-dev] .miniBtn{text-shadow:0 1px 2px rgba(0,0,0,.6)!important}
html[data-dev] .mSkill[disabled],html[data-dev] .miniBtn[disabled]{opacity:.35!important;filter:grayscale(1)!important}
html[data-dev] .taskBar{border:1px solid rgba(255,215,0,.35)!important}
/* ═══════════ 08-10: 横屏玩家卡按钮防吞(顶部横排操作键+右侧竖排技能+左下治疗药水) ═══════════ */
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns{
  position:absolute!important;top:1px!important;left:1px!important;right:1px!important;bottom:auto!important;
  display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
  width:auto!important;height:auto!important;max-height:none!important;
  gap:2px!important;padding:1px 2px!important;z-index:8!important;background:rgba(10,8,20,.55)!important
}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .miniBtns .miniBtn{
  flex:1 1 0!important;min-width:0!important;min-height:0!important;height:auto!important;
  padding:0 2px!important;font-size:clamp(7px,1.5vw,9px)!important;line-height:1.1!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .mBtn.mBtn{
  position:absolute!important;top:26%!important;bottom:2px!important;left:auto!important;right:1px!important;
  width:30%!important;height:auto!important;max-height:none!important;
  display:flex!important;flex-direction:column!important;gap:2px!important;
  padding:0!important;border:none!important;background:none!important;z-index:8!important
}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .mBtn .mSkill{
  flex:1 1 auto!important;min-height:0!important;padding:1px 2px!important;
  font-size:clamp(7px,1.5vw,9px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .healSlot.healSlot{left:1px!important;right:auto!important;top:28%!important;width:24%!important;height:15%!important;z-index:8!important}
html[data-dev="landscape"][data-phone="1"] .mouseCard.you .potionSlot{left:1px!important;right:auto!important;top:46%!important;z-index:8!important}
/* ═══════════ 08-10: 主页面+选人页面适配优化 ═══════════ */
/* 主页面竖屏: 内容均衡分布, 消除底部大片空白 */
html[data-dev="portrait"][data-phone="1"] #titleScreen{justify-content:space-evenly!important;padding:2vh 3vw!important;overflow-y:auto!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .catVs{margin:1.8vh 0!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow{width:min(96vw,560px)!important;gap:6px!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .btnLab{font-size:clamp(11px,3vw,14px)!important;padding:8px 10px!important;margin:2px 0!important}
/* 主页面横屏: 功能按钮等宽+间距拉开, 不再挤边 */
html[data-dev="landscape"] #titleScreen .secRow{gap:8px!important;width:min(96vw,900px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{position:absolute!important;right:2vw!important;top:50%!important;transform:translateY(-50%)!important;width:min(26vw,210px)!important;margin:0!important;grid-template-columns:1fr!important;z-index:5;gap:8px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen{--secW:min(26vw,210px);padding-right:calc(var(--secW) + 5vw)!important;padding-left:1vw!important}

html[data-dev="landscape"] #titleScreen .secRow .btnLab{flex:1!important;padding:8px 4px!important;font-size:clamp(10px,1.5vw,14px)!important;white-space:nowrap!important}
html[data-dev="landscape"] #titleScreen .btnFit{margin:6px 0!important}
/* 选人: 卡片区域确保能滚动到底看到所有卡, 间距加大 */
html[data-dev] .mousePool{gap:1.8vh 2vw!important;padding:8px 10px 16px!important}
html[data-dev="portrait"][data-phone="1"] .mousePool{max-height:60vh!important;min-height:0!important}
html[data-dev="portrait"][data-phone="1"] .pickCard{min-height:0!important}
/* 换皮肤按钮上移, 不遮挡角色名 */
html[data-dev] .pickCard .skinBtn{bottom:30px!important;padding:5px 6px!important;font-size:min(2.6vw,12px)!important}
/* 选中状态发光更明显(你=绿框脉冲, AI队友=金框脉冲) */
html[data-dev] .pickCard.playerPick{animation:youPulse 1.6s ease-in-out infinite!important}
html[data-dev] .pickCard.picked{animation:pickPulse 1.6s ease-in-out infinite!important}
@keyframes youPulse{0%,100%{box-shadow:0 0 0 3px #4cd964,0 0 14px rgba(76,217,100,.45)}50%{box-shadow:0 0 0 3px #4cd964,0 0 32px rgba(76,217,100,.9)}}
@keyframes pickPulse{0%,100%{box-shadow:0 0 0 3px #ffd700,0 0 14px rgba(255,215,0,.4)}50%{box-shadow:0 0 0 3px #ffd700,0 0 30px rgba(255,215,0,.85)}}
/* ═══════════ v08-50 非战斗界面精修（设计系统：主次层级 / 精致质感 / 反平铺） ═══════════ */
/* ---- 主标题：金色渐变字 + 柔和光晕（标题是唯一焦点） ---- */
#titleScreen .logo{background:linear-gradient(180deg,#fff3c4 0%,#ffd700 45%,#ff9d00 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#ffd700;filter:drop-shadow(0 2px 10px rgba(255,190,0,.45)) drop-shadow(0 0 2px rgba(255,255,255,.25));letter-spacing:3px}
#titleScreen .logoSub{color:#ffe9a8;letter-spacing:5px;text-shadow:0 1px 4px rgba(0,0,0,.8)}
#titleScreen .logoSmall{color:rgba(255,235,190,.72)}
/* ---- 开始按钮：唯一主按钮（金色实心 + 内高光 + 呼吸光晕） ---- */
#titleScreen .btnStart{position:relative;background:linear-gradient(135deg,#ffd700 0%,#ff9d00 52%,#ff7a00 100%)!important;border:none!important;color:#3a1a00!important;font-weight:900;letter-spacing:2px;box-shadow:0 4px 18px rgba(255,170,0,.35),0 10px 34px rgba(255,120,0,.22),inset 0 1px 0 rgba(255,255,255,.55),inset 0 -8px 16px rgba(200,80,0,.28);text-shadow:0 1px 0 rgba(255,255,255,.35);transition:transform .18s var(--ease-out),box-shadow .25s var(--ease-out);animation:btnStartGlow 2.6s ease-in-out infinite}
#titleScreen .btnStart:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 26px rgba(255,170,0,.5),0 16px 44px rgba(255,120,0,.32),inset 0 1px 0 rgba(255,255,255,.6),inset 0 -8px 16px rgba(200,80,0,.28)}
#titleScreen .btnStart:active{transform:translateY(0) scale(.96)}
@keyframes btnStartGlow{0%,100%{box-shadow:0 4px 18px rgba(255,170,0,.35),0 10px 34px rgba(255,120,0,.22),inset 0 1px 0 rgba(255,255,255,.55),inset 0 -8px 16px rgba(200,80,0,.28)}50%{box-shadow:0 4px 26px rgba(255,170,0,.55),0 12px 44px rgba(255,120,0,.34),inset 0 1px 0 rgba(255,255,255,.55),inset 0 -8px 16px rgba(200,80,0,.28)}}
/* ---- 次级按钮：毛玻璃 + 细金边（安静陪衬，不与主按钮抢） ---- */
#titleScreen .secRow .btnLab,.moreGrid .btnLab{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.03));border:1px solid rgba(255,215,0,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 10px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .15s var(--ease-out),border-color .2s,box-shadow .25s var(--ease-out)}
#titleScreen .secRow .btnLab:hover,.moreGrid .btnLab:hover{border-color:rgba(255,215,0,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 18px rgba(0,0,0,.32),0 0 18px rgba(255,215,0,.18);transform:translateY(-1px)}
/* ---- 弹窗面板：双阴影 + 顶部高光线，消除"生硬黑边" ---- */
#morePanel,#battleSetPanel,#rulePanel,#labPanel,#lyricsPanel,#customPanel,#layoutModal .panel,#devPanel,#skinReviewPanel,#fitPanel,#charInfoModal .ciPanel{position:relative;border:1px solid rgba(255,215,0,.55)!important;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 -18px 40px rgba(20,10,60,.5) inset,0 24px 70px rgba(0,0,0,.75),0 0 44px rgba(255,180,0,.12)!important}
#morePanel::before,#battleSetPanel::before,#rulePanel::before,#labPanel::before,#lyricsPanel::before,#customPanel::before,#devPanel::before,#charInfoModal .ciPanel::before{content:'';position:absolute;top:0;left:8%;right:8%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,225,130,.9),transparent);pointer-events:none}
#moreTitle,#battleSetTitle,#ruleTitle,#labTitle,#lyricsTitle,#charInfoModal .ciTitle{text-shadow:0 0 18px rgba(255,190,0,.35),0 2px 4px rgba(0,0,0,.7)}
/* ---- 弹窗主按钮统一（金色主操作） ---- */
#ruleClose,#labGo,.peekGo,#bsCloseBtn,#charInfoModal .ciClose,#layoutModal .saveBtn{background:linear-gradient(135deg,#ffd700,#ff9d00)!important;color:#3a1a00!important;border:none!important;font-weight:900;box-shadow:0 4px 16px rgba(255,170,0,.35),inset 0 1px 0 rgba(255,255,255,.5);transition:transform .15s var(--ease-out),box-shadow .2s}
#ruleClose:hover,#labGo:hover,.peekGo:hover,#bsCloseBtn:hover,#charInfoModal .ciClose:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(255,170,0,.5),inset 0 1px 0 rgba(255,255,255,.5)}
#ruleClose:active,#labGo:active,.peekGo:active,#bsCloseBtn:active,#charInfoModal .ciClose:active{transform:scale(.95)}
/* ---- 选阵营大卡：渐变边框 + 立体感 ---- */
#sidePick .sideBtn{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.02));border:2px solid rgba(255,215,0,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px rgba(0,0,0,.4);transition:transform .18s var(--ease-out),border-color .2s,box-shadow .3s}
#sidePick .sideBtn:hover{border-color:rgba(255,215,0,.85);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 40px rgba(0,0,0,.45),0 0 26px rgba(255,200,0,.2);transform:translateY(-2px)}
#sidePick .sideBtn:active{transform:scale(.97)}
/* ---- 选人卡片：hover 轻提 + 选中脉冲已有，补桌面精致过渡 ---- */
.pickCard{transition:transform .18s var(--ease-out),box-shadow .3s var(--ease-out),border-color .2s}
@media (hover:hover) and (pointer:fine){.pickCard:hover{transform:translateY(-3px);border-color:rgba(255,215,0,.75)}}
/* ---- 结算界面：更聚焦 ---- */
.resultBox{background:rgba(10,8,22,.82)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,215,0,.55)!important;box-shadow:0 30px 80px rgba(0,0,0,.8),0 0 50px rgba(255,180,0,.14)!important}
/* ---- 减少动态效果偏好：关闭装饰呼吸动画 ---- */
@media (prefers-reduced-motion:reduce){#titleScreen .btnStart{animation:none}}
/* ═══════════ v08-51 主界面无立绘·电影徽章重设计（立绘太廉价 → 命运纹章，识别性靠"猫 VS 鼠"金字 + 双金环） ═══════════ */
#titleScreen{gap:clamp(4px,1.4vh,12px)}
#titleScreen .logo{font-size:min(10.5vw,96px)!important;letter-spacing:clamp(4px,1.2vw,14px)!important;background:linear-gradient(180deg,#fff8d8 0%,#ffd700 40%,#c9921a 58%,#ffd700 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 24px rgba(255,185,40,.28)) drop-shadow(0 3px 3px rgba(0,0,0,.5))!important}
#titleScreen .logo::after{content:"";display:block;width:min(46vw,460px);height:1px;margin:clamp(4px,1vh,10px) auto 0;background:linear-gradient(90deg,transparent,rgba(255,215,0,.75) 18%,rgba(255,215,0,.18) 50%,rgba(255,215,0,.75) 82%,transparent)}
#titleScreen .logoSub{margin-top:clamp(2px,.8vh,8px)!important;font-size:min(2.5vw,20px)!important;letter-spacing:clamp(6px,1.8vw,18px)!important;color:#e8c66a!important}
#titleScreen .logoSmall{font-size:min(1.7vw,14px)!important;color:rgba(255,235,190,.66)!important;letter-spacing:clamp(2px,.7vw,6px)!important}
/* 主界面舞台光：中央暖金氛围（不遮按钮） */
#titleScreen::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 52% 44% at 50% 46%,rgba(255,195,70,.14),rgba(255,160,40,.04) 52%,transparent 72%)}
.heroEmblem,.logo,.logoSub,.logoSmall,.verTag,.btnStart,.secRow,#fitTip{position:relative;z-index:1}
/* 命运纹章：双金环 + 深色核心 + 猫鼠金字 */
.heroEmblem{position:relative;width:min(36vw,320px);aspect-ratio:1;margin:clamp(6px,1.6vh,18px) 0;display:flex;align-items:center;justify-content:center;animation:fadeIn .6s var(--ease-out) .14s both}
.heroEmblem .ring{position:absolute;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.heroEmblem .r1{width:100%;height:100%;border:1px solid rgba(255,215,0,.22);box-shadow:0 0 70px rgba(255,190,50,.12),inset 0 0 60px rgba(255,190,50,.08)}
.heroEmblem .r2{width:86%;height:86%;border:1px dashed rgba(255,215,0,.5);animation:emSpin 40s linear infinite}
.heroEmblem .r3{width:72%;height:72%;background:radial-gradient(circle at 50% 30%,rgba(255,215,0,.16),rgba(18,10,36,.94) 64%);border:1px solid rgba(255,215,0,.4);box-shadow:0 12px 44px rgba(0,0,0,.55),inset 0 0 34px rgba(255,190,50,.1)}
.heroEmblem .core{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(6px,1.4vw,14px)}
.heroEmblem .side{font-size:min(7vw,56px);font-weight:900;color:#ffd700;text-shadow:0 0 18px rgba(255,200,50,.5),0 2px 3px rgba(0,0,0,.6);letter-spacing:2px}
.heroEmblem .vs{font-size:min(4vw,32px);font-weight:900;letter-spacing:3px;color:#fff3d0;text-shadow:0 0 16px rgba(255,215,0,.85),0 0 40px rgba(255,180,30,.4)}
.heroEmblem .cap{position:absolute;left:0;right:0;bottom:6%;text-align:center;font-size:min(1.8vw,14px);letter-spacing:clamp(3px,.9vw,9px);color:rgba(255,225,160,.72);font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.7)}
@keyframes emSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
/* 竖屏手机：徽章缩小 */
html[data-dev="portrait"] .heroEmblem{width:min(58vw,260px);margin:clamp(2px,1vh,10px) 0}
html[data-dev="portrait"] .heroEmblem .side{font-size:min(11vw,44px)}
html[data-dev="portrait"] .heroEmblem .vs{font-size:min(7vw,28px)}
html[data-dev="portrait"] .heroEmblem .cap{bottom:4%}
/* 横屏手机：徽章按高度收缩 */
html[data-dev="landscape"] .heroEmblem{width:min(24vh,240px);margin:clamp(2px,1vh,10px) 0}
html[data-dev="landscape"] .heroEmblem .side{font-size:min(10vh,44px)}
html[data-dev="landscape"] .heroEmblem .vs{font-size:min(6vh,26px)}
/* ═══════════ v08-52 第六轮·主界面重做（设计契约：Ex Astris 宇宙档案族+品牌金 / 编辑式层次 / 克制仪表 / 反装饰堆砌） ═══════════ */
/* ---- 标题区：衬线大字 + 英文 kicker + 细金线（大标题与微小标签并存，去中间填充） ---- */
#titleScreen .logo{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;font-size:min(9vw,84px)!important;font-weight:700;letter-spacing:clamp(2px,.8vw,10px)!important;background:linear-gradient(180deg,#f4e4ae 0%,#e6c266 42%,#a9832e 70%,#d9b45a 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55))!important}
#titleScreen .logo::after{width:min(40vw,380px);height:1px;margin:clamp(2px,.6vh,6px) auto 0;background:linear-gradient(90deg,transparent,rgba(230,194,102,.8) 20%,rgba(230,194,102,.25) 50%,rgba(230,194,102,.8) 80%,transparent)}
#titleScreen .logoSub{font-size:min(2vw,15px)!important;letter-spacing:clamp(5px,1.4vw,14px)!important;color:rgba(214,188,120,.82)!important;font-weight:600;margin-top:clamp(2px,.6vh,6px)!important;text-shadow:0 1px 3px rgba(0,0,0,.6)}
#titleScreen .logoSmall{font-size:min(1.6vw,13px)!important;color:rgba(235,220,180,.55)!important;letter-spacing:clamp(2px,.5vw,5px)!important}
/* ---- 版本号：左下角仪表化，不占主视觉 ---- */
#titleScreen .verTag{position:absolute;left:clamp(8px,1.2vw,18px);bottom:clamp(6px,1vh,12px);font-size:min(1.4vw,11px)!important;color:rgba(230,194,102,.55)!important;background:transparent!important;border:1px solid rgba(230,194,102,.22)!important;border-radius:3px!important;padding:2px 8px!important;letter-spacing:1px;margin:0!important}
/* ---- 双阵营对峙（Fighting VS 张力，Ex Astris 档案质感，v08-106 重设计） ---- */
/* v08-135: 主界面中区——猫鼠对决主视觉图(flux-2-pro 生成, 写实非卡通) */
.heroVs{position:relative;z-index:1;width:min(64vw,560px);margin:clamp(4px,1.2vh,14px) auto;text-align:center}
.heroVs img{width:100%;display:block;border-radius:16px;border:1px solid rgba(255,215,0,.28);box-shadow:0 16px 48px rgba(0,0,0,.62),0 0 28px rgba(255,180,0,.10)}
.heroVs .vsBadge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:"Arial Black",Impact,sans-serif;font-size:clamp(24px,5vw,54px);font-weight:900;color:#fff;letter-spacing:1px;text-shadow:0 0 18px rgba(255,70,30,.95),0 0 44px rgba(255,150,0,.75),0 3px 0 rgba(120,30,0,.8);pointer-events:none}
/* v08-138: 主界面中区——简洁大气的纯文字 VS（细金线 + 衬线字，不堆图不花哨） */
.vsLine{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.6vw,32px);margin:clamp(10px,2.4vh,24px) auto;width:min(76vw,580px)}
.vsLine .vsRule{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(216,196,137,.55))}
.vsLine .vsRule:last-child{background:linear-gradient(90deg,rgba(216,196,137,.55),transparent)}
.vsLine .vsCore{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;font-size:clamp(22px,4vw,42px);letter-spacing:.3em;color:#d8c489;font-weight:500;white-space:nowrap}
.vsLine .vsCore em{font-style:normal;color:#ffd700;font-weight:900;letter-spacing:.08em;margin:0 .25em;text-shadow:0 0 18px rgba(255,190,60,.35)}
/* v08-139: 主界面简洁化——按钮去花哨、竖屏垂直居中拉匀留白 */
#titleScreen .btnStart{background:linear-gradient(180deg,#ffd700,#f0a500)!important;color:#241a00!important;letter-spacing:5px!important;text-shadow:none!important;box-shadow:0 8px 28px rgba(255,180,0,.30)!important;animation:fadeIn .35s var(--ease-out) .1s both!important}
#titleScreen .secRow .btnLab{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,215,0,.20)!important;color:#e6ddc0!important;box-shadow:none!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen{justify-content:center!important}
html[data-dev="portrait"][data-phone="1"] .heroVs{width:min(94vw,440px)!important}
html[data-dev="landscape"][data-phone="1"] .heroVs{width:min(52vw,380px)!important}
.heroArch{position:relative;z-index:1;width:min(36vw,330px);margin:clamp(4px,1.2vh,14px) 0;display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1vh,10px);animation:archIn .7s cubic-bezier(.23,1,.32,1) .1s both}
/* 极淡光晕 */
.archGlow{position:absolute;inset:-18% -8%;pointer-events:none;background:radial-gradient(ellipse at center,rgba(230,194,102,.09) 0%,rgba(230,194,102,.03) 50%,transparent 72%)}
/* 对峙主体：三栏 */
.archFight{position:relative;z-index:2;display:flex;align-items:stretch;width:100%;border-radius:6px;overflow:hidden;border:1px solid rgba(230,194,102,.30);box-shadow:0 0 24px rgba(230,194,102,.08),inset 0 0 30px rgba(0,0,0,.45)}
/* 左：猫阵营（暖金） */
.archSide{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1px,.4vh,4px);padding:clamp(8px,1.6vh,16px) 6px;position:relative}
.archSide.cat{background:linear-gradient(180deg,rgba(255,140,50,.16),rgba(120,60,10,.10));border-right:1px solid rgba(230,194,102,.25)}
.archSide.mouse{background:linear-gradient(180deg,rgba(90,160,255,.14),rgba(40,80,160,.10))}
.archSideLabel{font-size:clamp(6px,1vw,10px);letter-spacing:clamp(1px,.4vw,3px);color:rgba(230,194,102,.55);font-weight:700;text-transform:uppercase;font-family:"Arial Narrow","Roboto Condensed",sans-serif}
.archSide.mouse .archSideLabel{color:rgba(140,190,255,.6)}
.archSide i{font-style:normal;font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;font-size:clamp(28px,5.6vw,52px);font-weight:800;line-height:1.05;color:#e6c266;text-shadow:0 2px 12px rgba(0,0,0,.7),0 0 26px rgba(230,194,102,.30)}
.archSide.mouse i{color:#9cc7ff;text-shadow:0 2px 12px rgba(0,0,0,.7),0 0 26px rgba(120,180,255,.30)}
.archSideSub{font-size:clamp(7px,1.1vw,11px);color:rgba(240,225,190,.5);letter-spacing:1px;font-weight:600}
.archSide.mouse .archSideSub{color:rgba(180,210,255,.55)}
/* 中：VS 区 */
.archMiddle{flex:0 0 clamp(58px,11vw,92px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,.5vh,5px);background:linear-gradient(180deg,rgba(10,8,20,.75),rgba(6,5,14,.85));border-left:1px solid rgba(230,194,102,.18);border-right:1px solid rgba(230,194,102,.18);position:relative}
.archMiddle::before{content:"";position:absolute;inset:18% 22%;border:1px solid rgba(230,194,102,.22);border-radius:50%;transform:rotate(45deg);box-shadow:0 0 14px rgba(230,194,102,.12)}
.archMiddle b{font-family:"Arial Narrow","Roboto Condensed","DIN Condensed",sans-serif;font-size:clamp(16px,3vw,26px);font-weight:800;letter-spacing:1px;color:#ffe9a8;text-shadow:0 0 14px rgba(255,215,0,.6);position:relative;z-index:1}
.archRound{font-size:clamp(6px,1vw,10px);color:rgba(240,215,150,.6);letter-spacing:1px;font-weight:700;position:relative;z-index:1;white-space:nowrap}
/* 底部元信息：命运终局 · 猫鼠对决 */
.archMeta{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(6px,1.4vw,14px);font-size:clamp(8px,1.4vw,12px);letter-spacing:clamp(2px,.6vw,5px);color:rgba(214,188,120,.62);font-weight:600;white-space:nowrap}
.archRule{display:inline-block;width:clamp(26px,6vw,60px);height:1px;background:linear-gradient(90deg,transparent,rgba(230,194,102,.55));flex:none}
.archRule:last-child{background:linear-gradient(90deg,rgba(230,194,102,.55),transparent)}
@keyframes archIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* ---- 按钮体系：主=金色实心小圆角；次=1px 描边透明（主次层级清晰） ---- */
#titleScreen .btnStart{margin-top:clamp(6px,1.4vh,16px);padding:clamp(10px,1.8vh,16px) clamp(40px,7vw,72px);font-size:min(2.4vw,22px)!important;border-radius:8px!important;letter-spacing:clamp(4px,1.2vw,10px)!important;background:linear-gradient(180deg,#e8c466 0%,#d6a63e 55%,#b8862b 100%)!important;color:#241503!important;box-shadow:0 2px 0 #8a6420,0 10px 26px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.4)!important;text-shadow:0 1px 0 rgba(255,255,255,.25)!important;animation:none!important;font-weight:900}
#titleScreen .btnStart:hover{transform:translateY(-1px);filter:brightness(1.06)}
#titleScreen .btnStart:active{transform:translateY(1px);box-shadow:0 1px 0 #8a6420,0 4px 12px rgba(0,0,0,.4)!important}
#titleScreen .secRow{width:min(94vw,460px)!important;gap:clamp(6px,1vw,10px)!important;margin-top:clamp(6px,1.2vh,12px)!important}
#titleScreen .secRow .btnLab,.moreGrid .btnLab{background:rgba(10,8,18,.42)!important;border:1px solid rgba(230,194,102,.32)!important;border-radius:8px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#e8dcc0!important;font-weight:700}
#titleScreen .secRow .btnLab:hover,.moreGrid .btnLab:hover{border-color:rgba(230,194,102,.75)!important;background:rgba(230,194,102,.10)!important}
/* ---- 背景：全屏暗化（防背景文字与内容打架）+ 中央舞台光 ---- */
#titleScreen::before{background:rgba(8,6,18,.42);z-index:0}
#titleScreen::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 58% 48% at 50% 45%,rgba(230,194,102,.10),transparent 68%)}
/* ---- 竖屏手机 ---- */
html[data-dev="portrait"] .heroArch{width:min(88vw,320px);margin:clamp(2px,.8vh,8px) 0}
html[data-dev="portrait"] .archSide i{font-size:min(15vw,52px)}
html[data-dev="portrait"] .archMiddle{flex-basis:clamp(52px,16vw,88px)}
html[data-dev="portrait"] .logo{font-size:min(11vw,64px)!important}
/* ---- 横屏手机 ---- */
html[data-dev="landscape"] .heroArch{width:min(30vh,280px);margin:clamp(2px,.6vh,8px) 0}
html[data-dev="landscape"] .archSide i{font-size:min(9vh,42px)}
html[data-dev="landscape"] .archMiddle{flex-basis:clamp(44px,10vh,72px)}
/* ---- v08-106 全型号微调：小屏竖屏手机(≤400px) ---- */
@media (max-width:400px) and (orientation:portrait){
  .heroArch{width:min(88vw,280px)!important;margin:2px 0 6px!important}
  .archSide i{font-size:min(16vw,44px)!important}
  .archMiddle{flex-basis:clamp(46px,16vw,76px)!important}
  .archMeta{font-size:min(2.6vw,12px)!important}
}
/* ---- v08-106 全型号微调：超大屏手机/平板竖屏(>700px 宽) ---- */
@media (min-width:700px) and (orientation:portrait){
  .heroArch{width:min(62vw,420px)!important;margin:clamp(4px,1.2vh,12px) 0!important}
  .archSide i{font-size:min(12vw,56px)!important}
  .archMiddle{flex-basis:clamp(64px,12vw,100px)!important}
  .archMeta{font-size:min(1.9vw,14px)!important}
}
/* ---- v08-106 全型号微调：横屏矮手机(高度≤450px, 如 740x360) 极限压缩 ---- */
@media (orientation:landscape) and (max-height:450px){
  #titleScreen{padding:0.3vh 2vw!important;overflow:hidden!important;gap:2px!important}
  #titleScreen .logo{font-size:clamp(18px,5.4vh,28px)!important;margin:.2vh 0 0!important}
  #titleScreen .logoSub{font-size:clamp(9px,2.6vh,13px)!important;margin:.1vh 0!important}
  #titleScreen .logoSmall{font-size:clamp(8px,2.2vh,11px)!important;margin:.1vh 0!important}
  #titleScreen .btnStart{padding:6px 22px!important;font-size:clamp(12px,3.2vh,16px)!important;margin:.2vh 0!important}
  #titleScreen .verTag{font-size:clamp(8px,2.2vh,11px)!important;padding:2px 8px!important;margin:.2vh 0!important}
  .heroArch{width:min(34vh,300px)!important;margin:1px 0 4px!important}
  .archSide i{font-size:min(8vh,34px)!important}
  .archMiddle{flex-basis:clamp(40px,8vh,64px)!important}
  .archMeta{font-size:min(2vh,10px)!important;letter-spacing:1px!important}
  .archGlow{inset:-6%!important}
  /* 08-15: 矮横屏(740x360等)选阵营极限压缩——两个按钮缩小, 保证整页放下无滚动 */
  #pickScreen{padding:0.6vh 1vw!important;gap:0.6vh!important}
  .pickHeader{margin:0!important}
  .pickKicker{font-size:min(1.5vh,9px)!important}
  #pickTitle{font-size:min(3vh,18px)!important}
  #pickTip{font-size:min(2vh,11px)!important}
  #sidePick{margin:0.6vh auto!important;gap:2vw!important}
  #sidePick .sideBtn{width:min(36vw,250px)!important;height:min(38vh,128px)!important;min-height:0!important;padding:5px 8px!important;gap:.5vh!important;border-radius:14px!important}
  #sidePick .sideBig{font-size:clamp(24px,5.5vh,36px)!important}
  #sidePick .sideName{font-size:clamp(11px,2.5vh,15px)!important;letter-spacing:1px!important}
  #sidePick .sideDesc{font-size:clamp(8px,2.2vh,10px)!important;line-height:1.2!important}
  .pickFooter{padding:0!important;gap:8px!important}
  .pickFooter .btn{padding:5px 14px!important;font-size:min(2.2vh,13px)!important}
  /* v08-177: 横屏矮屏——四小键强制一排并缩小，防底部被切 */
  html[data-dev][data-phone="1"] #titleScreen .titleHead{margin-top:0!important}
  html[data-dev][data-phone="1"] #titleScreen .btnStart{margin-top:0!important;padding:5px 20px!important}
  html[data-dev][data-phone="1"] #titleScreen .secRow{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:min(96vw,640px)!important;gap:6px!important;margin-top:2px!important}
  html[data-dev][data-phone="1"] #titleScreen .secRow .btnLab{min-height:30px!important;padding:4px 6px!important;font-size:clamp(10px,2.4vh,13px)!important;letter-spacing:1px!important}
}
/* ---- v08-106 全型号微调：横屏中等(451-600px 高, 平板横屏 768x1024→1024x768) ---- */
@media (orientation:landscape) and (min-height:451px) and (max-height:600px){
  .heroArch{width:min(34vh,320px)!important}
  .archSide i{font-size:min(9vh,42px)!important}
}
/* ---- v08-106 全型号微调：电脑大屏(≥1280 宽, 横屏) 中央轮盘更大气 ---- */
@media (min-width:1280px) and (min-height:700px) and (orientation:landscape){
  .heroArch{width:min(44vh,430px)!important;margin:clamp(6px,1.6vh,18px) 0!important}
  .archSide i{font-size:min(11vh,60px)!important}
  .archMiddle{flex-basis:clamp(64px,12vh,104px)!important}
  .archMeta{font-size:min(2.4vh,15px)!important}
  .archGlow{inset:-14%!important}
}
/* ---- v08-106 全型号微调：超矮横屏(≤320px 高, 极端) 只留轮盘缩小保证按钮可见 ---- */
@media (orientation:landscape) and (max-height:320px){
  .heroArch{width:min(30vh,260px)!important;margin:0!important}
  .archSide i{font-size:min(7vh,30px)!important}
  .archMeta{display:none!important}
  .archMiddle{flex-basis:clamp(34px,7vh,56px)!important}
}
/* ═══════════ v08-52 全局编辑式精修（选人/弹窗/结算：统一 Ex Astris 档案气质，只动视觉不动功能） ═══════════ */
/* ---- 选人界面：kicker + 衬线标题 + 小字说明（大/小并存，去中间填充） ---- */
.pickKicker{font-size:min(1.6vw,12px);letter-spacing:clamp(4px,1vw,10px);color:rgba(214,188,120,.6);font-weight:700;text-transform:uppercase;margin-bottom:clamp(2px,.6vh,6px);display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,20px)}
.pickKicker::before,.pickKicker::after{content:"";width:clamp(24px,6vw,64px);height:1px;background:linear-gradient(90deg,transparent,rgba(230,194,102,.65))}
.pickKicker::after{background:linear-gradient(90deg,rgba(230,194,102,.65),transparent)}
.pickTitle{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;font-size:min(4vw,38px)!important;font-weight:800;color:#e8d29a!important;letter-spacing:clamp(3px,.8vw,8px)!important;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.pickSub{font-size:min(1.7vw,13px)!important;color:rgba(235,220,180,.58)!important;letter-spacing:clamp(2px,.5vw,5px)!important;margin-top:clamp(2px,.5vh,5px)}
.sideName{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;font-size:min(2.6vw,24px)!important;font-weight:800;letter-spacing:clamp(3px,.8vw,8px)!important}
.sideDesc{font-size:min(1.7vw,15px)!important;color:rgba(230,220,195,.72)!important}
.poolHeader{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;font-size:min(2.2vw,20px)!important;font-weight:800;color:#e8d29a!important;letter-spacing:clamp(2px,.6vw,6px)!important}
/* ---- 弹窗标题：统一金色细线（编辑式章节感） ---- */
#moreTitle::after,#ruleTitle::after,#labTitle::after,#battleSetTitle::after,#skinTitle::after,#charInfoTitle::after{content:"";display:block;width:56px;height:1px;margin:clamp(4px,.8vh,8px) auto 0;background:linear-gradient(90deg,transparent,rgba(230,194,102,.85),transparent)}
#moreTitle,#ruleTitle,#labTitle,#battleSetTitle,#skinTitle,#charInfoTitle{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif!important;letter-spacing:2px}
/* ---- 结算：衬线标题 + 柔和正文 ---- */
.resultTitle{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif!important;font-weight:800!important;letter-spacing:4px!important}
.resultMsg{color:rgba(235,220,180,.82)!important;letter-spacing:1px}
/* ---- 主/次按钮圆角统一（小圆角方，去胶囊廉价感） ---- */
.btnGo,.btnBack,.btn{border-radius:10px!important}
/* 08-15: 手机横屏主界面——左边内容放大占满、右边4键撑满整列(消灭大片空白) */
html[data-dev="landscape"][data-phone="1"] #titleScreen{--secW:min(32vw,270px);padding-right:calc(var(--secW) + 3vw)!important;padding-left:2vw!important;justify-content:center!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logo{font-size:clamp(26px,8vh,44px)!important;margin:.3vh 0!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logoSub{font-size:clamp(11px,3vh,16px)!important;margin:.2vh 0!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logoSmall{font-size:clamp(9px,2.5vh,13px)!important;margin:.2vh 0!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logo{font-size:clamp(32px,10vh,54px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .heroArch{width:min(54vw,400px)!important;margin:1vh auto!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .archSide i{font-size:min(13vw,58px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .archMiddle{flex-basis:clamp(52px,12vw,84px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .btnStart{font-size:clamp(18px,5vh,26px)!important;padding:12px 56px!important;margin:.6vh auto!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{width:min(30vw,250px)!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:1vh!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow .btnLab{flex:0 0 auto!important;min-height:54px!important;height:54px!important;font-size:clamp(13px,3vh,17px)!important;padding:8px 10px!important}
/* 08-15: 所有弹窗关闭键统一金色高质感(消灭白底默认样式) */
#lyricsClose,#settingsClose,#devAudioClose,#ruleTut,#itemPopClose,#waterBtn,#charInfoModal .ciClose,
#boxModal .btn[onclick*="closeBoxUI"],#tutModal .btn[onclick*="closeTutorial"],#skinModal .btn[onclick*="closeSkin"],
#moreModal .btn[onclick*="closeMore"],#labModal .btn[onclick*="closeLab"],#ruleModal #ruleTut{
  background:linear-gradient(135deg,#ffd700,#ff9d00)!important;color:#3a1a00!important;border:none!important;
  border-radius:12px!important;font-weight:900!important;padding:10px 22px!important;
  box-shadow:0 4px 16px rgba(255,170,0,.35),inset 0 1px 0 rgba(255,255,255,.5)!important;cursor:pointer!important;
  transition:transform .15s var(--ease-out),box-shadow .2s!important;letter-spacing:1px!important}
#lyricsClose:hover,#settingsClose:hover,#devAudioClose:hover,#ruleTut:hover,#itemPopClose:hover,#waterBtn:hover,#charInfoModal .ciClose:hover,
#boxModal .btn[onclick*="closeBoxUI"]:hover,#tutModal .btn[onclick*="closeTutorial"]:hover,#skinModal .btn[onclick*="closeSkin"]:hover,
#moreModal .btn[onclick*="closeMore"]:hover,#labModal .btn[onclick*="closeLab"]:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(255,170,0,.5),inset 0 1px 0 rgba(255,255,255,.5)!important}
#lyricsClose:active,#settingsClose:active,#devAudioClose:active,#ruleTut:active,#itemPopClose:active,#waterBtn:active{transform:scale(.95)!important}
#surrenderModal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,rgba(20,15,50,.82),rgba(5,4,16,.95));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#surrenderModal.hidden{display:none}
#surrenderPanel{width:min(92vw,440px);position:relative;background:linear-gradient(165deg,#1e1950,#2a1a55 55%,#33153f);border:2px solid rgba(255,215,0,.62);border-radius:22px;padding:26px 22px 22px;text-align:center;box-shadow:0 0 0 1px rgba(255,215,0,.12),0 0 46px rgba(255,170,0,.28),0 26px 70px rgba(0,0,0,.8);animation:modalIn .25s var(--ease-out)}
#surrenderPanel::before{content:'';position:absolute;top:-2px;left:10%;right:10%;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,rgba(255,225,130,.95),transparent)}
#surrenderTitle{font-size:24px;font-weight:900;letter-spacing:3px;background:linear-gradient(135deg,#ffe9a8,#ffd700 45%,#ff8c2d);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px;filter:drop-shadow(0 2px 10px rgba(255,190,0,.35))}
#surrenderMsg{font-size:14px;color:#e8e0d0;margin-bottom:12px;line-height:1.7}
#surrenderTimer{font-size:36px;font-weight:900;color:#ff6b6b;margin:10px 0;text-shadow:0 0 20px rgba(255,80,80,.55);animation:surTimerPulse 1s ease-in-out infinite}
@keyframes surTimerPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
#surrenderVotes{font-size:14px;color:#d8d0e8;margin-bottom:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,215,0,.2);border-radius:12px;padding:9px;line-height:1.6}
#surrenderPanel .b-green,#surrenderPanel .b-red{flex:1;padding:13px 10px;font-size:15px;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.4)}
#surrenderPanel .b-green{background:linear-gradient(135deg,#4cd964,#1fa84b)!important;box-shadow:0 6px 22px rgba(60,200,100,.35)!important}
#surrenderPanel .b-red{background:linear-gradient(135deg,#ff6b6b,#d93045)!important;box-shadow:0 6px 22px rgba(255,90,90,.35)!important}
.b-green{background:linear-gradient(135deg,#4cd964,#17a84b)!important;color:#fff!important;border:none!important;border-radius:12px!important;padding:10px 16px!important;font-weight:900!important;cursor:pointer!important}
.b-red{background:linear-gradient(135deg,#ff6b6b,#c0392b)!important;color:#fff!important;border:none!important;border-radius:12px!important;padding:10px 16px!important;font-weight:900!important;cursor:pointer!important}
/* ═══ v08-142 海报主界面最终覆盖（放最末尾，压过全部旧规则）═══ */
html[data-dev="landscape"][data-phone="1"] #titleScreen,
html[data-dev="portrait"][data-phone="1"] #titleScreen{justify-content:flex-start!important;padding:2vh 4vw!important;--secW:0}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logo,
html[data-dev="portrait"][data-phone="1"] #titleScreen .logo{font-size:clamp(26px,7vh,46px)!important;margin:0!important;letter-spacing:5px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logoSub,
html[data-dev="portrait"][data-phone="1"] #titleScreen .logoSub{font-size:clamp(13px,4vh,22px)!important;margin:.4vh 0 0!important;letter-spacing:6px!important;background:linear-gradient(135deg,#fff,#ffe9a8 45%,#ffd700)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;filter:drop-shadow(0 0 0 1.5px rgba(16,34,80,.9)) drop-shadow(0 2px 8px rgba(10,25,60,.8))!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .btnStart,
html[data-dev="portrait"][data-phone="1"] #titleScreen .btnStart{margin:12vh auto 2vh!important;padding:1.2vh 6vw!important;font-size:clamp(17px,4.2vh,28px)!important;border-radius:10px!important;letter-spacing:4px!important;box-shadow:0 0 0 3px rgba(120,60,0,.4),0 8px 26px rgba(0,0,0,.6),0 0 26px rgba(255,190,0,.45),inset 0 1px 0 rgba(255,255,255,.75)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .btnStart{margin:7vh auto 1.2vh!important;padding:1vh 5vw!important;font-size:clamp(16px,3.8vh,24px)!important;border-radius:10px!important;letter-spacing:3px!important;box-shadow:0 0 0 3px rgba(120,60,0,.4),0 8px 24px rgba(0,0,0,.6),0 0 24px rgba(255,190,0,.45),inset 0 1px 0 rgba(255,255,255,.75)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow,
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow{display:grid!important;grid-template-columns:repeat(2,minmax(0,190px))!important;justify-content:center!important;gap:1.6vh 1.6vw!important;width:min(94vw,460px)!important;margin:0 auto auto!important;position:static!important;transform:none!important;top:auto!important;right:auto!important;height:auto!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:center!important;gap:1.2vw!important;width:min(96vw,560px)!important;margin:0 auto auto!important;position:static!important;transform:none!important;top:auto!important;right:auto!important;height:auto!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow .btnLab,
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow .btnLab{flex:none!important;min-width:0!important;width:auto!important;padding:1.1vh 1vw!important;font-size:clamp(12px,3vh,16px)!important;margin:0!important;letter-spacing:2px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow .btnLab{flex:1!important;min-width:0!important;width:auto!important;padding:.9vh .5vw!important;font-size:clamp(11px,2.7vh,14px)!important;margin:0!important;letter-spacing:1px!important;white-space:nowrap!important}
/* v08-142: 海报提亮层压过旧遮罩(#titleScreen::before/::after 的暗色层全部关掉) */
#titleScreen::before{content:'';position:absolute;inset:0;background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat;filter:brightness(1.05) saturate(1.02);z-index:0;pointer-events:none}
#titleScreen::after{content:none!important}
#titleScreen>*{position:relative;z-index:1}
/* v08-142: 选阵营/选角色界面也换海报背景(与主界面一致) */
#pickScreen{background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat}
#pickScreen::before{content:'';position:absolute;inset:0;background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat;filter:brightness(1.05) saturate(1.02);z-index:0;pointer-events:none}
#pickScreen>*{position:relative;z-index:1}
/* ═══ v08-143 分辨率试玩适配（放最末尾，压过全部旧规则）═══
   ① 小屏竖屏(≤360px)选角色卡片放大到可点，修复卡片被压成53x71、皮肤键盖住卡片中心点不了的问题
   ② 手机端战斗卡片按钮加大：原来最小被 clamp 压到 13-17px 高/7-8px 字，触屏根本点不准 */
@media (max-width:360px) and (orientation:portrait){
  html[data-dev="portrait"][data-phone="1"] #charPick .mousePool{grid-template-columns:repeat(2,minmax(0,1fr))!important;justify-items:stretch!important;align-content:start!important}
  html[data-dev="portrait"][data-phone="1"] #charPick .pickCard{width:100%!important;min-width:0!important;min-height:clamp(130px,42vw,170px)!important;height:auto!important}
  html[data-dev="portrait"][data-phone="1"] #charPick .pickCard .skinBtn,
  html[data-dev="portrait"][data-phone="1"] #charPick .pickCard .infoBtn{bottom:auto!important;top:4px!important;width:30px!important;height:30px!important;padding:0!important}
  html[data-dev="portrait"][data-phone="1"] #charPick .pickCard .skinBtn{right:4px!important;left:auto!important}
  html[data-dev="portrait"][data-phone="1"] #charPick .pickCard .infoBtn{left:4px!important;right:auto!important}
}
html[data-dev][data-phone="1"] body .mouseCard.you.mouseCard.you .miniBtns.miniBtns .miniBtn,
html[data-dev][data-phone="1"] body .mouseCard.you.mouseCard.you .mBtn.mBtn .mSkill,
html[data-dev][data-phone="1"] body .mouseCard.you.mouseCard.you .mBtn.mBtn .miniBtn{min-height:clamp(22px,5vmin,34px)!important;font-size:clamp(11px,2.1vw,14px)!important;padding:3px 5px!important}
html[data-dev][data-phone="1"] body .mouseCard:not(.you) .miniBtns.miniBtns .miniBtn,
html[data-dev][data-phone="1"] body .mouseCard:not(.you) .mBtn.mBtn .mSkill{min-height:clamp(18px,4.4vmin,30px)!important;font-size:clamp(10px,1.9vw,13px)!important;padding:2px 4px!important}
/* v08-143修复: 海报层 #titleScreen>*{position:relative;z-index:1} 误伤主界面弹层(设置/帮助/更多功能等被压成按键下方内嵌),
   这里恢复全屏 fixed 弹层 */
#moreModal,#labModal,#ruleModal,#lyricsModal,#settingsModal,#devAudioModal,#skinModal,#charInfoModal{position:fixed!important;inset:0!important}
#moreModal{z-index:40!important}
#labModal{z-index:12!important}
#ruleModal,#lyricsModal,#settingsModal{z-index:13!important}
#devAudioModal,#skinModal{z-index:14!important}
#charInfoModal{z-index:9000!important}
/* ═══ v08-143b: 主界面标题新款(去掉猫VS鼠, 标题下移居中, 深金+描边+柔光晕, 贴合海报热血史诗气质) ═══ */
#titleScreen .vsLine{display:none!important}
html[data-dev] #titleScreen .titleHead{margin-top:clamp(5vh,12vh,13vh)!important;padding:0 3vw}
html[data-dev] #titleScreen .logo{font-family:'SmileySans','Noto Serif SC','Source Han Serif SC',sans-serif!important;font-size:clamp(36px,7.5vw,78px)!important;letter-spacing:clamp(2px,.9vw,8px)!important;font-weight:900!important;background:linear-gradient(180deg,#fff6d8 0%,#ffd75e 30%,#f0a01a 55%,#c25a12 78%,#8a2f0b 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-stroke:1px rgba(22,10,0,.9)!important;filter:drop-shadow(0 2px 2px rgba(8,4,0,.95)) drop-shadow(0 5px 14px rgba(0,0,0,.7)) drop-shadow(0 0 28px rgba(255,180,50,.35))!important}
html[data-dev] #titleScreen .logoSub{font-family:'SmileySans','Noto Serif SC','Source Han Serif SC',sans-serif!important;font-size:clamp(15px,2.7vw,30px)!important;letter-spacing:clamp(5px,1.6vw,18px)!important;margin-top:clamp(4px,1vh,10px)!important;font-weight:800!important;background:linear-gradient(180deg,#ffffff,#f3e4b0 45%,#c7a45f)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-stroke:1px rgba(25,16,5,.8)!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.9)) drop-shadow(0 0 12px rgba(255,215,120,.25))!important}
html[data-dev] #titleScreen .titleHead::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:150%;height:190%;background:radial-gradient(ellipse at center,rgba(10,7,22,.62),rgba(10,7,22,.26) 55%,transparent 78%);border-radius:50%;z-index:-1;pointer-events:none}
/* 手机横屏/竖屏尺寸微调(保可读、不顶边、不挤按钮) */
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(2px,3.4vh,16px)!important;padding:0 1vw}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logo{font-size:clamp(26px,6.2vh,46px)!important;letter-spacing:clamp(3px,1vw,10px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .logoSub{font-size:clamp(12px,2.8vh,20px)!important;letter-spacing:clamp(4px,1vw,10px)!important;margin-top:clamp(2px,.6vh,6px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(10px,11vh,64px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .logo{font-size:clamp(40px,13.5vw,78px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .logoSub{font-size:clamp(15px,4.8vw,28px)!important}
/* ═══ v08-144: 「开始战斗」主按钮 = 5-B 亮金微光（老公 8/17 选定），四小按钮不动 ═══ */
html[data-dev] #titleScreen .btnStart{
  font-family:'SmileySans',"PingFang SC","Microsoft YaHei",sans-serif!important;
  background:linear-gradient(180deg,#ffd75e 0%,#f0b022 42%,#c07a10 100%)!important;
  border:1px solid #ffe6a0!important;
  color:#fff!important;
  font-weight:900!important;
  letter-spacing:clamp(3px,1vw,8px)!important;
  text-shadow:0 0 8px rgba(255,220,130,.45),0 1px 2px rgba(70,25,0,.6),0 2px 4px rgba(35,10,0,.5)!important;
  box-shadow:inset 0 0 0 1px rgba(255,236,170,.3),inset 0 1px 0 rgba(255,255,255,.35),0 8px 20px rgba(0,0,0,.5),0 0 0 1px rgba(120,60,0,.5),0 0 24px rgba(255,170,30,.2)!important;
  animation:none!important;
}
/* ═══ v08-146: 主标题 = 手绘logo图(第一版 A金墨书法，透明底无黑框)，位置可自由拖动/微调(TEMP面板) ═══ */
html[data-dev] #titleScreen .titleHead{margin-top:clamp(4vh,9vh,11vh)!important;padding:0 3vw}
html[data-dev] #titleScreen .titleLogoWrap{position:relative;display:block;width:calc(clamp(300px,44vw,600px) * var(--ts,1))!important;transform:translate(var(--tlx,0px),var(--tly,0px));cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
html[data-dev] #titleScreen .titleLogoWrap::before{content:none!important}
html[data-dev] #titleScreen .titleLogo{position:relative;z-index:1;width:100%;display:block;mix-blend-mode:normal;filter:contrast(1.1) brightness(1.06) saturate(1.1) drop-shadow(0 2px 4px rgba(0,0,0,.5)) drop-shadow(0 5px 14px rgba(0,0,0,.35));pointer-events:none;user-select:none;-webkit-user-drag:none}
html[data-dev] #titleScreen .titleHead::before{content:none!important}
/* 手机横屏/竖屏尺寸微调(保可读、不顶边、不挤按钮) */
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(2px,3vh,14px)!important;padding:0 1vw}
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleLogoWrap{width:calc(clamp(230px,42vh,320px) * var(--ts,1))!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(8px,9vh,56px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .titleLogoWrap{width:calc(clamp(250px,76vw,430px) * var(--ts,1))!important}
/* v08-148: 背景水平位置可调（本体层+提亮层一起跟随 CSS 变量，TEMP 面板控制；两层不同步会导致看起来没反应） */
html[data-dev] #titleScreen,html[data-dev] #pickScreen,html[data-dev] #titleScreen::before,html[data-dev] #pickScreen::before{background-position:var(--bgx,50%) 50%!important}
/* v08-154: 「开始战斗」按钮全分辨率水平居中保险（只锁水平，垂直距离不动） */
html[data-dev] #titleScreen .btnStart{display:block!important;margin-left:auto!important;margin-right:auto!important}
/* ═══ v08-150: 大桌面启动屏（只有手绘标题 + 开始游戏，点进去才进主界面） ═══ */
#launchScreen{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat;transition:opacity .25s var(--ease-out)}
#launchScreen::before{content:'';position:absolute;inset:0;background:url('猫鼠卡牌素材/海报/主界面海报.png?v=20260819') center/cover no-repeat;filter:brightness(1.05) saturate(1.02);z-index:0;pointer-events:none}
html[data-dev] #launchScreen,html[data-dev] #launchScreen::before{background-position:var(--bgx,50%) 50%!important}
#launchScreen>*{position:relative;z-index:1}
#launchScreen.launchOut{opacity:0;pointer-events:none}
.launchLogoWrap{width:clamp(300px,44vw,720px);max-width:88vw;transform:translate(var(--ltx,0px),var(--lty,0px)) scale(var(--lts,1));transition:transform .25s var(--ease-out)}
.launchLogo{width:100%;display:block;filter:contrast(1.1) brightness(1.06) saturate(1.1) drop-shadow(0 2px 4px rgba(0,0,0,.5)) drop-shadow(0 5px 14px rgba(0,0,0,.35));user-select:none;-webkit-user-drag:none;pointer-events:none}
#launchScreen.launchOut .launchLogoWrap{transform:translate(var(--ltx,0px),var(--lty,0px)) scale(calc(var(--lts,1) * 1.04))}
.launchBtnWrap{transform:translate(0,var(--lby,0px)) scale(var(--lbs,1));transition:transform .25s var(--ease-out)}
.launchBtn{margin-top:4vh;padding:clamp(12px,1.8vh,18px) clamp(52px,8vw,110px);font-family:'SmileySans',"PingFang SC","Microsoft YaHei",sans-serif;font-size:clamp(18px,3vw,34px);font-weight:900;letter-spacing:.18em;text-indent:.18em;color:#fff;border:none;border-radius:99px;cursor:pointer;background:linear-gradient(180deg,#ffd75e 0%,#f0b022 42%,#c07a10 100%);border:1px solid #ffe6a0;text-shadow:0 0 8px rgba(255,220,130,.45),0 1px 2px rgba(70,25,0,.6);box-shadow:inset 0 0 0 1px rgba(255,236,170,.3),inset 0 1px 0 rgba(255,255,255,.35),0 8px 20px rgba(0,0,0,.5),0 0 0 1px rgba(120,60,0,.5),0 0 24px rgba(255,170,30,.2);transition:transform .15s var(--ease-out),box-shadow .2s}
.launchBtn:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(255,236,170,.3),inset 0 1px 0 rgba(255,255,255,.35),0 10px 26px rgba(0,0,0,.55),0 0 0 1px rgba(120,60,0,.5),0 0 30px rgba(255,180,40,.35)}
.launchBtn:active{transform:scale(.95)}
html[data-dev="landscape"][data-phone="1"] .launchLogoWrap{width:clamp(220px,40vh,340px)}
html[data-dev="landscape"][data-phone="1"] .launchBtn{margin-top:2.5vh;padding:9px 38px;font-size:clamp(15px,4.5vh,24px)}
html[data-dev="portrait"][data-phone="1"] .launchLogoWrap{width:clamp(250px,76vw,440px)}
html[data-dev="portrait"][data-phone="1"] .launchBtn{margin-top:5vh;padding:13px 44px;font-size:clamp(17px,5.2vw,26px)}
/* ═══ TEMP v08-151: 启动屏编辑面板（标题+开始按钮位置/大小，按分辨率存档，公网上传前删除） ═══ */
.launchEditBtn{position:absolute;right:10px;bottom:10px;z-index:5;padding:6px 14px;font-size:clamp(11px,2.6vh,14px);font-weight:800;color:#9be8ff;background:rgba(20,60,110,.55);border:1px solid rgba(120,200,255,.45);border-radius:99px;cursor:pointer;letter-spacing:1px}
.launchEditBtn:active{transform:scale(.93)}
#launchPosPanel{position:absolute;right:10px;bottom:48px;z-index:6;width:min(78vw,300px);background:rgba(10,8,26,.95);border:1px solid rgba(255,215,100,.45);border-radius:14px;padding:8px 12px 10px;box-shadow:0 12px 34px rgba(0,0,0,.6);color:#fff}
#launchPosPanel .lpHead{display:flex;align-items:center;justify-content:space-between;cursor:move;user-select:none;touch-action:none;margin-bottom:6px}
#launchPosPanel .lpTitle{font-size:12px;font-weight:800;color:#ffd75e;letter-spacing:1px}
#launchPosPanel .lpTitle span{color:#9aa0b8;font-weight:500;margin-left:4px}
#launchPosPanel .lpFold{flex:none;padding:3px 10px;font-size:11px;font-weight:800;color:#9be8ff;background:rgba(60,130,190,.35);border:1px solid rgba(120,200,255,.5);border-radius:99px;cursor:pointer}
#launchPosPanel .lpFold:active{transform:scale(.93)}
#launchPosPanel.folded .lpBody{display:none}
#launchPosPanel .lpSec{font-size:11px;color:#9be8ff;font-weight:700;margin:8px 0 4px}
#launchPosPanel .lpBtns{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
#launchPosPanel .lpBtn{height:28px;border-radius:7px;border:1px solid rgba(255,215,100,.4);background:rgba(255,215,100,.1);color:#ffd75e;font-size:13px;font-weight:800;cursor:pointer}
#launchPosPanel .lpBtn:active{transform:scale(.92)}
#launchPosPanel .lpRow{display:flex;align-items:center;gap:6px;font-size:11px;color:#cfd3ee;margin:6px 0}
#launchPosPanel .lpBtns.lp3{grid-template-columns:repeat(3,1fr)}
#launchPosPanel input[type=range]{flex:1;accent-color:#ffd75e}
#launchPosPanel .lpSave{width:100%;height:32px;border-radius:8px;border:1px solid #7dff9a;background:rgba(76,217,100,.14);color:#7dff9a;font-size:12px;font-weight:800;cursor:pointer;margin-top:8px}
#launchPosPanel .lpSave:active{transform:scale(.95)}
#launchPosPanel .lpSave.saved{background:rgba(76,217,100,.35);color:#04170a}
#launchPosPanel .lpTip{color:#8b8fb0;font-size:10px;margin-top:4px}
/* ═══ TEMP v08-146: 标题位置微调面板（公网上传前删除） ═══ */
#titlePosPanel{position:fixed;left:12px;bottom:12px;z-index:9999;background:rgba(10,8,26,.94);border:1px solid rgba(255,215,100,.45);border-radius:14px;padding:10px 14px;box-shadow:0 12px 34px rgba(0,0,0,.6);color:#fff}
#titlePosPanel .tpTitle{font-size:13px;font-weight:800;color:#ffd75e;margin-bottom:8px;letter-spacing:1px}
#titlePosPanel .tpTitle span{color:#9aa0b8;font-weight:500;margin-left:6px}
#titlePosPanel .tpBtns{display:grid;grid-template-columns:repeat(5,44px);gap:6px;margin-bottom:8px}
#titlePosPanel .tpBtn{height:36px;border-radius:9px;border:1px solid rgba(255,215,100,.4);background:rgba(255,215,100,.1);color:#ffd75e;font-size:15px;font-weight:800;cursor:pointer}
#titlePosPanel .tpBtn:active{transform:scale(.92)}
#titlePosPanel .tpRow{display:flex;align-items:center;gap:8px;font-size:12px;color:#cfd3ee;margin-bottom:6px}
#titlePosPanel input[type=range]{flex:1;accent-color:#ffd75e}
#titlePosPanel .tpTip{color:#8b8fb0;font-size:11px;margin-bottom:0}
#titlePosPanel .tpSave{grid-column:span 5;height:38px;border-radius:9px;border:1px solid #7dff9a;background:rgba(76,217,100,.14);color:#7dff9a;font-size:13px;font-weight:800;cursor:pointer}
#titlePosPanel .tpSave:active{transform:scale(.94)}
#titlePosPanel .tpSave.saved{background:rgba(76,217,100,.35);color:#04170a}
#titlePosPanel .tpRow .bgBtn{width:34px;height:30px;padding:0;font-size:14px;flex:none}
#titlePosPanel .tpRow input[type=range]{flex:1}
/* v08-157: 选阵营卡片文字可读性——压暗卡底 + 文字提亮加投影，海报透过来也不糊 */
#sidePick .sideBtn{background:linear-gradient(180deg,rgba(12,9,28,.62),rgba(12,9,28,.42))!important;-webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important}
#sidePick .sideName{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 14px rgba(0,0,0,.55)!important}
#sidePick .sideDesc{color:rgba(255,244,214,.94)!important;text-shadow:0 1px 3px rgba(0,0,0,.95)!important}
/* ═══ v08-161: 主界面按钮排版优化（开始战斗 + 四小键，统一玻璃质感，桌面一行/竖屏2×2/横屏一行） ═══ */
html[data-dev] #titleScreen .secRow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:stretch!important;gap:clamp(8px,1.2vw,18px)!important;width:auto!important;margin:2.5vh auto 0!important;padding:0!important}
html[data-dev] #titleScreen .secRow .btnLab{flex:0 1 auto!important;min-width:clamp(120px,11vw,172px)!important;min-height:clamp(46px,6vh,56px)!important;padding:12px 18px!important;font-size:clamp(13px,1.2vw,16px)!important;letter-spacing:2px!important;white-space:nowrap!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:min(92vw,460px)!important;margin:1.8vh auto auto!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow .btnLab{min-height:46px!important;padding:11px 10px!important;font-size:clamp(12px,3.2vw,15px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px!important;width:min(94vw,520px)!important;margin:1.4vh auto auto!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow .btnLab{flex:1 1 0!important;min-width:0!important;min-height:38px!important;padding:8px 4px!important;font-size:clamp(11px,2.7vh,13px)!important;letter-spacing:1px!important;white-space:nowrap!important}
html[data-dev] #titleScreen .secRow .btnLab{background:linear-gradient(135deg,rgba(24,40,78,.80),rgba(13,22,52,.74))!important;border:1px solid rgba(255,215,0,.42)!important;border-radius:14px!important;color:#f2f6ff!important;text-shadow:0 1px 3px rgba(0,0,0,.9)!important;box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12)!important}
/* ═══ v08-162: 主界面整组上移——开始战斗对齐启动屏位置，四小键上提，不压下方国王立绘 ═══ */
html[data-dev] #titleScreen .titleHead{margin-top:clamp(2vh,4vh,5vh)!important}
html[data-dev] #titleScreen .btnStart{margin-top:clamp(3.5vh,6vh,7vh)!important}
html[data-dev] #titleScreen .secRow{margin-top:1vh!important}
html[data-dev] #titleScreen .secRow .btnLab{min-height:50px!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(6px,4vh,32px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .btnStart{margin-top:clamp(18px,5vh,40px)!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow{margin-top:1.2vh!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow .btnLab{min-height:42px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleHead{margin-top:clamp(2px,2vh,10px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleHead{margin-top:6px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .btnStart{margin-top:6px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{margin-top:4px!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow .btnLab{min-height:28px!important;height:auto!important;padding:5px 3px!important;font-size:clamp(10px,2.4vh,12px)!important}
/* ═══ v08-163: 横屏再上移避亮光 + 主界面标题区暗色光晕板压住背后漏光 ═══ */
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleHead{margin-top:0!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .titleLogoWrap{width:calc(clamp(200px,36vh,280px) * var(--ts,1))!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .btnStart{margin-top:3px!important;padding:8px 38px!important;font-size:clamp(14px,3.2vh,20px)!important}
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{margin-top:3px!important}
html[data-dev] #titleScreen .titleHead::before{content:''!important;position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:150%;height:260%;background:radial-gradient(ellipse at center,rgba(6,5,16,.70),rgba(6,5,16,.32) 52%,transparent 78%);border-radius:50%;z-index:-1;pointer-events:none}
/* ═══ v08-164: 平板横屏/桌面再上移一个按钮高度，四小键不压国王立绘 ═══ */
html[data-dev="landscape"][data-phone="0"] #titleScreen .titleHead{margin-top:clamp(2vh,3vh,4vh)!important}
html[data-dev="landscape"][data-phone="0"] #titleScreen .btnStart{margin-top:clamp(2.5vh,3.5vh,4.5vh)!important}
html[data-dev="landscape"][data-phone="0"] #titleScreen .secRow{margin-top:0.4vh!important}
html[data-dev="landscape"][data-phone="0"] #titleScreen .secRow .btnLab{min-height:44px!important}
/* v08-177: 桌面主菜单——四小键统一玻璃容器，背景角色不再干扰按钮识别 */
html[data-dev="landscape"][data-phone="0"] #titleScreen .secRow{background:linear-gradient(135deg,rgba(12,18,42,.58),rgba(8,12,32,.48))!important;border:1px solid rgba(255,215,0,.20)!important;border-radius:18px!important;padding:10px 14px!important;box-shadow:0 10px 30px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06)!important}
html[data-dev="landscape"][data-phone="0"] #titleScreen .secRow .btnLab{min-height:48px!important;padding:10px 16px!important}
/* ═══ v08-165 TEMP: 主界面编辑器（标题/开始战斗/四小键/背景 按分辨率微调，公网上传前删除） ═══ */
html[data-dev] #titleScreen .btnStart{transform:translate(var(--msx,0px),var(--msy,0px)) scale(var(--mss,1))!important}
html[data-dev] #titleScreen .btnStart:hover{transform:translate(var(--msx,0px),calc(var(--msy,0px) - 2px)) scale(var(--mss,1))!important}
html[data-dev] #titleScreen .btnStart:active{transform:translate(var(--msx,0px),var(--msy,0px)) scale(calc(var(--mss,1)*.94))!important}
html[data-dev] #titleScreen .secRow{transform:translate(var(--mrx,0px),var(--mry,0px)) scale(var(--mrs,1))!important}
html[data-dev="portrait"][data-phone="1"] #titleScreen .secRow,
html[data-dev="landscape"][data-phone="1"] #titleScreen .secRow{transform:translate(var(--mrx,0px),var(--mry,0px)) scale(var(--mrs,1))!important}
.mainEditBtn{position:fixed;right:10px;bottom:10px;z-index:70;padding:6px 14px;font-size:clamp(11px,2.6vh,14px);font-weight:800;color:#9be8ff;background:rgba(20,60,110,.65);border:1px solid rgba(120,200,255,.5);border-radius:99px;cursor:pointer;letter-spacing:1px}
.mainEditBtn:active{transform:scale(.93)}
/* v08-245: 主界面布局编辑面板(标题logo/主菜单/启动屏)——重构时面板HTML丢失导致用户布局存档无法查看调整;
   补回面板并解锁显示, 用户可从"更多功能→主界面布局"打开; 开发按钮/devBtn仍隐藏 */
#mainPosPanel,#launchPosPanel,#titlePosPanel{position:fixed;right:10px;bottom:48px;z-index:71;width:min(82vw,320px);background:rgba(10,8,26,.97);border:1px solid rgba(255,215,100,.5);border-radius:14px;padding:8px 12px 10px;box-shadow:0 12px 34px rgba(0,0,0,.65);color:#fff;font-size:13px;line-height:1.5}
#mainPosPanel.hidden,#launchPosPanel.hidden,#titlePosPanel.hidden{display:none}
#mainPosPanel .lpHead,#launchPosPanel .lpHead,#titlePosPanel .lpHead{cursor:move;user-select:none;touch-action:none;display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-weight:900;color:#ffd700;letter-spacing:1px}
#mainPosPanel .lpFold,#launchPosPanel .lpFold,#titlePosPanel .lpFold{cursor:pointer;font-size:11px;color:#9aa0b8;font-weight:400;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:1px 6px}
#mainPosPanel.folded .lpBody,#launchPosPanel.folded .lpBody,#titlePosPanel.folded .lpBody{display:none}
#mainPosPanel .lpBody,#launchPosPanel .lpBody,#titlePosPanel .lpBody{max-height:70vh;overflow-y:auto}
#mainPosPanel .lpKeyRow,#launchPosPanel .lpKeyRow{font-size:12px;color:#9aa0b8;margin-bottom:4px}
#mainPosPanel .lpVal,#launchPosPanel .lpVal,#titlePosPanel .lpVal{font-family:monospace;font-size:11px;color:#7dff9a;background:rgba(0,0,0,.35);border-radius:6px;padding:3px 6px;margin:4px 0}
#mainPosPanel .lpGroup,#launchPosPanel .lpGroup{border-top:1px solid rgba(255,255,255,.12);margin-top:6px;padding-top:6px}
#mainPosPanel .lpMini,#launchPosPanel .lpMini{font-size:10px;color:#9aa0b8;display:block}
#mainPosPanel .lpCtrlRow,#launchPosPanel .lpCtrlRow{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0}
#mainPosPanel .lpCtrlRow button,#launchPosPanel .lpCtrlRow button,#titlePosPanel .lpCtrlRow button{flex:0 0 auto;min-width:30px;padding:3px 8px;font-size:12px;background:rgba(30,50,110,.6);border:1px solid rgba(255,215,0,.4);border-radius:6px;color:#ffd700;cursor:pointer}
#mainPosPanel .lpScaleRow,#launchPosPanel .lpScaleRow,#titlePosPanel .lpScaleRow{display:flex;align-items:center;gap:6px;font-size:12px;margin:3px 0}
#mainPosPanel .lpScaleRow input[type=range],#launchPosPanel .lpScaleRow input[type=range],#titlePosPanel .lpScaleRow input[type=range]{flex:1;min-width:0}
#mainPosPanel .lpPct,#launchPosPanel .lpPct,#titlePosPanel .lpPct{flex:none;width:44px;text-align:right;color:#7dff9a}
#mainPosPanel .lpTip,#launchPosPanel .lpTip,#titlePosPanel .lpTip{font-size:11px;color:#9aa0b8;margin-top:6px;border-top:1px dashed rgba(255,255,255,.15);padding-top:4px}
/* v08-177 发布版: 开发按钮/微调浮动按钮隐藏 */
.mainEditBtn,.launchEditBtn,.devBtn{display:none!important}
/* v08-167: 去掉主界面标题后的黑遮罩（老公用开始游戏挡亮光，不用遮罩了） */
html[data-dev] #titleScreen .titleHead::before{content:none!important}
/* v08-176: 启动屏动态壁纸——画布渲染（视频源隐藏不可点，浏览器不会弹播放器） */
#launchScreen>.wpCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0!important;pointer-events:none;background:#000}
#launchScreen>.wpVideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;z-index:-1!important}
/* v08-177: 夸克/荣耀——视频留在 DOM 但 display:none：仍可解码供画布取帧，又不显示大视频，尽量不触发悬浮播放器 */
html[data-risky="1"] #launchScreen>.wpVideo{display:none!important}
/* v08-177: 保留海报 CSS 背景作为兜底——画布正常时盖住它，画布异常时也不会黑屏 */
html[data-dev] #launchScreen::before{content:none!important}
/* v08-177: 荣耀/夸克等浏览器：海报大图缓慢缩放动效（不弹播放器、不黑屏、保持清晰） */
/* transform 缩放：保持 cover 不变形（修 background-size 拉伸），兼容性更好 */
/* v08-177: 横屏矮屏四键一排（放最末尾覆盖 v08-161~164，防底部被切） */
@media (orientation:landscape) and (max-height:450px){
  :root[data-dev][data-phone="1"] #titleScreen .titleHead{margin-top:0!important}
  :root[data-dev][data-phone="1"] #titleScreen .btnStart{margin-top:0!important;padding:5px 20px!important}
  :root[data-dev][data-phone="1"] #titleScreen .secRow{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:min(96vw,640px)!important;gap:6px!important;margin-top:2px!important}
  :root[data-dev][data-phone="1"] #titleScreen .secRow .btnLab{min-height:30px!important;padding:4px 6px!important;font-size:clamp(10px,2.4vh,13px)!important;letter-spacing:1px!important}
}
/* ═══════ v08-245: 全局视觉打磨（渐进增强，不破坏任何布局/机制） ═══════ */
/* 战斗大键：点击波纹反馈 */
#opsLayer .opsBtn{position:relative;overflow:hidden}
#opsLayer .opsBtn::after{content:'';position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.45);transform:translate(-50%,-50%);opacity:0;pointer-events:none}
#opsLayer .opsBtn:active::after{animation:opsRipple .45s var(--ease-out)}
@keyframes opsRipple{0%{width:0;height:0;opacity:.6}100%{width:180%;height:180%;opacity:0}}
/* 禁用大键：凹陷质感（替代纯灰） */
#opsLayer .opsBtn:disabled,#opsLayer .opsBtn.used{filter:grayscale(.9) brightness(.85)!important;box-shadow:inset 0 2px 6px rgba(0,0,0,.5)!important;opacity:.55!important}
/* 卡片：轮到/选中状态发光描边（渐进增强） */
/* v08-252: 移除 cardGlow 呼吸动画——每次操作renderMice重建"你"卡时动画重启→box-shadow跳变→屏幕闪烁;
   静态高亮(line 2197 box-shadow绿框+光晕)已足够醒目, 呼吸动画收益低且代价高 */
/* .mouseCard.you,.mouseCard.targetable,.catCard.targetable,.healTarget{animation:cardGlow 1.8s ease-in-out infinite} */
/* 播报面板：v08-252 改回不透明背景——磨砂(blur+半透明)每次操作__renderLog重写内容时backdrop重算→屏幕闪烁;
   保持原有深色实底(line 1291 rgba(8,6,18,.96)), 不透明最稳 */
/* .logPanel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(10,8,22,.72)!important} */
/* 主界面次按钮：hover 微光统一（不覆盖用户布局的位移/缩放） */
#titleScreen .secRow .btnLab:hover{filter:brightness(1.12);text-shadow:0 0 8px rgba(255,215,0,.4)}
/* v08-257: 图片加载失败占位——不白屏/不裂图 */
.imgFail{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(24px,8vw,56px);background:linear-gradient(180deg,#23234a,#1a1a3a);color:#ffd700;text-shadow:0 2px 8px rgba(0,0,0,.6);border-radius:inherit}
.pickCard .imgFail,.mouseCard .imgFail,.catCard .imgFail{font-size:clamp(28px,9vw,60px)}

/* ═══════════ v08-279: iOS Safari 专属适配 ═══════════
   所有规则都带 html[data-ios="1"] 前缀 → 只有 iPhone/iPad 生效, 安卓/桌面零变化。
   只动「弹窗面板」高度/安全区/毛玻璃/渐变文字, 绝不碰战斗卡片(.mouseCard/.catCard)的
   高度与定位——上次 dvh 全局双写把战斗卡片高度改小导致选中敌方错位, 这次全部避免。
   原理: iOS 的 100vh 含地址栏 → 面板底部被截断/按钮点不到; svh=地址栏收起时的视口高,
   iOS 15.4+ 支持, 老 iOS 自动忽略回落 vh(不会更糟)。 */
/* ① 弹窗面板: iOS 上改用 svh 真视口高(仅这些面板, 战斗不动) */
html[data-ios="1"] #labPanel{max-height:88svh}
html[data-ios="1"] #morePanel{max-height:86svh}
html[data-ios="1"] #tutPanel{max-height:86svh}
html[data-ios="1"] #rulePanel{max-height:84svh}
html[data-ios="1"] #lyricsPanel{max-height:84svh}
html[data-ios="1"] #settingsPanel{max-height:88svh}
html[data-ios="1"] #devAudioPanel{max-height:86svh}
html[data-ios="1"] #skinPanel{max-height:88svh}
html[data-ios="1"] #customBox{max-height:88svh}
html[data-ios="1"] #miniGameBox{max-height:94svh}
html[data-ios="1"] #battleSetPanel{max-height:88svh!important}
html[data-ios="1"] #charInfoModal .ciPanel{max-height:88svh}
/* ② 弹窗面板底部安全区: 防 home 横条挡按钮 (env() 不支持的老iOS自动忽略) */
html[data-ios="1"] #labPanel{padding-bottom:calc(3vh + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #morePanel{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #tutPanel{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #rulePanel{padding-bottom:calc(2.5vh + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #lyricsPanel{padding-bottom:calc(2.5vh + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #settingsPanel{padding-bottom:calc(2.5vh + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #devAudioPanel{padding-bottom:calc(2.5vh + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #skinPanel{padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #customBox{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #miniGameBox{padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #battleSetPanel{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #charInfoModal .ciPanel{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
html[data-ios="1"] #itemPopPanel,html[data-ios="1"] #skillPopPanel{padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
/* ③ 渐变文字: iOS 上 background-clip:text 需 -webkit-text-fill-color 否则文字不显示 */
html[data-ios="1"] .logo,html[data-ios="1"] .logoSub,html[data-ios="1"] .bootLogo,
html[data-ios="1"] #titleScreen .logo,html[data-ios="1"] #surrenderTitle,
html[data-ios="1"] #titleScreen .logoSub{-webkit-text-fill-color:transparent}
/* ④ iOS 性能: 只苹果关毛玻璃防卡顿(半透明底色保留, 视觉几乎无差) */
html[data-ios="1"] .logPanel,html[data-ios="1"] #moreModal,html[data-ios="1"] #labModal,
html[data-ios="1"] #ruleModal,html[data-ios="1"] #lyricsModal,html[data-ios="1"] #settingsModal,
html[data-ios="1"] #battleSetModal,html[data-ios="1"] #devAudioModal,html[data-ios="1"] #skinModal,
html[data-ios="1"] #charInfoModal,html[data-ios="1"] .mBtn,html[data-ios="1"] .miniBtns,
html[data-ios="1"] .topBar,html[data-ios="1"] #itemPopPanel,html[data-ios="1"] #skillPopPanel,
html[data-ios="1"] #boxModal{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* ═══════════ v08-280: iOS Safari 第二批专属适配 ═══════════
   全部带 html[data-ios="1"] 前缀, 安卓/桌面零变化。 */
/* ⑤ iOS 横屏/聚焦时字体自动放大 → 布局错位; 禁用之 */
html[data-ios="1"]{-webkit-text-size-adjust:100%}
/* ⑥ 输入框聚焦 iOS 自动放大+跳动: 给输入控件定字号(≥16px 才不触发缩放) */
html[data-ios="1"] input,html[data-ios="1"] select,html[data-ios="1"] textarea{font-size:16px}
/* ⑦ iOS hover 粘滞: 第一次点击触发:hover 不触发 click, 要点两次。只去掉位移/发光, 保留背景不变样 */
html[data-ios="1"] button:hover,html[data-ios="1"] .btn:hover,html[data-ios="1"] .miniBtn:hover,
html[data-ios="1"] .mSkill:hover,html[data-ios="1"] .cSkill:hover,html[data-ios="1"] .peekBtn:hover,
html[data-ios="1"] .peekGo:hover,html[data-ios="1"] .boxCard:hover,html[data-ios="1"] .skinCard:hover,
html[data-ios="1"] .pickCard:hover,html[data-ios="1"] #titleScreen .secRow .btnLab:hover,
html[data-ios="1"] .headerBtn:hover,html[data-ios="1"] .lobbyBtn:hover,html[data-ios="1"] .b-gray:hover,
html[data-ios="1"] .devBtn:hover{transform:none!important;filter:none!important}
/* ⑧ body 高度: iOS 上 100vh 含地址栏 → body 比屏幕高, 底部内容被地址栏盖; 用 svh 收紧 */
html[data-ios="1"],html[data-ios="1"] body{min-height:100svh}
/* ⑨ 刘海屏顶部安全区: 主界面顶部标题/返回按钮不被状态栏遮挡 */
html[data-ios="1"][data-dev="portrait"] #titleScreen .titleHead{padding-top:max(8px,env(safe-area-inset-top))}
html[data-ios="1"] .topBar{padding-top:max(8px,env(safe-area-inset-top))}

/* ═══════════ v08-281: iOS Safari 第三批专属适配 ═══════════
   全部带 html[data-ios="1"] 前缀, 安卓/桌面零变化。
   研究结论(WebKit bug 143305/312149 + 社区实践): 
   - background-attachment:fixed 在 iOS 上会被当 scroll 处理 → 与 fixed 弹窗/滚动叠加时
     渲染错乱+卡顿+闪烁; iOS 不支持 fixed 背景的滚动同步。改 scroll(默认)最稳。
   - 双击缩放: iOS 即使 viewport user-scalable=no, 快速双击仍可能触发缩放 → touch-action 已
     manipulation; 额外在 iOS 上禁用双击选择/长按菜单, 防止误触。
   - 系统手势: 右滑返回/下拉刷新会打断操作 → overscroll-behavior 已 none; 补充 iOS 专属。 */
/* ⑩ background-attachment:fixed → iOS 渲染 bug 源, 改默认 scroll */
html[data-ios="1"] body{background-attachment:scroll!important}
/* ⑪ 防长按选中/系统菜单打断 (按钮/卡片/操作区) */
html[data-ios="1"] button,html[data-ios="1"] .btn,html[data-ios="1"] .miniBtn,
html[data-ios="1"] .mSkill,html[data-ios="1"] .cSkill,html[data-ios="1"] .boxCard,
html[data-ios="1"] .skinCard,html[data-ios="1"] .pickCard,html[data-ios="1"] .opsBtn,
html[data-ios="1"] .mouseCard,html[data-ios="1"] .catCard{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* 注: iOS 26 fixed 错位 bug(webkit 312149)研究结论——本游戏 html/body 已是
   overflow:hidden+全屏 app-shell 模式, 从根上避开; 且 iOS 26.1 已官方修复,
   iPhone 17 代才受影响, iPhone14 不涉及。translateZ/will-change 均无效, 已不采用 */

/* ═══════════ v08-283: iOS PWA(添加到主屏幕)专属适配 ═══════════
   standalone 模式无浏览器地址栏, 状态栏透明(black-translucent)时内容延伸到状态栏下,
   顶部需额外留白。仅 iOS+standalone 生效, 普通标签页/安卓零变化。 */
html[data-ios="1"][data-pwa="1"] #titleScreen .titleHead{padding-top:max(12px,env(safe-area-inset-top))}
html[data-ios="1"][data-pwa="1"] .topBar{padding-top:max(12px,env(safe-area-inset-top))}
html[data-ios="1"][data-pwa="1"] #launchScreen .launchHead{padding-top:max(12px,env(safe-area-inset-top))}

/* ═══════════ v08-282: iOS Safari 第四批专属适配 ═══════════
   研究清单第5条: 横屏时刘海在左右两侧, safe-area-inset-left/right 变大(约44px),
   战斗左侧卡牌/按钮会被刘海挡, 右侧按钮贴边。iOS 专属左右留白, 安卓零变化。
   ⚠️ 只给 #battleScreen/#titleScreen 加 padding(缩内容区保护全部元素);
   不碰 #opsLayer 的 left/right(用户可调布局, 覆盖会破坏自定义) */
html[data-ios="1"][data-dev="landscape"] #battleScreen{padding-left:calc(env(safe-area-inset-left,0px));padding-right:calc(env(safe-area-inset-right,0px))}
html[data-ios="1"][data-dev="landscape"] #titleScreen{padding-left:calc(env(safe-area-inset-left,0px));padding-right:calc(env(safe-area-inset-right,0px))}
html[data-ios="1"][data-dev="landscape"] #labPanel,html[data-ios="1"][data-dev="landscape"] #morePanel,
html[data-ios="1"][data-dev="landscape"] #settingsPanel,html[data-ios="1"][data-dev="landscape"] #rulePanel,
html[data-ios="1"][data-dev="landscape"] #skinPanel,html[data-ios="1"][data-dev="landscape"] #charInfoModal .ciPanel{margin-left:max(0px,env(safe-area-inset-left,0px));margin-right:max(0px,env(safe-area-inset-right,0px))}

/* ═══════════ v08-287: iOS 选角界面 + 顶部栏专属适配 ═══════════
   - 选角: 用户要求 iPhone 竖屏 3 列(2列太大4列太小), 卡片立绘适中可点
   - 顶部栏: turnBadge/comboBadge/roundBadge 窄屏 space-between 互相挤压重叠,
     改为 turnBadge 靠左、roundBadge 靠右、comboBadge 绝对居中, 互不重叠
   仅 iOS+手机竖屏生效, 安卓/桌面零变化。 */
@media (max-width:430px) and (orientation:portrait){
  html[data-ios="1"][data-phone="1"] #charPick .mousePool{grid-template-columns:repeat(3,minmax(0,1fr))!important;justify-items:stretch!important;align-content:start!important}
  html[data-ios="1"][data-phone="1"] #charPick .pickCard{width:100%!important;min-width:0!important;min-height:clamp(120px,36vw,170px)!important;height:auto!important;aspect-ratio:auto!important}
  html[data-ios="1"][data-phone="1"] #charPick .pickCard .skinBtn,
  html[data-ios="1"][data-phone="1"] #charPick .pickCard .infoBtn{bottom:auto!important;top:4px!important;width:28px!important;height:28px!important;padding:0!important}
  html[data-ios="1"][data-phone="1"] #charPick .pickCard .skinBtn{right:4px!important;left:auto!important}
  html[data-ios="1"][data-phone="1"] #charPick .pickCard .infoBtn{left:4px!important;right:auto!important}
}
/* 顶部栏防重叠: iOS 窄屏 turnBadge 左/roundBadge 右/comboBadge 居中 */
@media (max-width:430px){
  html[data-ios="1"][data-phone="1"] .topBar{display:flex!important;justify-content:space-between!important;align-items:center!important;position:relative!important;gap:4px}
  html[data-ios="1"][data-phone="1"] .turnBadge{max-width:52vw!important;font-size:clamp(12px,3.4vw,17px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex-shrink:1!important}
  html[data-ios="1"][data-phone="1"] .roundBadge{font-size:clamp(10px,2.8vw,14px)!important;white-space:nowrap!important;flex-shrink:0!important}
  html[data-ios="1"][data-phone="1"] #comboBadge{position:absolute!important;left:auto!important;right:52px!important;top:100%!important;transform:none!important;z-index:5!important;margin:0!important;pointer-events:none!important;white-space:nowrap!important}
  html[data-ios="1"][data-phone="1"] .verMini{display:none!important}
  html[data-ios="1"][data-phone="1"] .battleSetBtn{flex-shrink:0!important;margin-left:2px!important;padding:6px 10px!important;min-width:38px!important;min-height:34px!important}
}
/* ═══════════ v08-288: iOS 底部安全区(不改布局基准) ═══════════
   地址栏收起时 visualViewport 底部被地址栏盖 → opsLayer/鼠卡底部按钮被压。
   只加安全区 padding 上移按钮内容, 布局百分比基准保持 innerHeight 与布局码一致。
   仅 iOS 生效, 安卓/桌面零变化。 */
html[data-ios="1"] #opsLayer{padding-bottom:calc(env(safe-area-inset-bottom,0px))!important}
/* ═══════════ v08-303: 触屏/平板降质(置于文件末尾确保后声明优先) ═══════════
   停掉"重绘型"无限动画(全屏星轨scale / 技能键box-shadow脉动 / 已选卡box-shadow脉动)——
   这些动画无法GPU合成、每帧强制重绘→低端平板选角页+战斗页持续频闪。
   保留状态提示动画(weakBlink低血闪/hpPulse)。html[data-dev] 规则特异性更高, 这里用
   html.fx-low[data-dev] 组合选择器确保覆盖。 */
html.fx-low body::before,html.fx-low #bg::after{animation:none}
html.fx-low .mSkill:not(.used),html.fx-low .cSkill.clickable,html.fx-low .catVs .vsx{animation:none}
html.fx-low .heroEmblem .r2,html.fx-low .cbadge.spin{animation:none}
html.fx-low[data-dev] .pickCard.playerPick,html.fx-low[data-dev] .pickCard.picked,
html.fx-low .pickCard.playerPick,html.fx-low .pickCard.picked{animation:none!important}
html.fx-low .skinCard.sp,html.fx-low .skinCard.sp::before,html.fx-low .skinCard .skinRare.sp{animation:none}
html[data-ios="1"] #battleScreen{padding-bottom:calc(env(safe-area-inset-bottom,0px))!important}
/* v08-311: 恶魔杰瑞传送门·钻门按钮——独立定位(治疗按钮正上方), 不与治疗/药水重叠 */
html[data-dev] body .mouseCard .portalSlot{position:absolute!important;left:2%!important;right:auto!important;top:auto!important;bottom:37.5%!important;width:24%!important;height:10%!important;z-index:6!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important}
html[data-dev] body .mouseCard .portalSlot .portalChip{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;border-radius:999px!important;font-weight:900!important;font-size:clamp(9px,1.1vw,13px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding:0 4px!important;box-sizing:border-box!important;cursor:pointer!important;background:linear-gradient(135deg,#8ad8ff,#4facfe)!important;color:#001!important;border:1px solid rgba(255,255,255,.4)!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important}
