:root{
  --bg:#f7f8fa; --panel:#ffffff; --panel2:#fbfbfd; --line:#ececf2;
  --txt:#1a1a1a; --txt2:#555; --mut:#9aa0aa; --dim:#c5c8d0;
  --green:#3eb873; --green2:#5fcf8a; --orange:#ff8a4c; --red:#e85a5a;
  --blue:#5a8fd4; --purple:#a78bfa; --gold:#c9a045; --gold2:#e0bc6c;
  --jade:#2ea874;
  --bg2:#eef0f4; --bg3:#e3e5ea; --warn:#e8923a;
  --serif:"KaiTi","STKaiti","楷体","SimSun",serif;
  /* v1.4.0-test25：游戏所有文字统一楷书——sans 也优先楷体，确保任何显式用 --sans 处亦是楷书 */
  --sans:"KaiTi","STKaiti","楷体","Microsoft YaHei","PingFang SC","SimHei",sans-serif;
  --shadow:0 2px 12px rgba(0,0,0,.06);
  --shadow2:0 4px 18px rgba(0,0,0,.08);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{background:var(--bg);color:var(--txt);font-family:var(--serif);font-size:14px;overflow:hidden;user-select:none}
/* 全屏场景背景层：放在 #game-stage 背后，随当前场景切换 home/map 背景图，填满手机黑边区 */
#bg-layer{
  position:fixed; left:50%; top:0; transform:translateX(-50%);
  width:100%; max-width:480px; height:100vh;
  z-index:0;
  pointer-events:none;
  display:none;
}
#bg-layer .bg-layer-base,
#bg-layer .bg-layer-overlay{
  position:absolute; inset:0;
  background:#0c1316 center/cover no-repeat;
}
/* overlay 承载「新季节」图，做 1.2s 缓动淡入（配合每秒一日的推进，过渡自然不生硬） */
#bg-layer .bg-layer-overlay{ opacity:0; transition:opacity 1.2s ease-in-out; }
/* v1.4.0-test20：彻底移除「定死框架」——不再用 480×960 设计稿 + transform:scale() 缩放。
   原因：transform 会创建「包含块」，导致内部所有 position:fixed 元素（系统窗口 #quest-panel、
   各弹窗、抽屉）不再相对真实视口，而是相对这个被缩放的舞台，于是被一起缩小并偏移 = 死界面。
   注意：v1.4.0-test21 修正——#game-stage 用 margin:0 auto 居中 480 列（不创建包含块），
   否则 transform 会让系统窗口/背幕被困在 480 列里被裁切。背景图限宽由 #bg-layer 承担。 */
#game-stage{
  position:fixed; top:0; left:0; right:0; margin:0 auto;
  width:100%; height:100%; max-width:480px;
  z-index:1; pointer-events:auto;
  overflow:visible;
}
#app{position:absolute;inset:0;width:100%;height:100%;display:none;flex-direction:column;background:var(--bg);border-left:1px solid #ececf2;border-right:1px solid #ececf2;overscroll-behavior-y:contain}

#topbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;z-index:200;position:relative}   /* z-index:200 高过 modal-bg:100，避免其他弹窗残留时点不到背包/排行按钮 */
#topbar .left{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0;flex-shrink:0}
#avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 35% 30%, #fff7d8, #f0e3b8);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;color:var(--gold)}
#topbar .name-wrap{display:flex;flex-direction:column;min-width:0;gap:2px}
#topbar .name{font-family:var(--serif);font-size:17px;color:var(--txt);letter-spacing:1px;line-height:1.1;white-space:nowrap}
#topbar .meta-row{display:flex;align-items:center;gap:6px;min-width:0}
#topbar .tb-id{font-size:11px;color:var(--mut);white-space:nowrap;letter-spacing:.3px}
#topbar .tb-sect{min-width:0;white-space:nowrap}
#topbar .tb-sect .sect-badge-tag{font-size:10px;padding:1px 7px;border-radius:6px}
#topbar .top-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.25;min-width:0}
#topbar .top-center .tb-realm{font-family:var(--serif);font-size:15px;color:var(--gold);font-weight:700;letter-spacing:1.5px;white-space:nowrap}
#topbar .top-center .stone{font-size:13px;color:var(--gold);white-space:nowrap;font-family:var(--serif);letter-spacing:.5px;display:inline-flex;align-items:center;gap:3px}
#topbar .top-center .stone .stone-ico-img{display:inline-block;width:14px;height:14px;vertical-align:middle;flex-shrink:0;object-fit:contain}
.char-stone .bag-stone-ico{display:inline-block;width:13px;height:13px;object-fit:contain}
#topbar .top-center .stone #tb-stone-num{font-weight:600}
#topbar .top-center .stone .stone-unit{font-style:normal;font-size:10px;color:var(--mut);letter-spacing:0}
#topbar .top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
#topbar .bag-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--gold);background:#fff;color:var(--gold);font-size:13px;cursor:pointer;font-family:var(--serif);letter-spacing:1px;flex-shrink:0;transition:.15s}
#topbar .bag-btn:hover{background:#fffaf0}
#topbar .paihang-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:13px;cursor:pointer;font-family:var(--serif);letter-spacing:1px;flex-shrink:0;transition:.15s}
#topbar .paihang-btn:hover{border-color:var(--gold);color:var(--gold)}
/* v1.3.8-7：社交入口放在 topbar，样式与排行榜/背包一致 */
.lb-window{padding:2px 0}

#tabs{display:flex;gap:2px;padding:0 6px;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0}
#tabs::-webkit-scrollbar{height:3px}
#tabs::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px}
.tab{padding:8px 12px;font-size:13px;color:var(--mut);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:.15s}
.tab:hover{color:var(--txt)}
.tab.active{color:#fff;background:var(--gold);border-bottom-color:var(--gold);font-weight:600;border-radius:6px 6px 0 0}

/* v1.3.6-14：#scene 改 flex-shrink:0（不再硬撑高）+ 去 border-bottom，去掉"底框"——容器高度只够装下 realm-bar+图片，下面空白属于 app 不在 #scene 内（不再有"两个底色"的视觉） */
#scene{flex-shrink:0;background:#fff;display:flex;flex-direction:column;position:relative}
/* v1.3.6-7：topbar 移除原 realm-name（与头顶境界重复），战力移到修为前面 */
#scene .realm-bar{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:nowrap}
#scene .power-cell{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border:1px solid #e0524a;border-radius:14px;background:linear-gradient(180deg,#fff5f3,#ffe8e5);flex-shrink:0}
#scene .power-cell .lbl{font-size:10px;color:var(--mut);letter-spacing:1px}
#scene .power-cell .v{font-size:13px;color:var(--red);font-weight:700;font-family:var(--serif);letter-spacing:1px}
#scene .cult-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
#scene .cult-info .lbl{font-size:11px;color:var(--mut);white-space:nowrap;flex-shrink:0}
#scene .cult-info .val{font-size:12px;color:var(--green);font-weight:500;white-space:nowrap}
/* 境界样式已合并到 #topbar .top-center .tb-realm */
/* v1.3.6-18：旧 #scene .bar 规则删除（避免 ID 优先级覆盖 .cult-bar-wrap 的 22px 加粗条） */
/* v1.3.6-19：修为进度条加粗（bar 高 22px）+ 绿色填充（原版配色）+ 内部文字橙色加粗 */
.cult-bar-wrap{flex:1;position:relative;min-width:0;display:flex;align-items:center;height:24px}
.cult-bar-wrap .bar{flex:1;height:22px;background:#f0f1f4;border-radius:11px;overflow:hidden;border:1px solid #e8e8eb;position:relative}
.cult-bar-wrap .bar>i{display:block;border-radius:11px;height:100%;background:linear-gradient(90deg,#3eb873,#5fcf8a);transition:width .4s}
.cult-bar-wrap .bar-label{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:11px;color:#18191c;font-weight:600;letter-spacing:0.5px;z-index:2}
.cult-bar-wrap .bar-val{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:#18191c;font-weight:600;z-index:2;white-space:nowrap}
/* v1.3.6-18：丹药限时徽章（topbar 进度条右侧/突破按钮旁） */
.danbuff-badge{display:inline-block;padding:3px 10px;font-size:12px;border-radius:14px;background:linear-gradient(180deg,#fff3e0,#ffe0b2);border:1px solid #e0912e;color:#b96a00;font-weight:700;white-space:nowrap;flex-shrink:0;margin-left:6px}
/* v1.3.8：丹药徽章移到阵法下方（绝对定位贴在 cult-form-tag 正下方） */
.danbuff-cult{position:absolute;top:46px;right:12px;margin-left:0;box-shadow:0 2px 6px rgba(224,145,46,.35);z-index:4}
.log-title{font-family:var(--serif);color:var(--gold);letter-spacing:2px}
/* v1.3.6-16：突破/渡劫按钮移到 topbar 进度条右侧——不可突破时灰色，可突破时变亮 */
.bt-inline{padding:5px 14px;font-size:13px;border-radius:14px;border:1px solid;cursor:pointer;font-family:var(--serif);font-weight:600;letter-spacing:1.5px;transition:.18s;flex-shrink:0;margin-left:8px}
.bt-inline{color:var(--mut);background:#f6f7f9;border-color:var(--line);cursor:not-allowed}   /* 默认灰色 */
.bt-inline.ready{color:#fff;background:linear-gradient(135deg,#e0bc6c,#c9a045);border-color:#bf8f33;cursor:pointer;box-shadow:0 2px 6px rgba(201,160,69,.4);animation:btpulse 1.2s ease-in-out infinite}
.bt-inline.ready:hover{filter:brightness(1.08)}

/* v1.3.6-12：容器高度跟随图片自适应（去掉 flex:1 + min-height 写死，改 display:block 由子元素自然撑开），人物/按钮/心魔等绝对定位子元素自动跟着图走 */
#cult-scene{display:block;background:linear-gradient(180deg,#fffaf0 0%,#ffffff 100%);position:relative;overflow:hidden}
/* v1.3.6-12：图片 display:block 走自然流（不再是 absolute + 100% 100%），宽 100% 高 auto，容器高度=图片高度 */
#cult-scene .cult-bg{display:block;width:100%;height:auto;z-index:1;pointer-events:none}
/* v1.3.6-14：人物图上移约 10px（bottom:13%，从 9% 上挪 10px 让人物完全进打坐台中央），心魔 bottom:2% 不动 */
#cult-scene .cult-char{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);width:24%;max-height:38%;height:auto;z-index:3;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
/* v1.3.7：聚灵类阵法——光晕中心对齐打坐台蒲团（人物坐处），不跑到脚下 */
#cult-scene .cult-aura{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);width:46%;height:12%;z-index:2;pointer-events:none;display:none;overflow:visible}
#cult-scene .cult-aura.active{display:block}
/* 主光晕：紧贴打坐台面，平坦椭圆形（呼吸式明暗+微微缩放） */
#cult-scene .cult-aura .aura-glow{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:100%;height:100%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(120,235,150,.7) 0%,rgba(80,220,120,.4) 45%,rgba(50,200,90,.15) 75%,transparent 100%);filter:blur(2px);animation:auraGlow 3.2s ease-in-out infinite}
@keyframes auraGlow{0%,100%{opacity:.75;transform:translateX(-50%) scaleX(1) scaleY(1)}50%{opacity:1;transform:translateX(-50%) scaleX(1.06) scaleY(1.25)}}
/* 内核：台面最亮处（蒲团正下方），呼吸 */
#cult-scene .cult-aura .aura-core{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:50%;height:50%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(200,255,210,.85) 0%,rgba(140,240,170,.4) 60%,transparent 100%);animation:auraCore 2.4s ease-in-out infinite}
@keyframes auraCore{0%,100%{opacity:.5;transform:translateX(-50%) scale(.92)}50%{opacity:.9;transform:translateX(-50%) scale(1.08)}}
/* 灵气上升光点（10 个错开延迟从台面向上飘，距离缩短不覆盖人物头顶） */
#cult-scene .cult-aura i{position:absolute;bottom:30%;left:50%;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle,#c8ffd5,#3eb873);box-shadow:0 0 8px rgba(100,230,140,.9);animation:qilingAura 2.4s ease-in infinite}
#cult-scene .cult-aura i:nth-child(4){left:18%;animation-delay:.1s}
#cult-scene .cult-aura i:nth-child(5){left:28%;animation-delay:.4s}
#cult-scene .cult-aura i:nth-child(6){left:36%;animation-delay:.7s}
#cult-scene .cult-aura i:nth-child(7){left:44%;animation-delay:1s}
#cult-scene .cult-aura i:nth-child(8){left:52%;animation-delay:.5s}
#cult-scene .cult-aura i:nth-child(9){left:60%;animation-delay:1.3s}
#cult-scene .cult-aura i:nth-child(10){left:68%;animation-delay:1.6s}
#cult-scene .cult-aura i:nth-child(11){left:76%;animation-delay:.9s}
#cult-scene .cult-aura i:nth-child(12){left:84%;animation-delay:1.9s}
#cult-scene .cult-aura i:nth-child(13){left:30%;animation-delay:2.1s}
@keyframes qilingAura{
  0%{transform:translate(-50%,0) scale(.6);opacity:0}
  15%{opacity:1}
  100%{transform:translate(-50%,-55px) scale(1.1);opacity:0}
}
#cult-scene svg{width:100%;height:100%;max-height:220px;display:none}   /* v1.3.6-7：移除 inline SVG（已用 img 替换） */
/* v1.3.6-8：原头顶境界已删（移至 topbar 玩家名字后） */
/* v1.3.6-7：阵法胶囊（图片右上角，可点击） */
#cult-scene .cult-form-tag{position:absolute;right:14px;top:12px;padding:5px 12px;background:rgba(255,255,255,.88);border:1px solid #d4a54a;border-radius:18px;font-size:12px;color:var(--txt);cursor:pointer;backdrop-filter:blur(4px);box-shadow:0 2px 6px rgba(0,0,0,.18);z-index:5;transition:.18s;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#cult-scene .cult-form-tag:hover{background:#fff;border-color:var(--gold)}
/* v1.3.6-8：心魔移到人物脚下（bottom:2%，绝对底部），纯文字无边框胶囊 */
#cult-scene .cult-xinmo-text{position:absolute;left:50%;bottom:2%;transform:translateX(-50%);font-size:12px;font-family:var(--serif);letter-spacing:1px;cursor:pointer;z-index:5;transition:.18s;text-shadow:0 1px 2px rgba(0,0,0,.5);padding:2px 4px}
#cult-scene .cult-xinmo-text:hover{transform:translateX(-50%) scale(1.05)}
/* v1.3.6-16：突破按钮移到 topbar 进度条右侧（不再悬在人物图上）；灰色锁定 + 金色 ready 双态样式见 .bt-inline / .bt-inline.ready */
@keyframes btpulse{0%,100%{box-shadow:0 2px 6px rgba(201,160,69,.4)}50%{box-shadow:0 4px 12px rgba(201,160,69,.7)}}
#battle-scene{display:none;position:fixed;inset:0;z-index:700;background:rgba(35,24,14,.55);align-items:center;justify-content:center;padding:14px}
#battle-scene.show{display:flex}
/* v1.5.9-26：战斗背景图回归 + 灰色玻璃磨砂滤镜（保留背景图但调暗，不再用白底把图盖掉） */
.battle-modal{width:min(600px,96vw);max-height:96vh;display:flex;flex-direction:column;background:url('assets/system_bgs/zhandou.png') center/cover no-repeat;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.4),0 0 0 1px rgba(180,150,100,.18);padding:14px 16px;overflow:hidden;position:relative}
.battle-modal::before{content:'';position:absolute;inset:0;border-radius:inherit;background:rgba(52,56,64,.6);pointer-events:none;z-index:0}
.battle-modal>*{position:relative;z-index:1}
.battle-modal-head{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:3px;text-align:center;margin-bottom:2px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;min-height:24px}
/* 战斗加速按钮：移到战斗画面右下角，绝对定位 */
#battle-speed{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:11px;cursor:pointer;font-family:var(--sans);letter-spacing:0;transition:.15s;line-height:1.3;z-index:8;box-shadow:0 1px 3px rgba(0,0,0,.08);vertical-align:middle}
#battle-speed:hover{border-color:var(--gold);color:var(--gold)}
#battle-speed.fast{border-color:var(--gold);color:var(--gold);background:#fffaf0;box-shadow:0 0 8px rgba(201,160,69,.35)}
body.dungeon #battle-speed{display:inline-block}
/* v1.5.9-20：副本窗口化战斗——弹窗右上角浮动「退出副本」按钮（仅副本内显示） */
.fuben-exit-float{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%);padding:2px 9px;border-radius:999px;border:1px solid rgba(201,160,69,.5);background:rgba(20,30,22,.62);color:var(--gold);font-size:12px;cursor:pointer;font-family:var(--sans);line-height:1.4;z-index:5}
.fuben-exit-float:hover{border-color:var(--gold);background:rgba(40,30,15,.85)}
body.dungeon .fuben-exit-float{display:inline-flex;align-items:center;justify-content:center}
/* v1.3.1-4：加速按钮内联于"我方"标签右侧 */
.side-lbl #battle-speed{letter-spacing:0}
/* 上下分区标签：上"妖兽" / 下"我方"，避免敌我挤在中部 */
.side-lbl{font-family:var(--serif);font-size:11px;letter-spacing:4px;color:var(--gold);text-align:center;padding:2px 0;opacity:1;flex-shrink:0;text-shadow:0 1px 3px rgba(0,0,0,.85)}
.side-lbl::before,.side-lbl::after{content:"";display:inline-block;width:18px;height:1px;background:var(--gold);vertical-align:middle;margin:0 8px;opacity:.5}
/* 上下结构：敌在上 / ⚔ 中 / 人物居中(灵兽两侧)。核心重构：flex-direction:column */
.battle-grid{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;overflow:auto;padding:6px 4px}
/* v1.5.9-21：波数切换飘窗（副本/探索共用）——屏幕中央深灰底飘出 */
.wave-pop{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;z-index:1200;pointer-events:none;
  background:rgba(38,38,42,.92);color:#f3f3f3;font-family:var(--serif);font-size:clamp(14px,3.6vw,19px);letter-spacing:3px;
  padding:9px 24px;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.1);
  text-shadow:0 2px 6px rgba(0,0,0,.6);white-space:nowrap;
  transition:opacity .35s ease, transform .4s cubic-bezier(.18,.9,.3,1.25)}
.wave-pop.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.battle-side{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;flex:0 0 auto;min-width:0;width:100%;justify-content:center;align-content:flex-start}
.enemy-side{align-items:flex-start}
/* 人物居中行：[灵兽左] [人物] [灵兽右] —— 3 栏 grid，玩家永远居中 */
.battle-mid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;gap:12px;width:100%;max-width:600px;flex:0 0 auto;padding:2px 0;transform:translateY(4px)}
.battle-mid .player-card{grid-column:2;justify-self:center}
.beast-slot{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}
.beast-slot:nth-of-type(1){grid-column:1;justify-self:stretch}    /* 灵兽左 */
.beast-slot:nth-of-type(2){grid-column:3;justify-self:stretch}    /* 灵兽右 */
.beast-slot:empty{display:none}   /* 单只灵兽时不显示空槽位 */
.battle-card{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;width:100%;max-width:140px;position:relative;transition:box-shadow .2s}
/* 怪物卡片：无红框、无背景，信息叠加在立绘上方，图片加大，血条极细 */
.enemy-card{
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  width:auto;min-width:78px;max-width:120px;
  margin:2px 3px;padding:0;
  background:transparent;border:none;border-radius:0;box-shadow:none;
}
.enemy-card .e-info{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:100%;text-align:center;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.enemy-card .e-line{
  display:flex;align-items:baseline;justify-content:center;gap:0 5px;
  font-family:var(--serif);white-space:nowrap;
}
.enemy-card .e-name{font-size:13px;color:var(--red);letter-spacing:.5px;text-shadow:0 1px 2px rgba(255,255,255,.8),0 0 3px rgba(0,0,0,.55)}
.enemy-card .e-realm{font-size:10px;color:var(--gold);text-shadow:0 1px 2px rgba(255,255,255,.85),0 0 3px rgba(0,0,0,.5)}
.enemy-card .e-hpbar{
  position:relative;width:100%;max-width:96px;height:12px;background:rgba(0,0,0,.16);border-radius:6px;overflow:hidden;
}
.enemy-card .e-hpbar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#e85a5a,#ff8a8a);transition:width .3s}
.enemy-card .e-hpbar .bar-in{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7);z-index:3;pointer-events:none}
.enemy-card .e-status{min-height:13px;margin-top:3px;font-size:10px;line-height:13px;color:var(--gold);letter-spacing:1px;text-shadow:0 1px 2px rgba(0,0,0,.5);text-align:center}
.enemy-card.frozen .e-img{filter:drop-shadow(0 3px 4px rgba(0,0,0,.25)) brightness(1.05) saturate(1.2) hue-rotate(8deg);}
.enemy-card.frozen::after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;border-radius:10px;box-shadow:inset 0 0 18px 4px rgba(140,200,255,.7);pointer-events:none}
.enemy-card.stunned .e-img{animation:enemyStun .5s ease-in-out infinite}
.enemy-card.burning .e-img{animation:enemyBurn .45s steps(2) infinite}
@keyframes enemyStun{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
@keyframes enemyBurn{0%{filter:drop-shadow(0 3px 4px rgba(0,0,0,.25)) saturate(1.4) brightness(1.08)}100%{filter:drop-shadow(0 0 8px #ff7a45) saturate(1.6) brightness(1.18)}}
/* v1.5.9-23：缩小怪物/玩家/Boss/灵兽尺寸，消除战斗画面滚动 */
.enemy-card .e-img{display:block;height:62px;width:auto;max-width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));margin-top:10px}
.enemy-card.boss-card .e-img{height:92px;margin-top:16px}
.enemy-card.boss-card{min-width:90px;max-width:140px}
/* 玩家战斗卡片：无框、立绘为主、信息叠加 */
.player-card{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  width:auto;min-width:90px;max-width:130px;margin:2px 6px;padding:0;
  background:transparent;border:none;border-radius:0;box-shadow:none;
}
.player-card .p-info-top{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:100%;text-align:center;z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  background:transparent;border-radius:0 0 8px 8px;padding:2px 4px;
}
.player-card .p-info-bottom{
  position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;text-align:center;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding-bottom:2px;
  background:transparent;border-radius:8px 8px 0 0;padding:2px 4px;
}
.player-card .p-line{
  display:flex;align-items:baseline;justify-content:center;gap:0 5px;
  font-family:var(--serif);white-space:nowrap;
}
.player-card .p-name{font-size:13px;color:var(--gold);letter-spacing:.5px;text-shadow:0 1px 2px rgba(255,255,255,.8),0 0 3px rgba(0,0,0,.55)}
.player-card .p-realm{font-size:10px;color:var(--txt2);text-shadow:0 1px 2px rgba(255,255,255,.85),0 0 3px rgba(0,0,0,.5)}
.player-card .p-img{display:block;height:118px;width:auto;max-width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));margin-top:26px;margin-bottom:32px}
.player-card .p-hpbar,.player-card .p-mpbar{position:relative;width:100%;max-width:110px;height:14px;background:rgba(0,0,0,.16);border-radius:7px;overflow:hidden}
.player-card .p-hpbar>i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,#e85a5a,#ff8a8a);transition:width .3s}
.player-card .p-mpbar>i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,#5a8fd4,#8fb5e8);transition:width .3s}
.player-card .p-hpbar .bar-in,.player-card .p-mpbar .bar-in{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7);z-index:3;pointer-events:none}
/* 玩家卡片动画：打击/被击/增益 */
.player-card.attacking{animation:atkLunge .55s cubic-bezier(.36,.07,.19,.97);z-index:3}
.player-card.attacking-back{animation:atkLungeBack .55s cubic-bezier(.36,.07,.19,.97);z-index:3}
.player-card.hit{animation:hitShake .55s ease;filter:drop-shadow(0 0 8px var(--hitc,#e85a5a))}
.player-card.hit-up{animation:knockU .5s ease;filter:drop-shadow(0 0 10px var(--hitc,#e85a5a))}
.player-card.hit-down{animation:knockD .5s ease;filter:drop-shadow(0 0 10px var(--hitc,#e85a5a))}
.player-card.boost{animation:boostGlow .6s ease;filter:drop-shadow(0 0 10px var(--hitc,#5abf7a))}
.player-card .dmg-pop{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-weight:700;font-size:14px;color:var(--hitc,#e85a5a);text-shadow:0 1px 2px #fff,0 0 6px var(--hitc,#e85a5a);pointer-events:none;animation:dmgPop .8s ease forwards;z-index:6}
/* v1.3.6-3：修炼场景头顶飘字（每日修为 +X.XX / 历练物品名称），从角色头上方向上飘出 2s 后消失（v1.3.6-4 延长时间方便看清） */
.cult-float{position:absolute;top:43%;font-family:var(--serif);font-weight:700;font-size:15px;color:var(--cf-c,var(--green));text-shadow:0 1px 2px rgba(255,255,255,.85),0 0 4px rgba(255,255,255,.6);pointer-events:none;animation:cultFloatUp 2s ease-out forwards;z-index:8;white-space:nowrap}
.cult-float.cult{font-size:18px;font-weight:700}
.cult-float.item{font-size:13px;color:var(--gold)}
@keyframes cultFloatUp{0%{opacity:0;transform:translate(-50%,0) scale(.85)}12%{opacity:1;transform:translate(-50%,-12px) scale(1)}82%{opacity:1;transform:translate(-50%,-46px) scale(1)}100%{opacity:0;transform:translate(-50%,-62px) scale(.95)}}
.battle-card .c-name{font-family:var(--serif);font-size:13.5px;color:var(--txt);letter-spacing:1px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* v1.5.9-23：隐藏底部"第X回合 按身法轮流出手"文字栏（释放底部空间，消除滚动） */
#battle-status{display:none !important}
.bb{height:9px;background:#f0f1f4;border-radius:5px;overflow:hidden;margin-bottom:1px;border:1px solid #e8e8eb}
.bb>i{display:block;height:100%;border-radius:5px;transition:width .3s}
.bb.hp>i{background:linear-gradient(90deg,#e85a5a,#ff8a8a)}
.bb.mp>i{background:linear-gradient(90deg,#5a8fd4,#8fb5e8)}
.bb-text{font-size:10.5px;color:var(--mut);margin-top:1px;display:flex;justify-content:space-between}
.vs{flex:1 1 70px;min-height:48px;max-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--serif);font-size:18px;color:var(--gold);margin:0;letter-spacing:3px}
/* Hit animation: lunge / shake / self-buff —— 上下方向适配新布局
   atkLunge      : 玩家向上刺向敌怪（向上方 = translateY -）
   atkLungeBack  : 敌怪向下扑向玩家（向下方 = translateY +）
   knockU        : 敌怪被击中向上弹退（远离玩家）
   knockD        : 玩家被敌怪击中向上弹退（远离敌怪；视觉上卡片向上跳）
*/
@keyframes atkLunge{0%{transform:translateY(0)}25%{transform:translateY(-26px) scale(1.05)}55%{transform:translateY(-18px) scale(1.03)}100%{transform:translateY(0) scale(1)}}
@keyframes atkLungeBack{0%{transform:translateY(0)}25%{transform:translateY(26px) scale(1.05)}55%{transform:translateY(18px) scale(1.03)}100%{transform:translateY(0) scale(1)}}
@keyframes hitShake{0%,100%{transform:translateY(0) rotate(0)}12%{transform:translateY(-7px) rotate(-2.5deg)}28%{transform:translateY(6px) rotate(2deg)}45%{transform:translateY(-5px) rotate(-1.5deg)}62%{transform:translateY(4px) rotate(1deg)}82%{transform:translateY(-2px) rotate(0)}}
@keyframes boostGlow{0%{transform:scale(1)}40%{transform:scale(1.07)}100%{transform:scale(1)}}
.battle-card.attacking,.battle-beast.attacking,.enemy-card.attacking{animation:atkLunge .55s cubic-bezier(.36,.07,.19,.97);z-index:3}
.battle-card.attacking-back,.battle-beast.attacking-back,.enemy-card.attacking-back{animation:atkLungeBack .55s cubic-bezier(.36,.07,.19,.97);z-index:3}
.battle-card.hit,.battle-beast.hit,.enemy-card.hit{animation:hitShake .55s ease;border-color:var(--hitc,#e85a5a)!important;box-shadow:0 0 0 2px var(--hitc,#e85a5a),0 0 20px var(--hitc,#e85a5a)}
.battle-card.hit .c-name,.battle-card.hit .e-name,.enemy-card.hit .e-name{color:var(--hitc,#e85a5a)!important}
.battle-card.boost,.battle-beast.boost{animation:boostGlow .6s ease;box-shadow:0 0 0 2px var(--hitc,#5abf7a),0 0 20px var(--hitc,#5abf7a)}
.battle-card .dmg-pop,.battle-beast .dmg-pop,.enemy-card .dmg-pop{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-weight:700;font-size:14px;color:var(--hitc,#e85a5a);text-shadow:0 1px 2px #fff,0 0 6px var(--hitc,#e85a5a);pointer-events:none;animation:dmgPop .8s ease forwards;z-index:6}
@keyframes dmgPop{0%{opacity:0;transform:translate(-50%,-50%) translateY(4px) scale(.6)}25%{opacity:1;transform:translate(-50%,-50%) translateY(-4px) scale(1.15)}70%{opacity:1;transform:translate(-50%,-50%) translateY(-12px) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) translateY(-20px) scale(.9)}}
/* Turn-based: knockback (up/down) keyframes —— 上下方向适配新布局
   hit-r : 敌被玩家击中 → 向上弹退（远离下方玩家）
   hit-l : 玩家被敌击中 → 向下弹退（远离上方敌怪）
*/
@keyframes knockU{0%{transform:translateY(0) rotate(0)}18%{transform:translateY(-18px) rotate(-3.5deg)}42%{transform:translateY(-9px) rotate(-1.5deg)}70%{transform:translateY(-3px)}100%{transform:translateY(0) rotate(0)}}
@keyframes knockD{0%{transform:translateY(0) rotate(0)}18%{transform:translateY(18px) rotate(3.5deg)}42%{transform:translateY(9px) rotate(1.5deg)}70%{transform:translateY(3px)}100%{transform:translateY(0) rotate(0)}}
.battle-card.hit-r,.battle-beast.hit-r,.enemy-card.hit-r{animation:knockU .5s ease;filter:drop-shadow(0 0 8px var(--hitc,#e85a5a))}
.battle-card.hit-l,.battle-beast.hit-l,.enemy-card.hit-l{animation:knockD .5s ease;filter:drop-shadow(0 0 8px var(--hitc,#e85a5a))}
.battle-card.hit-r .c-name,.battle-card.hit-l .c-name,.battle-card.hit-r .e-name,.battle-card.hit-l .e-name,.enemy-card.hit-r .e-name,.enemy-card.hit-l .e-name{color:var(--hitc,#e85a5a)!important}
/* 新语义类名：敌被击向上/玩家被击向下（视觉上更直观） */
.battle-card.hit-up,.battle-beast.hit-up,.enemy-card.hit-up{animation:knockU .5s ease;filter:drop-shadow(0 0 10px var(--hitc,#e85a5a))}
.battle-card.hit-down,.battle-beast.hit-down,.enemy-card.hit-down{animation:knockD .5s ease;filter:drop-shadow(0 0 10px var(--hitc,#e85a5a))}
.battle-card.hit-up .c-name,.battle-card.hit-down .c-name,.battle-card.hit-up .e-name,.battle-card.hit-down .e-name,.enemy-card.hit-up .e-name,.enemy-card.hit-down .e-name{color:var(--hitc,#e85a5a)!important}
.c-realm{font-size:9.5px;color:#b08a3e;margin-bottom:3px;font-family:var(--serif);letter-spacing:.5px}
.c-spd{font-size:9.5px;color:var(--mut);text-align:right;margin-top:2px;font-family:var(--sans)}
.c-spd b{color:var(--gold);font-weight:600}
/* Action-order bar */
/* v1.5.9-23：隐藏出手顺序栏（释放顶部空间，消除滚动） */
#turn-order{display:none !important}
#turn-order .to-label{font-size:10px;color:var(--mut);font-family:var(--serif);letter-spacing:1px;flex-shrink:0}
.to-chip{font-size:10.5px;padding:2px 8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-family:var(--serif);white-space:nowrap;max-width:88px;overflow:hidden;text-overflow:ellipsis}
.to-chip.foe{color:var(--red);border-color:#eec}
.to-chip.cur{border-color:var(--gold);background:#fffaf0;color:var(--gold);box-shadow:0 0 8px rgba(201,160,69,.45);font-weight:700}
.to-chip.done{opacity:.35}
/* Battle beast card (smaller than character card) */
.battle-beasts{display:flex;flex-direction:column;gap:4px;margin-top:2px}
/* v1.3.3-5：去容器白底+边框（透明背景融入场景）+ 血条加 bar-in（血量放进血条内与人物一致） */
.battle-beast{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;width:100%;max-width:148px;position:relative;background:transparent;border:none}
/* v1.3.3-5：战斗灵兽立绘 + 血条下方（与人物卡片一致） */
.battle-beast .b-top{display:flex;justify-content:space-between;align-items:baseline;width:100%;gap:4px}
.battle-beast .b-name{font-size:11px;font-family:var(--serif);color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.battle-beast .b-lv{font-size:9.5px;color:var(--mut);flex-shrink:0}
.battle-beast .b-img{display:block;width:auto;height:70px;max-width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.battle-beast .b-bottom{width:100%}
.battle-beast .bb{height:11px;margin-bottom:0;position:relative}
.battle-beast .bar-in{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:3;pointer-events:none}
/* Spell FX: light barrage + spell-name banner */
/* 施法特效：飞向目标怪物
   .cast-fx 默认在 host 中央生成 orb
   通过 CSS 变量 --fx-tx, --fx-ty（目标相对当前位置的位移）让 orb 沿对角线飞到具体怪物
   .cast-fx.self 同位置（人物处）orb 向上散开（治疗/增益）
*/
.cast-fx{position:absolute;left:50%;top:50%;z-index:12;pointer-events:none;transform:translate(-50%,-50%)}
.cast-fx .cast-orb{width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 35%, #fff 18%, var(--fx) 75%);box-shadow:0 0 18px var(--fx),0 0 36px var(--fx);animation:fxFly var(--fx-dur,.8s) ease-in forwards}
.cast-fx.self{top:50%}
.cast-fx.self .cast-orb{animation:fxRise var(--fx-dur,.8s) ease-out forwards}
.cast-fx .cast-name{position:absolute;left:50%;top:-32px;transform:translateX(-50%);white-space:nowrap;font-family:var(--serif);font-size:13px;font-weight:bold;color:var(--fx);text-shadow:0 0 8px var(--fx),0 1px 0 #fff;animation:fxName var(--fx-dur,.85s) ease forwards;letter-spacing:2px}
.cast-fx[data-elem="雷"] .cast-orb{clip-path:polygon(58% 0,22% 52%,46% 52%,32% 100%,82% 42%,54% 42%)}
.cast-fx[data-elem="剑"] .cast-orb{clip-path:polygon(50% 0,60% 42%,100% 50%,60% 58%,50% 100%,40% 58%,0 50%,40% 42%)}
/* 天衍九剑：SVG 剑收敛插落（剑尖朝下、天青色发光，position:fixed 相对视口定位） */
.sword-fall{position:fixed;z-index:60;pointer-events:none;transform-origin:50% 100%;will-change:transform,opacity;
  filter:drop-shadow(0 0 6px rgba(138,176,224,.9)) drop-shadow(0 0 2px rgba(255,255,255,.55));}
.sword-fall .sword-svg{display:block;}
/* 寒冷凝霜：大剑插下 */
.sword-stab{position:fixed;z-index:60;pointer-events:none;transform-origin:50% 100%;will-change:transform,opacity;
  filter:drop-shadow(0 0 9px rgba(138,176,224,1)) drop-shadow(0 0 3px rgba(255,255,255,.6));}
.sword-stab .sword-svg{display:block;}
/* 灵霄破月：金色大剑扇形横扫 */
.sword-slash{position:fixed;z-index:62;pointer-events:none;will-change:transform,opacity;
  filter:drop-shadow(0 0 8px rgba(244,211,94,.95)) drop-shadow(0 0 3px rgba(255,243,196,.6));}
.sword-slash .sword-svg{display:block;}
/* 剑气纵横：环绕一圈（偏红） */
.sword-orbit{position:fixed;z-index:60;pointer-events:none;width:0;height:0;transform-origin:0 0;will-change:transform;
  filter:drop-shadow(0 0 7px rgba(224,98,90,.9));}
.sword-orbit-arm{position:absolute;left:0;top:0;height:0;}
.sword-orbit-svg{position:absolute;left:100%;top:0;transform:translate(50%,-50%) rotate(90deg);}
.sword-orbit-svg .sword-svg{display:block;}
/* 万剑归一：交错飞来飞去 */
.sword-swift{position:fixed;z-index:60;pointer-events:none;transform-origin:50% 100%;will-change:transform,opacity;
  filter:drop-shadow(0 0 6px rgba(138,176,224,.85));}
.sword-swift .sword-svg{display:block;}
.cast-fx[data-elem="冰"] .cast-orb{clip-path:polygon(50% 0,66% 34%,100% 50%,66% 66%,50% 100%,34% 66%,0 50%,34% 34%)}
.cast-fx[data-elem="仙"] .cast-orb{animation:fxFly var(--fx-dur,.8s) ease-in forwards, fxSpin var(--fx-dur,.8s) linear forwards}
/* v1.3.1：宗门法术元素施法特效（金/暗/魂/木/火/毒） */
.cast-fx[data-elem="金"] .cast-orb{clip-path:polygon(50% 0,62% 30%,100% 36%,66% 55%,72% 100%,50% 74%,28% 100%,34% 55%,0 36%,38% 30%);border-radius:0}
.cast-fx[data-elem="暗"] .cast-orb{clip-path:polygon(50% 0,60% 18%,80% 8%,74% 30%,100% 42%,78% 50%,92% 76%,64% 64%,58% 100%,42% 100%,36% 64%,8% 76%,22% 50%,0 42%,26% 30%,20% 8%,40% 18%);border-radius:0;background:radial-gradient(circle at 40% 40%, #e6d8ff 14%, var(--fx) 78%)}
.cast-fx[data-elem="魂"] .cast-orb{clip-path:polygon(35% 0,42% 28%,30% 40%,20% 100%,38% 82%,50% 100%,62% 82%,80% 100%,70% 40%,58% 28%,65% 0);border-radius:0}
.cast-fx[data-elem="木"] .cast-orb{clip-path:polygon(50% 0,56% 32%,100% 30%,64% 48%,78% 100%,50% 70%,22% 100%,36% 48%,0 30%,44% 32%);border-radius:0}
.cast-fx[data-elem="火"] .cast-orb{clip-path:polygon(50% 0,62% 22%,88% 10%,78% 38%,100% 52%,70% 58%,66% 100%,50% 76%,34% 100%,30% 58%,0 52%,22% 38%,12% 10%,38% 22%);border-radius:0}
.cast-fx[data-elem="毒"] .cast-orb{clip-path:polygon(50% 0,58% 30%,100% 30%,70% 55%,100% 100%,50% 80%,0 100%,30% 55%,0 30%,42% 30%);border-radius:0;background:radial-gradient(circle at 40% 40%, #f0d8ff 14%, var(--fx) 78%)}
/* 飞向具体目标：orb 从人物处(target=玩家自身时用 fxRise) 沿对角位移到目标怪物
   默认 0,0 → 0,-260（垂直向上）；JS 动态写入 --fx-tx / --fx-ty 覆盖目标位移 */
@keyframes fxFly{0%{transform:translate(0,0) scale(.55);opacity:0}18%{opacity:1}88%{opacity:1}100%{transform:translate(var(--fx-tx,0),var(--fx-ty,-260px)) scale(1.35);opacity:0}}
@keyframes fxRise{0%{transform:translate(0,12px) scale(.5);opacity:0}25%{opacity:1}100%{transform:translate(0,-60px) scale(1.7);opacity:0}}
@keyframes fxSpin{from{rotate:0deg}to{rotate:360deg}}
@keyframes fxName{0%{opacity:0;transform:translate(-50%,8px)}22%{opacity:1;transform:translate(-50%,0)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-10px)}}
/* 天雷诀：妖兽头顶劈下闪电 */
.cast-lightning{position:absolute;left:0;top:0;width:40px;height:var(--lh,200px);transform:translate(var(--lx,0),var(--ltop,0));pointer-events:none;z-index:42;overflow:visible}
.cast-lightning::before{content:'';position:absolute;left:50%;top:0;width:26px;height:100%;transform:translateX(-50%);background:linear-gradient(to bottom,#fff,var(--fx) 45%,#fff);clip-path:polygon(46% 0,30% 36%,54% 36%,34% 64%,66% 28%,40% 28%,56% 100%,50% 56%,26% 56%);filter:drop-shadow(0 0 7px var(--fx));transform-origin:top center;animation:lngStrike .42s ease-out forwards}
@keyframes lngStrike{0%{transform:translateX(-50%) scaleY(0);opacity:0}25%{transform:translateX(-50%) scaleY(1);opacity:1}100%{transform:translateX(-50%) scaleY(1);opacity:0}}
.battle-beast .bb-text{display:block;text-align:center;margin-top:1px;font-size:9px;color:var(--mut)}

#cult-stats{display:flex;justify-content:space-around;padding:10px 14px;background:#fbfbfd;border-top:1px solid var(--line);font-size:12.5px}
#cult-stats .item,#cult-stats .item-btn{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px}
#cult-stats .k{color:var(--mut);font-size:11px}
#cult-stats .v{color:var(--txt2);font-weight:500;font-size:14px}
#cult-stats .v.gold{color:var(--gold)}
#cult-stats .v.green{color:var(--green)}
#cult-stats .v.red{color:var(--red);font-weight:700}
#cult-stats .v.big-gold{color:var(--gold);font-size:20px;font-weight:600}
#cult-stats .v.big-red{color:var(--red);font-weight:700;font-size:20px}
#cult-stats .v.muted{color:var(--mut);font-size:14px}
#cult-stats .item-clickable{cursor:pointer;transition:background .15s;border-radius:8px;padding:4px 8px;margin:-4px -8px}
#cult-stats .item-clickable:hover{background:#f0f0f3}
#cult-stats .v-base{color:var(--mut);font-size:10.5px;font-weight:400}
#cult-stats .item-btn{background:transparent;border:1px solid var(--gold);border-radius:8px;padding:5px 12px;cursor:pointer;font-family:inherit;color:inherit;transition:.15s}
#cult-stats .item-btn:hover{background:#fffaf0;border-color:var(--gold2)}

#log-panel{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg)}
/* v1.3.8-8：#log-head 只放世界/好友两个 tab，不再显示任何标题文字 */
#log-head{display:flex;flex-shrink:0;height:46px;min-height:46px;background:#fff;border-bottom:1px solid var(--line);padding:0}
#log-head .cs-tab{flex:1;text-align:center;padding:12px 10px 11px;font-size:15px;color:var(--mut);background:#e8e8e8;cursor:pointer;transition:.15s;user-select:none;font-family:var(--sans);border-bottom:3px solid transparent;border-radius:12px 12px 0 0;margin:4px 4px 0}
#log-head .cs-tab.active{background:var(--gold);color:#fff;font-weight:700;border-bottom-color:#b08020}
#log-head .cs-tab:active{background:#dcdcdc}
#log-head .cs-tab + .cs-tab{border-left:none}
#log-head .cs-tab{position:relative}
/* v1.3.9-3：世界频道 tab 后的实时在线人数（中框号），仅显示数字 */
.cs-online{display:inline-block;margin-left:6px;font-size:13px;font-weight:700;letter-spacing:0;font-family:var(--sans)}
#log-head .cs-tab.active .cs-online{color:#fff}
#log-head .cs-tab:not(.active) .cs-online{color:#7a7a7a}
#log{display:none;flex:1;min-height:0;overflow-y:auto;padding:10px 14px;line-height:1.8;font-size:13.5px;font-family:var(--serif);-webkit-overflow-scrolling:touch}
#log::-webkit-scrollbar{width:4px}
#log::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px}
#log .sys{color:var(--mut)}
#log .info{color:var(--txt2)}
#log .good{color:var(--green)}
#log .warn{color:var(--orange)}
#log .bad{color:var(--red)}
#log .battle{color:var(--purple)}
#log .realm{color:var(--gold);font-size:15px;letter-spacing:2px}
#log .divider{color:var(--mut);border-bottom:1px dashed var(--line);margin:6px 0}
#log .time-tag{display:inline-block;font-size:10px;color:var(--mut);background:#eef0f4;padding:1px 6px;border-radius:3px;margin-right:6px;font-family:var(--sans)}
/* Quest panel (shown in lower half, replaces log) */
#quest-panel{flex:1;min-height:0;overflow-y:auto;padding:10px 14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#quest-panel::-webkit-scrollbar{width:4px}
#quest-panel::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px}


/* Play-mode switch (cultivate / adventure) under the journey log */
/* v1.3.6-3：模式按钮移到角色图左下/右下，按钮绝对定位；隐藏原模式栏顶部分布 */
#mode-bar{position:absolute;left:0;right:0;bottom:6px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;pointer-events:none;z-index:5}
#mode-bar .mode-btn{font-family:inherit;font-size:13px;padding:8px 14px;border-radius:22px;border:1px solid #d4a54a;background:rgba(255,255,255,.92);color:var(--mut);cursor:pointer;transition:.18s;white-space:nowrap;flex-shrink:0;font-weight:500;backdrop-filter:blur(4px);box-shadow:0 2px 6px rgba(0,0,0,.18);pointer-events:auto}
#mode-bar .mode-btn:hover{border-color:var(--gold);color:var(--txt2)}
#mode-bar .mode-btn.active{background:linear-gradient(180deg,#e8c96a,#c9a045);border-color:#bf8f33;color:#5a3d0c;font-weight:700;box-shadow:0 2px 8px rgba(180,140,50,.5)}
#mode-bar .mode-tip{display:none}
/* adventure log accent tags */
#log .adv{color:var(--purple)}
#log .adv-tag{display:inline-block;font-size:10px;color:#fff;background:var(--purple);padding:0 5px;border-radius:3px;margin-right:5px;font-family:var(--sans)}
#log .gold{color:var(--gold)}
#log .orange{color:var(--orange)}
#log .red{color:var(--red)}
.q-line{font-family:var(--serif);color:var(--gold);font-size:13px;letter-spacing:2px;margin:12px 0 6px;border-bottom:1px dashed var(--line);padding-bottom:3px}
.q-card{border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:7px;background:#fff;display:flex;justify-content:space-between;gap:8px;align-items:center}
.q-card.done{opacity:.5}
.q-card.doing{border-color:var(--gold);background:#fffdf5}
.q-card.locked{opacity:.6;background:#fbfbfd}
.q-main{flex:1;min-width:0}
.q-name{font-family:var(--serif);font-size:13px;color:var(--txt)}
.q-desc{font-size:11px;color:var(--mut);margin-top:2px}
.q-meta{font-size:10.5px;margin-top:3px;color:var(--mut)}
.q-meta .rw{color:var(--green)}
.q-meta .tm{color:#5a8fd4}
.q-btn{flex-shrink:0;font-size:11px;padding:4px 12px;border-radius:7px;border:1px solid var(--gold);background:#fffaf0;color:var(--gold);cursor:pointer;font-family:inherit}
.q-btn:disabled{opacity:.45;cursor:not-allowed}
.q-prog{height:4px;background:#f0f1f4;border-radius:3px;overflow:hidden;margin-top:5px}
.q-prog i{display:block;height:100%;background:linear-gradient(90deg,#c9a045,#e8c96a);border-radius:3px}
/* Lower-panel generic card (beast/trade/auction reuse, replaces popup & action bar) */
.pa-intro{font-size:11px;color:var(--mut);margin-bottom:4px}
.pa-intro .pr{color:var(--gold)}
.pa-card{border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:7px;background:#fff;display:flex;justify-content:space-between;gap:8px;align-items:center}
.pa-card.hl{border-color:var(--gold);background:#fffdf5}
.pa-main{flex:1;min-width:0}
.pa-name{font-family:var(--serif);font-size:13px;color:var(--txt)}
.pa-name .stars{color:var(--orange);letter-spacing:1px}   /* v1.4.0-3：副本星级显示橙色 */
.pa-desc{font-size:11px;color:var(--mut);margin-top:2px}
.pa-tags{font-size:11px;color:#a9762f;margin-top:3px;font-family:var(--sans)}
.pa-meta{font-size:10.5px;margin-top:3px;color:var(--mut)}
.pa-meta .pr{color:var(--gold)}
.pa-btns{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.pa-btn{font-size:11px;padding:4px 11px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--txt2);cursor:pointer;font-family:inherit;white-space:nowrap}
.pa-btn:hover{border-color:var(--gold);color:var(--gold)}
.pa-btn.primary{background:var(--gold);color:#fff;border-color:var(--gold)}
.pa-btn.primary:hover{background:var(--gold2);color:#fff}
.pa-btn:disabled{opacity:.45;cursor:not-allowed}
/* Trade material card grid (4 per row) */
.mat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 12px}
.mat-card{border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px 6px 9px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.mat-card .mn{font-family:var(--serif);font-size:12px;color:var(--txt);line-height:1.25;min-height:30px;display:flex;align-items:center;justify-content:center}
.mat-card .mi{width:100%;display:flex;justify-content:center;align-items:center;padding:2px 0}
.mat-card .mi svg{width:48px;height:48px;display:block}
.mat-card .mb{width:100%}
.mat-card .mb .pa-btn{width:100%;font-size:11px;padding:5px 0;border-radius:7px}
.zf-card{cursor:pointer;transition:.15s}
.zf-card:hover{border-color:var(--gold);box-shadow:0 3px 10px rgba(0,0,0,.08);transform:translateY(-1px)}
.zf-card.dis{cursor:default;opacity:.55}
.zf-sub{font-size:10.5px;color:var(--txt2);line-height:1.3;text-align:center;min-height:26px;display:flex;align-items:center;justify-content:center;padding:0 2px}
.zf-on{font-size:10px;color:#fff;background:var(--gold);border-radius:6px;padding:1px 7px;margin-top:2px}
/* ===== Formation / Spell action popup ===== */
#zf-bg,#sp-bg,#eq-bg,#mat-bg{position:fixed;inset:0;z-index:1000;background:rgba(60,50,40,.45);display:none;align-items:center;justify-content:center}
#zf-bg.show,#sp-bg.show,#eq-bg.show,#mat-bg.show{display:flex}
/* v1.3.1-4：材料详情弹窗层级需盖过 confirm-bg(1300)——突破/渡劫/炼丹确认弹窗内点击材料查看时不被遮挡 */
#mat-bg{z-index:1400}
.zf-pop{width:390px;max-width:90vw;background:#faf6ef;border-radius:16px;padding:24px 20px 16px;box-shadow:0 10px 40px rgba(0,0,0,.25);text-align:center;font-family:var(--sans);animation:confirmIn .18s ease-out}
.zf-ttl{font-family:var(--serif);font-size:18px;letter-spacing:1px;margin-bottom:12px}
.zf-info{font-size:13px;color:var(--txt2);line-height:1.7;margin-bottom:6px;white-space:pre-line}
.zf-info2{font-size:12px;color:var(--mut);line-height:1.6;margin-bottom:16px;white-space:pre-line}
.zf-actions{display:flex;gap:8px;justify-content:center;align-items:stretch;flex-wrap:wrap}
.zf-actions button{padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:13px;line-height:1.3;cursor:pointer;font-family:var(--sans);transition:.15s;flex:1 1 auto;min-width:0;white-space:nowrap}
.zf-actions .zf-up{background:var(--gold);color:#fff;border-color:var(--gold)}
.zf-actions .zf-up:hover:not(:disabled){background:var(--gold2)}
.zf-actions .zf-up.zf-up-noaff{background:#cfcfd4;color:#fff;border-color:#cfcfd4;cursor:not-allowed}
.zf-actions .zf-up.zf-up-noaff:hover{background:#cfcfd4}
.zf-actions .zf-use{border-color:#3a8ee6;color:#3a8ee6}
.zf-actions .zf-use:hover:not(:disabled){background:#eaf2fc}
.zf-actions .zf-sell{border-color:#3eb873;color:#3eb873}
.zf-actions .zf-sell:hover:not(:disabled){background:#e8f6ee}
.zf-actions button:disabled{opacity:.55;cursor:not-allowed}
/* v1.3.7：批量出售按钮（独立成行，光亮橙色） */
.zf-sell-bulk{display:block;width:100%;margin-top:8px;padding:11px 0;border-radius:10px;border:none;background:linear-gradient(135deg,#ffa84d,#ff7a1a);color:#fff;font-size:14px;font-weight:700;letter-spacing:2px;cursor:pointer;box-shadow:0 3px 8px rgba(255,140,30,.35);transition:.15s;text-shadow:0 1px 2px rgba(180,80,0,.3)}
.zf-sell-bulk:hover{filter:brightness(1.08);box-shadow:0 4px 12px rgba(255,140,30,.5)}
.zf-sell-bulk:active{transform:translateY(1px)}
/* v1.3.7：批量出售品质选择弹窗 */
.sell-bulk-bg{position:fixed;inset:0;z-index:1100;background:rgba(60,50,40,.45);display:none;align-items:center;justify-content:center}
.sell-bulk-bg.show{display:flex}
.sell-bulk-pop{width:380px;max-width:92vw;background:#faf6ef;border-radius:16px;padding:20px 18px 14px;box-shadow:0 10px 40px rgba(0,0,0,.25);font-family:var(--sans);animation:confirmIn .18s ease-out}
.sell-bulk-ttl{font-family:var(--serif);font-size:17px;color:var(--gold);letter-spacing:3px;text-align:center;margin-bottom:8px}
.sell-bulk-desc{font-size:12px;color:var(--mut);line-height:1.6;margin-bottom:12px;text-align:center}
.sell-bulk-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.sell-bulk-item{display:flex;align-items:center;gap:6px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:.15s;font-size:13px}
.sell-bulk-item.checked{border-color:var(--gold);background:#fffdf5;box-shadow:inset 0 0 0 1px var(--gold)}
.sell-bulk-item input{width:16px;height:16px;accent-color:var(--gold);margin:0}
.sell-bulk-item .sb-name{font-weight:600}
.sell-bulk-item .sb-cnt{color:var(--mut);font-size:11px;margin-left:auto}
.sell-bulk-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.sell-bulk-stat{flex:1;font-size:12px;color:var(--txt2)}
.sell-bulk-cancel{padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:13px;cursor:pointer}
.sell-bulk-cancel:hover{border-color:var(--mut);color:var(--txt)}
.sell-bulk-confirm{padding:7px 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#ffa84d,#ff7a1a);color:#fff;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:1px}
.sell-bulk-confirm:hover{filter:brightness(1.08)}
.sell-bulk-confirm:disabled{opacity:.4;cursor:not-allowed}
/* v1.5.8：灵兽一键放生（放生=删除，红色警示风格） */
.beast-release-bg{position:fixed;inset:0;z-index:1100;background:rgba(60,30,30,.45);display:none;align-items:center;justify-content:center}
.beast-release-bg.show{display:flex}
.beast-release-pop{width:380px;max-width:92vw;background:#faf6ef;border-radius:16px;padding:20px 18px 14px;box-shadow:0 10px 40px rgba(0,0,0,.25);font-family:var(--sans);animation:confirmIn .18s ease-out}
.beast-release-ttl{font-family:var(--serif);font-size:17px;color:var(--red);letter-spacing:3px;text-align:center;margin-bottom:8px}
.beast-release-desc{font-size:12px;color:var(--mut);line-height:1.6;margin-bottom:12px;text-align:center}
.beast-release-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.beast-release-item{display:flex;align-items:center;gap:6px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:.15s;font-size:13px}
.beast-release-item.checked{border-color:var(--red);background:#fff5f5;box-shadow:inset 0 0 0 1px var(--red)}
.beast-release-item input{width:16px;height:16px;accent-color:var(--red);margin:0}
.beast-release-item .br-name{font-weight:600;color:var(--txt)}
.beast-release-item .br-cnt{color:var(--mut);font-size:11px;margin-left:auto}
.beast-release-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.beast-release-stat{flex:1;font-size:12px;color:var(--txt2)}
.beast-release-cancel{padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:13px;cursor:pointer}
.beast-release-cancel:hover{border-color:var(--mut);color:var(--txt)}
.beast-release-confirm{padding:7px 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#ff6b6b,#e23b3b);color:#fff;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:1px}
.beast-release-confirm:hover{filter:brightness(1.08)}
.beast-release-confirm:disabled{opacity:.4;cursor:not-allowed}
.zf-cancel{margin-top:12px}
.zf-cancel button{padding:6px 18px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:12.5px;cursor:pointer;font-family:var(--sans)}
.zf-cancel button:hover{border-color:var(--mut);color:var(--txt)}
/* Heart-method (心法) banner in 法术 panel */
.xf-banner{border:1px solid var(--line);border-left-width:4px;border-radius:10px;background:#fffdf6;padding:10px 12px;margin-bottom:10px}
.xf-banner.xf-empty{background:#fbfbfd;border-left-color:var(--dim);color:var(--mut);font-size:12px}
.xf-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xf-name{font-family:var(--serif);font-size:15px;letter-spacing:1px}
.xf-grade{font-size:10px;color:#fff;padding:1px 7px;border-radius:5px;font-family:var(--sans)}
.xf-lv{font-size:12px;color:var(--mut)}
.xf-bonus{font-size:12px;color:var(--green);margin-top:4px}
.xf-actions{margin-top:8px}
.xf-up{font-size:12px;padding:3px 12px;border:1px solid var(--gold);border-radius:7px;background:#fffaf0;color:var(--gold);cursor:pointer;font-family:inherit}
.xf-up:hover{background:var(--gold);color:#fff}
.xf-max{font-size:12px;color:var(--mut)}
.pa-prog{height:4px;background:#f0f1f4;border-radius:3px;overflow:hidden;margin-top:5px}
.pa-prog i{display:block;height:100%;background:linear-gradient(90deg,#3eb873,#5fcf8a);border-radius:3px}
.pa-feedback{font-size:12px;padding:6px 9px;border-radius:7px;margin-bottom:7px;background:#f6f7fa}
.pa-feedback.good{color:var(--green);background:#f0fbf4}
.pa-feedback.bad{color:var(--red);background:#fdf0f0}
.pa-back{font-size:12px;color:var(--blue);cursor:pointer;margin-bottom:8px;display:inline-block}
/* Exploration animation overlay */
/* ===== Exploration popup: zen ink-wash style ===== */
#explore-fx{position:fixed;inset:0;z-index:200;background:rgba(60,50,40,.45);display:none;align-items:center;justify-content:center}
#explore-fx.show{display:flex}
#explore-fx.done .ex-walker,#explore-fx.done .ex-hero-img{animation-play-state:paused}
#explore-fx.done .ex-particle{animation-play-state:paused}
#explore-fx.done .ex-glow{animation-play-state:paused}
/* Dungeon (副本) popup: reuses exploration popup styling */
#fuben-fx{position:fixed;inset:0;z-index:200;background:rgba(60,40,30,.5);display:none;align-items:center;justify-content:center}
#fuben-fx.show{display:flex}
#fuben-fx.done .ex-walker,#fuben-fx.done .ex-hero-img{animation-play-state:paused}
#fuben-fx.done .ex-particle{animation-play-state:paused}
#fuben-fx.done .ex-glow{animation-play-state:paused}
.ex-popup{width:min(340px,88vw);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#faf6ef 0%,#f2ebe0 100%);box-shadow:0 24px 70px rgba(0,0,0,.35),0 0 0 1px rgba(180,160,120,.15);position:relative}
.ex-scene{position:relative;width:100%;height:220px;overflow:hidden;background:linear-gradient(180deg,#faf6ef 0%,#f0e8da 60%,#e8dfd0 100%)}
/* Sky halo */
.ex-sky{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(255,250,235,.9) 0%,transparent 65%)}
/* Ink mountains - three layers */
.ex-mtn{position:absolute;left:-10%;right:-10%;bottom:18%}
.ex-mtn1{height:70px;background:linear-gradient(180deg,#dcd3c3,#c9bcA7);clip-path:polygon(0 100%,8% 55%,20% 82%,35% 35%,50% 75%,65% 42%,80% 78%,92% 50%,100% 100%);opacity:.55}
.ex-mtn2{height:58px;background:linear-gradient(180deg,#cfC4B0,#bfa98f);clip-path:polygon(0 100%,10% 62%,25% 85%,40% 48%,58% 72%,72% 38%,88% 68%,100% 55%,100% 100%);opacity:.7;bottom:14%;animation:exMtnBreath 4s ease-in-out infinite}
.ex-mtn3{height:46px;background:linear-gradient(180deg,#c0b29a,#a89a7e);clip-path:polygon(0 100%,12% 70%,28% 90%,45% 58%,62% 80%,78% 52%,95% 75%,100% 62%,100% 100%);opacity:.85;bottom:6%}
/* Ground */
.ex-ground{position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(180deg,#b5a682,#9e8f6e);border-radius:50% 50% 0 0}
/* Figure silhouette - round head + body, meditation pose */
.ex-hero-wrap{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);text-align:center;z-index:3}
.ex-glow{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:80px;height:44px;border-radius:50%;background:radial-gradient(ellipse,rgba(200,180,140,.3),transparent 70%);animation:exGlowPulse 2.2s ease-in-out infinite}
.ex-hero-img{position:relative;width:110px;height:auto;margin:0 auto;animation:exFloat 2.4s ease-in-out infinite;filter:drop-shadow(0 2px 5px rgba(0,0,0,.18));object-fit:contain;display:block}
.ex-hero-img.med-hero{animation:medBreathe 3s ease-in-out infinite}
/* 旧剪影样式保留，防止其他地方引用 */
/* Floating text */
.ex-word{position:absolute;font-family:var(--serif);font-size:13px;color:rgba(160,145,115,.35);letter-spacing:4px;pointer-events:none}
.ex-word-dao{top:18%;left:22%;animation:exWordFloat 5s ease-in-out infinite}
.ex-word-qi{top:24%;right:20%;animation:exWordFloat 5s ease-in-out infinite 1.5s}
/* Spirit particles */
.ex-particle{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(180,160,120,.35);opacity:0;animation:exParticleRise 3s ease-in-out infinite}
.ex-particle:nth-child(1){left:25%;bottom:25%;animation-delay:.2s}
.ex-particle:nth-child(2){left:68%;bottom:30%;animation-delay:1.1s}
.ex-particle:nth-child(3){left:42%;bottom:20%;animation-delay:2s}
.ex-particle:nth-child(4){left:78%;bottom:22%;animation-delay:.7s}
.ex-particle:nth-child(5){left:15%;bottom:28%;animation-delay:1.8s}
/* Title */
.ex-title{text-align:center;padding:14px 0 4px;font-family:var(--serif);color:#8a7d66;font-size:15px;letter-spacing:3px}
/* Result toast */
.ex-result{margin:0 16px 14px;padding:12px 16px;border-radius:10px;background:rgba(255,255,255,.92);color:var(--txt);font-size:14px;text-align:center;opacity:0;transform:translateY(10px) scale(.94);transition:opacity .45s,transform .45s;box-shadow:0 6px 20px rgba(0,0,0,.1);font-family:var(--sans);line-height:1.5}
.ex-result.show{transform:translateY(0) scale(1)}
.ex-result.battle{color:var(--red);background:rgba(255,245,245,.95)}
.ex-result.good{color:var(--green);background:rgba(245,255,245,.95)}
/* Button */
.ex-close{text-align:center;padding:0 0 18px;display:none}
.ex-close button{padding:8px 30px;border-radius:10px;border:none;background:linear-gradient(135deg,#c9a045,#dbb86a);color:#fff;font-size:14px;cursor:pointer;font-family:var(--sans);box-shadow:0 4px 14px rgba(201,160,69,.35);transition:background .2s,transform .1s}
.ex-close button:active{transform:scale(.96)}

@keyframes exMtnBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
@keyframes exFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes exGlowPulse{0%,100%{opacity:.5;transform:translateX(-50%) scale(1)}50%{opacity:.9;transform:translateX(-50%) scale(1.12)}}
@keyframes exWordFloat{0%,100%{transform:translateY(0) translateX(0);opacity:.3}50%{transform:translateY(-6px) translateX(3px);opacity:.5}}
@keyframes exParticleRise{0%{opacity:0;transform:translateY(0) scale(.5)}30%{opacity:.7;transform:translateY(-18px) scale(1)}100%{opacity:0;transform:translateY(-50px) scale(.3)}}
/* ===== Meditation popup ===== */
#med-fx{position:fixed;inset:0;z-index:200;background:rgba(60,50,40,.45);display:none;align-items:center;justify-content:center}
#med-fx.show{display:flex}
#med-fx.done .ex-walker,#med-fx.done .ex-hero-img{animation-play-state:paused}
#med-fx.done .ex-particle{animation-play-state:paused}
.med-hero{animation:medBreathe 3s ease-in-out infinite !important}
@keyframes medBreathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}
.med-timer{text-align:center;padding:10px 0 6px;font-family:'Courier New',monospace;font-size:28px;color:#8a7d66;font-weight:bold;letter-spacing:4px}
.med-actions{text-align:center;padding:4px 16px 10px}
.med-cancel-btn{padding:8px 26px;border-radius:9px;border:1px solid #c98b8b;background:#faf6ef;color:#b95555;font-size:13.5px;cursor:pointer;font-family:var(--sans);transition:.15s}
.med-cancel-btn:hover{background:#f7e9e9;border-color:#a85f5f;color:#a83232}

#actions{display:flex;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid var(--line);flex-wrap:wrap;flex-shrink:0}
.act{padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:13.5px;cursor:pointer;font-family:var(--sans);transition:.15s;white-space:nowrap}
.act:hover{border-color:var(--gold);color:var(--gold)}
.act.primary{background:var(--gold);color:#fff;border-color:var(--gold)}
.act.primary:hover{background:var(--gold2);color:#fff}
.act.danger:hover{border-color:var(--red);color:var(--red)}
.act:disabled{opacity:.4;cursor:not-allowed}

/* God-mode panel (居中弹出，按钮更多，支持滚动) */
#god-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:340px;max-width:92vw;max-height:86vh;overflow-y:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.25);z-index:600;padding:18px 16px 16px;display:none}
#god-panel::-webkit-scrollbar{width:5px}
#god-panel::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px}
#god-panel .g-title{font-family:var(--serif);font-size:16px;color:var(--purple);letter-spacing:2px;margin-bottom:4px;text-align:center}
#god-panel .g-sub{font-family:var(--serif);font-size:11px;color:var(--mut);text-align:center;margin-bottom:12px;letter-spacing:1px}
#god-panel .g-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
#god-panel .g-btn{padding:9px 6px;border-radius:8px;border:1px solid var(--line);background:#fbfbfd;color:var(--txt2);font-size:12px;cursor:pointer;font-family:var(--sans);transition:.15s;line-height:1.4}
#god-panel .g-btn:hover{border-color:var(--purple);color:var(--purple);background:#faf5ff}
#god-panel .g-btn.wide{grid-column:1/3;background:var(--purple);color:#fff;border-color:var(--purple)}
#god-panel .g-btn.wide:hover{background:#7c3aed}

#drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .22s;z-index:40}
#drawer-bg.show{opacity:1;pointer-events:auto}
#drawer{position:fixed;top:0;left:0;bottom:0;width:340px;max-width:88vw;background:#fff;z-index:50;transform:translateX(-105%);transition:transform .24s cubic-bezier(.2,.7,.3,1);overflow-y:auto;padding:18px 18px 24px;box-shadow:4px 0 20px rgba(0,0,0,.1)}
#drawer.show{transform:translateX(0)}
#drawer::-webkit-scrollbar{width:5px}
#drawer::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px}
.d-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.d-head .title{font-family:var(--serif);font-size:18px;color:var(--txt);letter-spacing:3px;font-weight:500}
.d-head .close{cursor:pointer;color:var(--mut);font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.d-head .close:hover{background:var(--bg);color:var(--txt)}
.d-id{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.d-ava{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%, #fff7d8, #f0e3b8);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:26px;color:var(--gold);flex-shrink:0}
.d-name-wrap{display:flex;flex-direction:column;gap:1px;flex:1;justify-content:center}
.d-name{font-family:var(--serif);font-size:20px;color:var(--txt);letter-spacing:2px}
.d-tag{font-size:11px;color:var(--green);padding:1px 6px;border:1px solid var(--green);border-radius:4px}
.d-life{font-size:11px;color:var(--txt2)}
.d-time{font-size:11px;color:var(--mut);margin-top:1px;white-space:nowrap}
.d-sub{font-size:13px;color:var(--txt2);margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.d-realm{font-weight:500;color:var(--txt);letter-spacing:1px}
.d-sect{font-size:12px;font-weight:600;color:#fff;padding:1px 9px;border-radius:8px;background:linear-gradient(180deg,#5a4bb0,#3d3488);border:1px solid #8a7ae0}
/* v1.3.1：宗门徽章（抽屉/排行榜共用），背景/前景色由 JS 按宗门 inline 注入 */
.sect-badge-tag{font-size:11px;font-weight:600;padding:2px 9px;border-radius:8px;border:1px solid;vertical-align:middle;letter-spacing:0;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.d-link{font-size:11px;color:var(--gold);background:none;border:1px solid var(--gold);border-radius:4px;padding:2px 7px;cursor:pointer;flex-shrink:0;white-space:nowrap}
.d-link:hover{background:#fffaf0}
/* 抽屉内人物名字旁的音乐开关(从首页右下角迁移而来) */
.d-snd{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fbfbfd;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;line-height:1;padding:0}
.d-snd:hover{border-color:var(--gold);background:#fffaf0}
.d-snd.muted{opacity:.55}
#drawer h3{font-size:13px;color:var(--txt);letter-spacing:2px;margin:14px 0 8px;font-weight:500}
.cult-row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px}
.cult-row .lbl{color:var(--mut)}
.cult-row .val{color:var(--green);font-weight:500}
.bar2{height:8px;background:#f0f1f4;border-radius:4px;overflow:hidden;margin-bottom:12px}
.bar2>i{display:block;height:100%;background:linear-gradient(90deg,#3eb873,#5fcf8a);border-radius:4px;transition:width .3s}
.attr{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #f3f4f7;font-size:13.5px}
.attr:last-child{border-bottom:none}
.attr-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;margin-bottom:4px}
.attr-grid .attr:nth-child(even){padding-left:2px}
.attr-grid .attr:nth-child(odd){padding-right:2px}
.attr .k{color:var(--mut)}
.attr .v{color:var(--txt);font-weight:500}
.attr .v.orange{color:var(--orange)}
.attr .v.blue{color:var(--blue)}
.attr .v.green{color:var(--green)}
.attr .v.red{color:var(--red)}
.attr .v.gold{color:var(--gold)}
.attr .v.purple{color:var(--purple)}
/* Equipment & save (sidebar bottom) */
.d-equip{margin-top:4px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.d-equip .row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;border-bottom:1px solid var(--line)}
.d-equip .row:last-child{border-bottom:none}
.d-equip .row .lbl{color:var(--mut)}
.d-equip .row .v{color:var(--purple);font-weight:500}
.d-equip .row .v.empty{color:var(--dim);font-weight:400}
.attr.d-ver{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);font-size:12px}
.attr.d-ver .v{font-family:monospace;letter-spacing:1px}
.d-save{display:flex;gap:8px;margin-top:10px}
.d-btn{flex:1;padding:10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:13px;cursor:pointer;font-family:var(--sans);transition:.15s;text-align:center}
.d-btn:hover{border-color:var(--gold);color:var(--gold)}
.d-btn.primary{background:var(--gold);color:#fff;border-color:var(--gold)}
.d-btn.primary:hover{background:var(--gold2);border-color:var(--gold2);color:#fff}
.d-btn.danger{border-color:#f2c9c9;color:var(--red)}
.d-btn.danger:hover{border-color:var(--red);color:var(--red)}

/* Popup */
#modal-bg{position:fixed;inset:0;width:100vw;height:100vh;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;z-index:100}
#modal-bg.show{display:flex}
#confirm-bg{position:fixed;inset:0;width:100vw;height:100vh;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:1300}
#confirm-bg.show{display:flex}
#confirm-box{background:#fff;border-radius:14px;padding:20px;width:80vw;max-width:320px;box-shadow:var(--shadow2);text-align:center}
#confirm-box.confirm-wide{max-width:560px;padding:20px 22px}
#confirm-box.confirm-wide #confirm-msg{max-height:66vh;overflow-y:auto}
#confirm-msg{font-size:14px;color:var(--txt);line-height:1.7;margin-bottom:16px}

/* v1.4.0-test19：世界/好友弹窗（body 级，fixed 全屏，不受 #game-stage 缩放约束） */
.pop-bg{
  position:fixed; inset:0; width:100vw; height:100vh;
  background:rgba(0,0,0,.55);
  display:none; align-items:center; justify-content:center;
  z-index:300;
  padding:14px;
}
.pop-bg.show{display:flex}
.pop-window{
  width:100%; max-width:520px; max-height:88vh;
  background:#fff; border-radius:16px;
  display:flex; flex-direction:column;
  overflow:hidden; box-shadow:var(--shadow2);
}
.pop-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; background:var(--gold); color:#fff;
  flex-shrink:0;
}
.pop-head h3{font-family:var(--serif); font-size:17px; letter-spacing:2px; margin:0}
.pop-close{
  width:32px; height:32px; border-radius:50%; border:none;
  background:rgba(255,255,255,.25); color:#fff; font-size:20px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.pop-body{
  flex:1; min-height:0; overflow-y:auto; padding:14px;
  -webkit-overflow-scrolling:touch;
  font-size:13px; line-height:1.55;
}
/* 好友弹窗两栏：左列表 + 右聊天框（点名字右栏就地弹聊天） */
.friend-pop-win{ width:100%; max-width:680px; height:82vh; max-height:82vh; }
/* 好友弹窗：固定窗口高度，避免「有/无聊天记录」时窗口忽长忽短；
   左列表与右聊天框各自内部滚动，列表项选中高亮 + 在线/离线配色 */
.pop-msg.friend-sel{ background:#fbf3df; box-shadow: inset 3px 0 0 var(--gold); }
.fr-name.on{ color:#2e9e4f; }   /* 在线：绿色 */
.fr-name.off{ color:#9a948a; }  /* 离线：灰色 */
.friend-pop-cols{ display:flex; flex:1; min-height:0; }
.friend-pop-list{ flex:1 1 50%; min-width:0; border-right:1px solid var(--line); }
.friend-pop-list.fpm-active{ flex:1 1 42%; }
.friend-chat-pane{ flex:1 1 58%; min-width:0; display:none; flex-direction:column; background:#fafafa; }
.friend-chat-pane .cs-pm-head{ padding:10px 12px; border-bottom:1px solid var(--line); background:#fff; }
.friend-chat-pane .cs-pm-list{ flex:1; min-height:0; overflow-y:auto; padding:10px 12px; }
.friend-chat-pane .cs-input-row{ padding:8px 10px; border-top:1px solid var(--line); display:flex; gap:8px; background:#fff; }
.friend-chat-pane .cs-input{ flex:1; height:34px; padding:0 10px; border:1px solid var(--line); border-radius:16px; outline:none; }
.friend-chat-pane .cs-send{ padding:0 16px; border:none; border-radius:16px; background:linear-gradient(180deg,#52c781,#2d8a55); color:#000; font-weight:700; cursor:pointer; }
.pop-input-row{
  display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line); flex-shrink:0;
}
.pop-input{
  flex:1; height:38px; padding:0 12px; border:1px solid var(--line); border-radius:8px;
  font-size:14px; outline:none;
}
.pop-send,.pop-btn{
  height:38px; padding:0 16px; border:none; border-radius:8px;
  background:var(--gold); color:#fff; font-size:14px; cursor:pointer;
}
.pop-btn{ background:#f6f7f9; color:var(--txt); border:1px solid var(--line); position:relative; }
.pop-foot{ display:flex; gap:10px; padding:12px 14px; border-top:1px solid var(--line); flex-shrink:0; }
.pop-divider{
  text-align:center; font-size:12px; color:var(--mut); padding:8px 0; margin:6px 0;
  border-bottom:1px dashed var(--line);
}
.pop-msg{ margin-bottom:10px; }
.pop-msg .pop-name{ color:var(--gold); font-weight:600; }
.pop-msg.pop-sys .pop-name{ color:var(--green); }
.pop-msg.pop-mine{ text-align:left; }
.pop-msg.pop-mine .pop-name{ color:var(--blue); }
.pop-empty{ text-align:center; color:var(--mut); padding:30px 0; }
.confirm-btns{display:flex;gap:8px}
.cbtn{flex:1;padding:10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:14px;cursor:pointer;font-family:var(--sans);transition:.15s}
.cbtn:hover{border-color:var(--gold)}
.cbtn.ok-danger{background:var(--red);color:#fff;border-color:var(--red)}
.cbtn.ok-primary{background:var(--gold);color:#fff;border-color:var(--gold)}
#modal{background:#fff;border-radius:14px;max-width:520px;width:94vw;max-height:88vh;overflow-y:auto;padding:20px;box-shadow:var(--shadow2);position:relative}
#modal.has-bg{background:transparent;color:#fff}
.modal-win-bg{position:absolute;inset:0;border-radius:14px;background-position:center;background-size:cover;background-repeat:no-repeat;z-index:-1}
#modal h2{font-family:var(--serif);color:var(--gold);letter-spacing:3px;font-size:18px;font-weight:500;margin:0;text-align:center}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;position:relative;min-height:28px}
/* v1.4.0-test25：背包弹窗头部 sticky，关闭 X 固定窗口右上角不随内容滚动 */
#modal.bag-modal{padding-top:0}
#modal.bag-modal .modal-head{position:sticky;top:0;z-index:6;background:#fff;margin:0 -20px 14px;padding:16px 20px 12px;border-bottom:1px solid var(--line)}
.modal-head .modal-close{cursor:pointer;color:var(--mut);font-size:20px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s;margin-right:-4px}
.modal-head .modal-close:hover{background:var(--bg);color:var(--txt)}
#modal::-webkit-scrollbar{width:6px}
#modal::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px}
.ladder{display:flex;flex-direction:column;gap:5px}
.ladder .r{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;border:1px solid var(--line);font-size:12.5px}
.ladder .r.cur{border-color:var(--gold);background:#fffaf0}
.ladder .r .nm{font-family:var(--serif);font-size:14px;color:var(--gold);min-width:50px}
.ladder .r .sub{color:var(--mut);flex:1;font-size:11px}
.ladder .r .life{color:var(--green);font-size:11px}
.ladder .r.done .nm{color:var(--green)}

/* ===== 副本专属界面（固定 480px 居中窗口，与首页/渡劫一致） ===== */
#fuben-screen{display:none;position:fixed;inset:0;z-index:720;flex-direction:column;background:#ffffff;max-width:480px;margin:0 auto;left:50%;transform:translateX(-50%);border-radius:12px;box-shadow:0 0 0 100vmax rgba(10,14,18,.92),0 20px 60px rgba(0,0,0,.5);overflow:hidden}
#fuben-screen.show{display:flex}
#fuben-bar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line);min-height:46px;padding:0 14px}
#fuben-bar-title{font-family:var(--serif);font-size:16px;color:var(--gold);letter-spacing:3px;font-weight:500}
#fuben-exit{padding:7px 15px;border-radius:8px;border:1px solid var(--red);background:#fff;color:var(--red);font-size:12.5px;cursor:pointer;font-family:var(--sans);letter-spacing:1px;transition:.15s;flex-shrink:0}
#fuben-exit:hover{background:#fff5f5;border-color:var(--red)}
#fuben-battle{flex:1;position:relative;display:flex;min-height:0;overflow:auto;padding:6px}
/* 副本战斗已取消下部分战斗详情/进度区，整块彻底移除 */
#fuben-dock{display:none !important;height:0 !important;overflow:hidden !important;flex:0 0 auto !important}
#fuben-progress{flex-shrink:0;padding:6px 14px;border-bottom:1px solid var(--line)}
#fuben-log{flex:1;min-height:0;overflow-y:auto;padding:10px 14px;line-height:1.8;font-size:13.5px;font-family:var(--serif)}
#fuben-log .good{color:var(--green)} #fuben-log .bad{color:var(--red)} #fuben-log .warn{color:var(--orange)} #fuben-log .realm{color:var(--gold)} #fuben-log .info{color:var(--txt2)} #fuben-log .battle{color:var(--purple)}
.fb-prog-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px}
.fb-prog-tip{color:var(--mut);font-size:11px}
.fb-leave-msg{font-size:13.5px;line-height:1.85;color:var(--txt);margin:6px 0 14px}
/* 副本奖励清算窗口（复用在 #modal 内） */
.fsettle-title{font-family:var(--serif);font-size:18px;letter-spacing:2px;text-align:center;margin-bottom:12px;font-weight:500}
.fsettle-title.good{color:var(--green)}
.fsettle-title.bad{color:var(--red)}
/* 奖励清算：每个奖品一张小卡片（上方分类标签，下方名字+数量） */
.fsettle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:14px;max-height:50vh;overflow-y:auto;padding:2px}
.fsettle-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fffdf8,#fff3df);padding:14px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.04);min-height:64px}
.fsettle-card .lbl{font-family:var(--serif);font-size:11.5px;color:var(--mut);letter-spacing:2px;margin-bottom:8px}
.fsettle-card .val{font-size:14px;font-weight:600;word-break:break-all;line-height:1.4}
.fsettle-card .val.gold{color:var(--gold)} .fsettle-card .val.green{color:var(--green)} .fsettle-card .val.red{color:var(--red)}
.fsettle-empty{text-align:center;color:var(--mut);font-size:13px;padding:14px 0;margin-bottom:12px}
/* 战斗场景嵌入副本上半屏：上下结构（敌上 / ⚔ / 人物中-灵兽两侧） */
#battle-scene.dungeon{position:relative;inset:auto;z-index:auto;background:transparent;display:flex;padding:4px;align-items:center;justify-content:center;width:100%}
#battle-scene.dungeon .battle-modal{width:100%;max-width:560px;max-height:none;box-shadow:none;background:transparent;padding:0 0 20px;margin:0 auto;position:relative}
#battle-scene.dungeon .battle-grid{flex-direction:column;justify-content:flex-start;align-items:center;gap:5px}
#battle-scene.dungeon #battle-speed{right:6px;bottom:0}
/* ⚔ 符号上下排版时改为水平居中、缩小 */
#battle-scene.dungeon .vs{flex:1 1 44px;min-height:28px;max-height:140px;margin:0;align-self:stretch;font-size:14px;color:var(--mut);opacity:.7}
/* 敌怪区：grid 3列 × 2排（v1.5.9-22 固定6槽），空槽占位 */
#battle-scene.dungeon .enemy-side{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px 6px;
  justify-content:center;align-content:flex-start;
}
/* 小怪：缩小以消除滚动 */
#battle-scene.dungeon .enemy-side .enemy-card{
  flex:0 0 auto;width:auto;max-width:72px;margin:2px 3px;
}
#battle-scene.dungeon .enemy-side .enemy-card .e-info{gap:1px}
#battle-scene.dungeon .enemy-side .enemy-card .e-name{font-size:10px}
#battle-scene.dungeon .enemy-side .enemy-card .e-realm{font-size:8px}
#battle-scene.dungeon .enemy-side .enemy-card .e-hpbar{height:9px;max-width:68px}
#battle-scene.dungeon .enemy-side .enemy-card .e-img{height:64px;margin-top:16px}
/* v1.5.9-23：Boss 跟玩家一样大（明显大于小怪 64px） */
#battle-scene.dungeon .enemy-side .boss-card{
  flex:0 0 110px;width:110px;max-width:110px;
}
#battle-scene.dungeon .enemy-side .boss-card .e-name{font-size:13px;color:var(--gold)}
#battle-scene.dungeon .enemy-side .boss-card .e-realm{font-size:9px}
#battle-scene.dungeon .enemy-side .boss-card .e-hpbar{height:11px;max-width:104px}
#battle-scene.dungeon .enemy-side .boss-card .e-img{height:100px;margin-top:36px}
/* 人物居中行：grid 3 栏（灵兽左 / 人物 / 灵兽右） */
#battle-scene.dungeon .battle-mid{
  flex:0 0 auto;width:100%;
  grid-template-columns:1fr auto 1fr;
  gap:6px;
  transform:translateY(4px);
}
#battle-scene.dungeon .battle-mid .player-card{width:106px;max-width:106px}
#battle-scene.dungeon .player-card .p-img{height:100px}
#battle-scene.dungeon .beast-slot .battle-beast{width:100%;max-width:96px}

/* 手机竖屏（≤480px）：卡片更小，敌怪网格收紧 */
@media (max-width:480px){
  #fuben-battle{padding:4px}
  /* #fuben-dock 已整块移除，不再覆盖 */
  #fuben-bar-title{font-size:14px;letter-spacing:2px}
  #battle-scene.dungeon{padding:3px}
  #battle-scene.dungeon .battle-modal{max-width:none}
  #battle-scene.dungeon .battle-grid{gap:3px}
  #battle-scene.dungeon .battle-mid .player-card{width:90px;max-width:90px}
  #battle-scene.dungeon .player-card .p-img{height:86px}
  #battle-scene.dungeon .beast-slot .battle-beast{max-width:84px}
  #battle-scene.dungeon .enemy-side{gap:3px 4px}
  #battle-scene.dungeon .enemy-side .enemy-card{flex:0 0 62px;width:62px;max-width:62px;margin:1px 2px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-name{font-size:9px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-realm{font-size:7.5px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-img{height:54px;margin-top:14px}
  #battle-scene.dungeon .enemy-side .boss-card{flex:0 0 96px;width:96px;max-width:96px}
  #battle-scene.dungeon .enemy-side .boss-card .e-img{height:86px;margin-top:32px}
}
/* 超窄屏（≤360px）：玩家再窄，敌怪最小列宽 52px */
@media (max-width:360px){
  #battle-scene.dungeon .battle-mid .player-card{width:80px;max-width:80px}
  #battle-scene.dungeon .player-card .p-img{height:74px}
  #battle-scene.dungeon .beast-slot .battle-beast{max-width:72px}
  #battle-scene.dungeon .enemy-side .enemy-card{flex:0 0 52px;width:52px;max-width:52px;margin:1px 2px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-name{font-size:8px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-realm{font-size:7px}
  #battle-scene.dungeon .enemy-side .enemy-card .e-img{height:46px;margin-top:12px}
  #battle-scene.dungeon .enemy-side .boss-card{flex:0 0 82px;width:82px;max-width:82px}
  #battle-scene.dungeon .enemy-side .boss-card .e-img{height:74px;margin-top:28px}
}
/* Bag popup */
.bag-sec-title{font-size:12px;color:var(--mut);margin-bottom:8px;letter-spacing:1px}
.bag-equip-wrap{display:flex;gap:10px;align-items:center;justify-content:center;padding:4px 0 10px;border-bottom:1px dashed var(--line);margin-bottom:10px}
.eq-col{display:flex;flex-direction:column;gap:8px}
.eq-slot{width:64px;border:1px solid var(--line);border-radius:10px;padding:5px 3px;background:#fbfbfd;text-align:center;cursor:pointer;transition:.15s}
.eq-slot:hover{border-color:var(--gold);transform:translateY(-1px)}
.eq-slot.eq-empty{opacity:.55}
.eq-slot.eq-empty:hover{transform:none;border-color:var(--line)}
.eq-icon{width:44px;height:44px;margin:0 auto;line-height:0}
.eq-icon svg{width:100%;height:100%}
.eq-grade{font-size:10px;margin-top:3px;color:var(--dim);white-space:nowrap}
.char-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:100px}
.char-figure{width:96px;height:148px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}
.char-figure svg{width:100%;height:100%}
.char-name{font-family:var(--serif);font-size:13px;color:var(--txt);letter-spacing:2px}
.char-stone{display:inline-flex;align-items:center;gap:3px;font-family:var(--sans);font-size:11px;color:var(--txt2);margin-top:3px;padding:2px 8px;border:1px solid var(--line);border-radius:6px;background:#fafafa}
.char-stone .stone-ico{color:var(--gold);font-size:12px;line-height:1}
.char-stone .stone-num{color:var(--gold);font-weight:600;font-size:12px;line-height:1}
.char-stone .stone-lab{font-size:10px;color:var(--mut);line-height:1}
.bi-tag{display:inline-block;font-size:9px;padding:1px 4px;border-radius:4px;letter-spacing:1px;margin-bottom:2px}
.bi-tag.mat{background:#e8f5ee;color:#2e8f57}
.bi-tag.pill{background:#fdf0e8;color:#d07f1a}
.mat-cell{display:flex;flex-direction:column;align-items:center}
/* Equipment quality colors */
.g0{color:#4a4f57}
.g1{color:#3a9e4f}
.g2{color:#3a7bd4}
.g3{color:#9a5ad4}
.g4{color:#e0912e}
.g5{color:#e0433a}
.g6{background:linear-gradient(90deg,#e0433a,#e0912e,#3a9e4f,#3a7bd4,#9a5ad4);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
/* v1.0.9：仙级三彩（心法/灵兽/阵法共用），与传说撞色。沿用装备仙级 g14 同款红橙绿蓝紫渐变 + 加粗 */
.q-immortal,.q-immortal-tag{background:linear-gradient(90deg,#e0433a,#e0912e,#3a9e4f,#3a7bd4,#9a5ad4);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.q-immortal-tag{display:inline-block;padding:1px 7px;border-radius:5px;background:linear-gradient(90deg,#e0433a,#e0912e,#3a9e4f,#3a7bd4,#9a5ad4);background-clip:padding-box;-webkit-background-clip:padding-box;color:#fff;font-size:11px;box-shadow:0 0 0 1px rgba(224,67,58,.25) inset}
/* 仙级边框/标签底色（淡紫粉） */
.q-immortal-bg{background:linear-gradient(135deg,#fde6e3 0%,#f6e8d7 35%,#e1f1df 60%,#dce8f3 80%,#ece0f5 100%);color:#3a2950}
/* v1.0.9：参战灵兽卡——品阶/名字同字号前置大字体，等级加大加粗后置 */
.ba-q-big{font-size:13px;font-weight:600;margin-right:3px;display:inline-block}
.ba-name-big{font-size:13px;font-weight:600}
.ba-lv-big{font-size:14px;font-weight:800;margin-left:5px;letter-spacing:.5px}
.ba-xinfa{font-size:11px;color:var(--mut);margin:2px 0 4px;line-height:1.4}
.ba-xinfa .x-label{color:var(--mut);margin-right:4px}
.ba-xinfa .x-pct{color:var(--green);font-weight:600;margin-right:6px}
.ba-xinfa .x-pct.zero{color:var(--mut);font-weight:400}
/* v1.1.0：心法继承%标签（移到左上角 ba-meta 行最左，绿色加粗胶囊样式） */
.ba-xinfa-tag{display:inline-block;padding:1px 6px;margin-right:5px;background:#e8f5ec;border:1px solid #b6dfc1;border-radius:8px;vertical-align:middle}
.ba-xinfa-tag .x-pct{color:#2e8f57;font-weight:700;font-size:12px;margin:0}
.ba-xinfa-tag .x-pct.zero{color:var(--mut);font-weight:400}
/* v1.1.0：参战灵兽经验条（基础属性与技能之间） */
.ba-exp{margin-top:4px;display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--mut)}
.ba-exp-t{white-space:nowrap;flex-shrink:0}
.ba-exp-bar{flex:1;height:6px;background:#eee;border-radius:3px;overflow:hidden}
.ba-exp-bar i{display:block;height:100%;background:linear-gradient(90deg,#7ad0a0,#3eb873);border-radius:3px;transition:width .3s}
.bag-head-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px}
.bag-head-row .stone{font-size:13px;color:var(--gold);font-weight:500}
.mats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mat-cell{border:1px solid var(--line);border-radius:8px;padding:12px 4px;text-align:center;cursor:pointer;background:#fbfbfd;transition:.15s}
/* 有货（材料/丹药）：金色浅底高亮，与空格子明显区分 */
.mat-cell.has{background:linear-gradient(180deg,#fffdf4,#fff6dd);border-color:#e6d3a0;box-shadow:inset 0 0 0 1px rgba(233,196,106,.18)}
.mat-cell:hover{border-color:var(--gold)}
.mat-cell .m-name{font-size:12px;color:var(--txt2)}
.mat-cell .m-ct{font-size:11px;color:var(--green);margin-top:3px}
.mat-cell .m-icon.mat-icon-top{margin:0 auto 4px;width:38px;height:38px}   /* v1.3.6-3：背包材料卡片图标垂直靠上 */
.mat-cell .m-icon.mat-icon-top svg{width:38px;height:38px}
.mat-cell .m-ct.mat-ct-bot{font-size:13px;font-weight:600;color:var(--green);margin-top:auto;white-space:nowrap}   /* v1.3.6-3：数字推到底部（去掉 ×） */
.mat-cell.empty{opacity:.3;cursor:default;pointer-events:none}
/* 材料子页：空材料也允许点击（弹窗查看用途 / 获取方法） */
.mats-grid .mat-cell.empty{opacity:.55;cursor:pointer;pointer-events:auto}
.mat-cell .m-icon{width:34px;height:34px;margin:2px 0;display:flex;justify-content:center}
.mat-cell .m-icon svg{width:34px;height:34px;display:block}
/* 背包：图标与数量 ×N 同一行（图标右侧显示数量） */
.mat-cell .mi-row{display:flex;align-items:center;justify-content:center;gap:5px;margin:2px 0}
.mat-cell .mi-row .m-icon{margin:0}
.mat-cell .mi-row .m-ct{margin:0;font-size:13px;font-weight:600;color:var(--green);white-space:nowrap}
/* 丹药使用确认弹窗：图标与放大字号的效果说明 */
.confirm-pill-ico{text-align:center;margin-bottom:4px}
.confirm-pill-ico svg{width:48px;height:48px;display:inline-block}
.pill-detail{margin-top:8px;padding:10px 12px;background:#fdf6e8;border:1px solid #f0e2bd;border-radius:10px;font-size:15px;line-height:1.8;color:var(--txt);text-align:left}
/* 背包丹药批量使用：数量输入框 + 最大按钮 */
.pill-batch{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.pill-batch label{font-size:14px;color:var(--txt2);font-weight:600;white-space:nowrap}
.pill-batch input{width:80px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg2);color:var(--txt);font-size:15px;text-align:center}
.pill-batch input:focus{outline:none;border-color:var(--gold)}
.pill-batch .mini-btn{padding:7px 14px;font-size:13px;font-weight:700;border:1px solid var(--line);background:var(--bg3);color:var(--txt2);border-radius:8px;cursor:pointer}
.pill-batch .mini-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
/* 灵兽经验丹专用窗口：参战灵兽目标卡 */
.beast-exp-target{display:flex;gap:12px;align-items:center;margin:12px 0 4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.be-t-img{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;overflow:hidden;flex:none}
.be-t-img img{width:100%;height:100%;object-fit:cover}
.be-t-main{flex:1;min-width:0}
.be-t-name{font-size:15px;font-weight:700}
.be-t-q{font-size:12px;font-weight:400}
.be-t-badge{display:inline-block;font-size:12px;margin:4px 0;padding:2px 10px;border-radius:12px;font-weight:600}
.be-t-badge.on{color:#fff;background:var(--green)}
.be-t-badge.off{color:var(--mut);background:var(--bg3)}
.be-t-exp{margin-top:2px}
.be-t-exp-bar{height:7px;background:var(--bg3);border-radius:4px;overflow:hidden}
.be-t-exp-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#ffb347)}
.be-t-exp-t{font-size:11px;color:var(--mut);margin-top:3px}
/* 装备库标题行内嵌的「一键出售」按钮（v1.3.7-5 加大+暖色高亮方便点击） */
.bag-sec-title .mini-btn{vertical-align:middle;margin-left:8px;padding:7px 18px;font-size:13px;font-weight:700;border:1.5px solid #c9a045;background:linear-gradient(135deg,#fff5e0,#ffe6b8);color:#8a5a00;letter-spacing:1px;border-radius:10px;box-shadow:0 2px 6px rgba(201,160,69,.18);transition:.15s;cursor:pointer}
.bag-sec-title .mini-btn:hover{background:linear-gradient(135deg,#ffe9c0,#ffd58a);border-color:#a07820;box-shadow:0 3px 8px rgba(201,160,69,.32)}
.bag-sec-title .mini-btn:active{transform:translateY(1px)}
.mat-info{font-size:12px;color:var(--mut);margin-top:10px;padding:9px 10px;background:#fbfbfd;border-radius:8px;min-height:22px;line-height:1.5}
/* ===== 背包材料详情弹窗 ===== */
.mat-detail-icon{display:flex;justify-content:center;margin:4px 0 10px}
.mat-detail-icon svg{width:64px;height:64px;display:block}
.mat-detail-rows{text-align:left;font-size:13px;line-height:1.5}
.md-row{display:flex;gap:8px;padding:7px 2px;border-bottom:1px dashed var(--line)}
.md-row:last-child{border-bottom:none}
.md-k{flex:0 0 38px;color:var(--gold);font-weight:600}
.md-v{flex:1;color:var(--txt2)}
/* ===== 商铺购买材料弹窗 ===== */
.buy-mat-body{padding:10px 14px;text-align:center}
.buy-mat-ico{display:flex;justify-content:center;margin-bottom:4px}
.buy-mat-ico svg{width:56px;height:56px}
.buy-mat-name{font-weight:700;font-size:16px;margin:2px 0 6px}
.buy-mat-use,.buy-mat-get{font-size:12px;color:var(--txt2);margin:2px 0;text-align:left}
.buy-mat-qty{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0 8px}
.buy-mat-qty input{width:66px;text-align:center;font-size:15px;padding:5px 4px;border:1px solid var(--line);border-radius:6px}
.buy-mat-total{text-align:center;font-size:15px;margin-top:4px}
.buy-mat-total b{color:var(--gold)}
.buy-mat-hint{text-align:center;font-size:11px;color:var(--mut);margin-top:4px}
.bag-eq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.bag-eq-grid .eq-slot{width:auto}
.eq-stars{font-size:11px;line-height:1;color:var(--gold);min-height:12px;letter-spacing:1px}
.mini-btn{font-size:11px;padding:2px 8px;border:1px solid var(--gold);border-radius:6px;background:#fffaf0;color:var(--gold);cursor:pointer;font-family:inherit;margin-left:6px}
.fp-sub{font-size:12px;color:var(--mut);margin-bottom:10px;line-height:1.6}
.fp-feedback{font-size:12.5px;padding:9px 12px;border-radius:8px;background:#fbfbfd;margin-bottom:10px;color:var(--txt2);line-height:1.5}
.fp-feedback.good{color:var(--green);background:#f0faf4}
.fp-feedback.bad{color:var(--red);background:#fdf0f0}
.fp-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.fp-btn{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:#fbfbfd;color:var(--txt2);font-size:14px;cursor:pointer;font-family:var(--sans);text-align:left;transition:.15s;display:flex;justify-content:space-between;align-items:center;gap:8px}
.fp-btn:hover{border-color:var(--gold)}
.fp-btn.disabled{opacity:.4}
.fp-btn .fp-name{font-family:var(--serif);font-size:15px;color:var(--txt);letter-spacing:1px}
.fp-btn .fp-desc{font-size:11px;color:var(--mut)}

/* ===== 排行榜 ===== */
.lb-list{display:flex;flex-direction:column;gap:6px}
.lb-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px;transition:.15s}
.lb-row.cur{border-color:var(--gold);background:linear-gradient(90deg,#fffaf0,#fffdf6);box-shadow:0 0 0 1px var(--gold)}
.lb-rank{font-size:15px;font-weight:700;color:var(--gold);min-width:34px;text-align:center;font-family:var(--serif);flex-shrink:0}
.lb-rank .lb-num{font-size:13px;color:var(--mut);font-weight:500}
.lb-name{font-family:var(--serif);font-size:15px;color:var(--txt);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:1px}
.lb-sect{font-size:11px;font-weight:600;color:#fff;background:linear-gradient(180deg,#5a4bb0,#3d3488);border:1px solid #8a7ae0;border-radius:7px;padding:0 6px;margin-left:5px;letter-spacing:0;vertical-align:middle;position:relative;top:-6px}
.lb-realm{font-family:var(--serif);color:var(--gold);font-size:12.5px;white-space:nowrap;flex-shrink:0}
.lb-stone{font-size:11px;color:var(--mut);white-space:nowrap}
.lb-power{font-size:12px;color:var(--txt2);white-space:nowrap;flex-shrink:0;min-width:0;text-align:right}
.lb-tabs{display:flex;gap:8px;margin:4px 0 10px}
.lb-tab{flex:1;padding:8px 0;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.25);color:#fff;font-size:14px;font-family:var(--serif);letter-spacing:2px;cursor:pointer;transition:.15s;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.lb-tab:hover{border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.15)}
.lb-tab.active{color:#ff8a4c;background:rgba(0,0,0,.45);border-color:#ff8a4c;font-weight:600}

/* v1.6.1：桌面端限制为与游戏首页一致的 480 列窗口（居中、两侧暗场）。
   原来 inset:0 铺满整屏，背景图 cover 被放大到 1440px 宽 = 画面巨大且内容显示不全。 */
#start-screen{position:fixed;top:0;left:0;right:0;margin:0 auto;width:100%;height:100%;max-width:480px;background:#0c1316;z-index:200;overflow-y:auto;display:flex;flex-direction:column;align-items:center;box-shadow:0 0 0 100vmax #0c1316}
.start-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:hidden;pointer-events:none}
.start-bg-img{width:100%;height:100%;object-fit:cover;display:block}
.start-inner{position:relative;z-index:1;width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;padding:40px 22px 28px;margin:0 auto}
#start-screen .brand{font-family:var(--serif);font-size:38px;color:#f3d78a;letter-spacing:8px;text-align:center;margin-top:20px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.5)}
#start-screen .brand-en{font-family:var(--serif);font-size:11px;color:rgba(255,255,255,.55);letter-spacing:3px;margin-top:6px;text-transform:uppercase}
#start-screen .quote{font-family:var(--serif);font-size:14px;color:rgba(255,255,255,.75);margin-top:14px;text-align:center}
#start-screen .quote::before,#start-screen .quote::after{content:"·";color:#f3d78a;margin:0 8px}
#start-screen .section{width:100%;margin-top:22px}
#start-screen .section-title{font-size:13px;color:rgba(255,255,255,.65);letter-spacing:2px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
#start-screen .section-title::before,#start-screen .section-title::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.2)}
.input-row{display:flex;gap:8px}
.name-input{flex:1;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(15,28,32,.72);font-size:15px;color:#fff;font-family:var(--sans);backdrop-filter:blur(4px)}
.name-input::placeholder{color:rgba(255,255,255,.45)}
.name-input:focus{outline:none;border-color:#f3d78a}
.dice-btn{padding:12px 18px;border-radius:10px;border:1px solid #f3d78a;background:linear-gradient(180deg,#f3d78a,#c9a045);color:#3b2a08;font-size:15px;cursor:pointer;font-family:var(--sans);letter-spacing:1px;white-space:nowrap;transition:.18s;font-weight:600}
.dice-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(201,160,69,.5)}
.slot{background:linear-gradient(180deg,rgba(255,253,246,.92) 0%,rgba(255,255,255,.92) 50%);border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:16px 16px 14px;margin-bottom:14px;box-shadow:0 4px 14px rgba(0,0,0,.35);position:relative;overflow:hidden}
.slot::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.7}
.slot.empty{display:flex;align-items:center;justify-content:space-between;color:var(--mut);background:rgba(255,255,255,.92)}
.slot.empty::before{display:none}
.slot .s-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.slot .s-num{font-size:11px;color:var(--mut);letter-spacing:2px;font-family:var(--serif)}
.slot .s-name{font-family:var(--serif);font-size:20px;color:var(--gold);letter-spacing:2px;font-weight:500}
.slot .s-info{font-size:12.5px;color:var(--mut);margin-top:4px;display:flex;gap:14px;flex-wrap:wrap;line-height:1.6}
.slot .s-info .ico{margin-right:3px;opacity:.7}
.slot .s-info .v{color:var(--txt2);font-weight:500}
.slot .s-info .v.gold{color:var(--gold)}
.slot .s-time{font-size:11px;color:var(--mut);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.slot .s-act{display:flex;gap:8px;margin-top:12px}
.slot .btn{flex:1;padding:11px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--txt);font-size:14px;cursor:pointer;font-family:var(--sans);transition:.18s;letter-spacing:1px}
.slot .btn:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)}
.slot .btn.primary{background:linear-gradient(135deg,#e0bc6c,#c9a045);color:#fff;border-color:var(--gold);box-shadow:0 4px 12px rgba(201,160,69,.35)}
.slot .btn.primary:hover{background:linear-gradient(135deg,#e8c96a,#d4af5a);transform:translateY(-1px);box-shadow:0 6px 16px rgba(201,160,69,.5)}
.slot .btn.ghost{background:transparent;color:var(--txt2);border-color:var(--line)}
.slot .btn.danger:hover{border-color:var(--red);color:var(--red)}
/* 首页底部版本号 */
.start-version{font-family:monospace;font-size:11px;color:#000;text-align:center;margin:28px 0 8px;letter-spacing:1px;background:rgba(255,255,255,.72);border-radius:8px;padding:3px 12px;backdrop-filter:blur(2px)}   /* v1.6.1：版本号改黑；背景图偏青，加浅色底衬保证可读 */
.start-version::before,.start-version::after{content:"·";margin:0 8px;color:#f3d78a;opacity:.8}
/* 新版本更新弹窗（复用 #modal，z-index 在 start-screen 之上） */
.vnews-title{font-family:var(--serif);font-size:17px;color:var(--gold);letter-spacing:2px;text-align:center;margin-bottom:14px;font-weight:500}
.vnews-list{margin:0 0 16px;padding:0 0 0 0;list-style:none;max-height:56vh;overflow-y:auto}
.vnews-list li{padding:9px 10px;margin-bottom:6px;border:1px solid var(--line);border-radius:8px;background:#fbfbfd;font-size:13px;line-height:1.7;color:var(--txt)}
.vnews-list li::before{content:"▸";color:var(--gold);margin-right:6px;font-weight:700}

/* ===== 游戏声明 ===== */
.disc-body{padding:2px 2px 6px;font-size:14px;line-height:1.9;color:var(--txt)}
.disc-body p{margin:0 0 12px}
.disc-body b{color:var(--gold)}

/* ===== 游戏反馈 ===== */
.fb-body{padding:2px 2px 4px}
.fb-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fb-label{font-size:13px;color:var(--mut);white-space:nowrap}
.fb-name{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-family:var(--sans);color:var(--txt);background:#fff}
.fb-tip{font-size:12px;color:var(--mut);margin-bottom:8px;line-height:1.6}
.fb-text{width:100%;min-height:150px;max-height:42vh;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.7;font-family:var(--sans);color:var(--txt);background:#fff;resize:vertical;box-sizing:border-box}
.fb-text:focus{outline:none;border-color:var(--gold)}
.fb-err{color:var(--red);font-size:12px;min-height:16px;margin-top:6px}

/* ============ Tribulation UI (v1.5.9-11 渡劫画面重做) ============ */
/* v1.5.9-12：桌面端背景图限制为与首页一致的 480 列窗口（居中、两侧暗场），不再铺满整屏 */
#tribu-bg{position:fixed;top:0;left:0;right:0;margin:0 auto;width:100%;height:100%;max-width:480px;background:url('assets/system_bgs/dujie.jpg') center/cover no-repeat;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:200;color:#e8e2d0;box-shadow:0 0 0 100vmax #0c1316}
#tribu-bg.show{display:flex}
#tribu-bg::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,.45) 100%);pointer-events:none;z-index:0}
#tribu-clouds{position:absolute;top:0;left:0;right:0;height:26%;background:
  radial-gradient(closest-side at 20% 0%, rgba(58,61,85,.65) 0%, transparent 70%),
  radial-gradient(closest-side at 50% -5%, rgba(47,49,73,.55) 0%, transparent 75%),
  radial-gradient(closest-side at 80% 0%, rgba(58,61,85,.65) 0%, transparent 70%);
  animation:cloudroll 6s linear infinite;opacity:.9;z-index:1}
@keyframes cloudroll{0%{transform:translateX(-12px)}50%{transform:translateX(12px)}100%{transform:translateX(-12px)}}
#tribu-title{font-family:var(--serif);font-size:20px;letter-spacing:6px;color:#ffd97a;margin-bottom:2px;z-index:2;padding:4px 16px;border-radius:10px;background:rgba(0,0,0,.35);text-shadow:0 0 12px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.8)}
#tribu-sub{font-size:12px;color:#d8d4c0;letter-spacing:2px;z-index:2;margin-bottom:10px;padding:3px 12px;border-radius:8px;background:rgba(0,0,0,.35);text-shadow:0 1px 3px rgba(0,0,0,.7)}
.tribu-fig{position:relative;width:125px;height:163px;margin-left:-1%;z-index:2;filter:drop-shadow(0 6px 18px rgba(0,0,0,.65));transition:filter .3s;transform:translateY(-3%)}
.tribu-fig .tribu-char-img{width:100%;height:100%;object-fit:contain;display:block}
/* 金身丹金色防护罩 */
.shield-orb{position:absolute;left:50%;top:50%;width:170%;height:155%;transform:translate(-50%,-50%) scale(.92);border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,240,180,.55),rgba(255,205,90,.28) 42%,rgba(255,170,60,.1) 68%,transparent 78%);box-shadow:0 0 26px rgba(255,200,80,.38),inset 0 0 34px rgba(255,235,160,.22);pointer-events:none;opacity:0;transition:opacity .25s;z-index:-1}
.tribu-fig.shield-armed .shield-orb{opacity:1;animation:shieldPulse 1.2s ease-in-out infinite}
@keyframes shieldPulse{0%,100%{transform:translate(-50%,-50%) scale(.92)}50%{transform:translate(-50%,-50%) scale(1.05)}}
.tribu-fig.shield-hit .shield-orb{opacity:.75;animation:shieldBurst .38s ease-out forwards}
@keyframes shieldBurst{0%{transform:translate(-50%,-50%) scale(1);opacity:.75}100%{transform:translate(-50%,-50%) scale(1.4);opacity:0}}
.tribu-fig.shake{animation:tshake .5s ease-in-out}
@keyframes tshake{0%,100%{transform:translate(0,0)}20%{transform:translate(-7px,3px) rotate(-3deg)}40%{transform:translate(6px,-3px) rotate(3deg)}60%{transform:translate(-5px,2px) rotate(-2deg)}80%{transform:translate(4px,-2px) rotate(2deg)}}
.tribu-fig.hurt{filter:drop-shadow(0 0 16px rgba(232,90,90,.8)) brightness(.7)}
.tribu-fig.aura{animation:auraPulse 1.6s ease-in-out infinite}
@keyframes auraPulse{0%,100%{filter:drop-shadow(0 0 10px rgba(255,215,120,.5))}50%{filter:drop-shadow(0 0 26px rgba(255,215,120,.95))}}
/* v1.5.9-12：天雷打勾标志允许换行（16 道天雷也不溢出），整体限宽居中 */
/* v1.5.9-13：人物图+天雷打勾标志+下面文字 包成整体下移 10%；天雷标志与下面文字各自再下移 10% */
.tribu-stage-inner{display:flex;flex-direction:column;align-items:center;transform:translateY(10vh)}
.tribu-text{display:flex;flex-direction:column;align-items:center;transform:translateY(2vh)}
#tribu-bolts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 6px;z-index:2;max-width:440px;padding:0 6px;transform:translateY(2vh)}
.t-bolt{width:26px;height:26px;border-radius:6px;border:1px solid #4a4d6a;background:#1c1e2c;display:flex;align-items:center;justify-content:center;font-size:15px;color:#555a80}
.t-bolt.pending{border-color:#6b6f96;color:#8b90b8}
.t-bolt.hit{border-color:#4ce07f;background:rgba(76,224,127,.15);color:#4ce07f;text-shadow:0 0 8px rgba(76,224,127,.8)}   /* v1.5.9-11：雷劫成功由黄改绿 */
.t-bolt.miss{border-color:#e85a5a;background:rgba(232,90,90,.15);color:#e85a5a}
.t-bolt.shield{border-color:#ffd97a;background:rgba(255,217,122,.18);color:#ffd97a;text-shadow:0 0 10px rgba(255,217,122,.85)}   /* v1.5.9-11：金身丹护盾由绿改黄 */
/* 真实天雷：弯弯曲曲、上粗下细、劈向人物附近 */
.lightning{position:absolute;top:0;left:calc(50% - 70px);width:140px;height:52%;z-index:1;pointer-events:none;opacity:0;animation:boltDrop .55s ease-out forwards}
@keyframes boltDrop{0%{opacity:0;transform:translateY(-30px) scaleY(.4)}25%{opacity:1;transform:translateY(0) scaleY(1.05)}70%{opacity:1}100%{opacity:0;transform:translateY(10px) scaleY(1)}}
/* 雷击中渡劫台爆出的尘埃 */
.bolt-dust{position:absolute;width:70px;height:30px;border-radius:50%;background:radial-gradient(ellipse at 50% 100%,rgba(210,220,240,.55),rgba(180,190,210,.22) 50%,transparent 72%);filter:blur(2px);pointer-events:none;z-index:2;opacity:0;animation:dustPoof .55s ease-out forwards}
@keyframes dustPoof{0%{opacity:0;transform:translate(-50%,0) scale(.35)}18%{opacity:1;transform:translate(-50%,-5px) scale(1)}100%{opacity:0;transform:translate(-50%,-16px) scale(1.3)}}
#tribu-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:3}
#tribu-flash.on{animation:flash .45s ease-out}
@keyframes flash{0%{opacity:.9}100%{opacity:0}}
/* ============ 紫霄宫雷法特效（v1.5.9-25） ============ */
.zx-bolt,.zx-branch,.zx-tornado,.zx-doom{position:fixed;pointer-events:none;z-index:1300;overflow:visible}
.zx-bolt svg,.zx-branch svg,.zx-doom svg{display:block}
/* 青云风雷：竖立上大下小、原地旋转褐色龙卷风 + 内部青色弯曲雷电 + 尘土 */
.zx-tornado{z-index:1290;will-change:transform;perspective:460px}
.zx-tor-funnel{position:absolute;left:50%;top:0;width:100%;height:100%;transform:translateX(-50%);transform-origin:50% 0;
  clip-path:polygon(5% 0,95% 0,63% 100%,37% 100%);
  border-radius:48% 48% 16% 16% / 26% 26% 10% 10%;
  background:linear-gradient(to bottom, rgba(140,96,56,.92), rgba(96,64,38,.5) 52%, rgba(60,40,22,.12) 100%);
  filter:blur(.3px) drop-shadow(0 0 9px rgba(120,82,40,.55));
  transform-style:preserve-3d;animation:zxTorSpin 1.15s linear infinite}
@keyframes zxTorSpin{from{transform:translateX(-50%) rotateY(0)}to{transform:translateX(-50%) rotateY(360deg)}}
.zx-tor-bolt{position:absolute;top:3%;width:16px;height:94%;opacity:.95;filter:drop-shadow(0 0 5px #37e0e0);animation:zxTorBolt .26s steps(2) infinite}
@keyframes zxTorBolt{0%{opacity:.25}50%{opacity:1}100%{opacity:.4}}
.zx-tor-dust{position:absolute;bottom:0;width:14px;height:8px;border-radius:50%;background:rgba(150,120,80,.55);filter:blur(1.5px);opacity:0;animation:zxDust .9s ease-out infinite}
@keyframes zxDust{0%{opacity:0;transform:translateY(6px) scale(.4)}25%{opacity:.7}100%{opacity:0;transform:translateY(-26px) scale(1.3)}}
#tribu-msg{min-height:40px;font-size:13px;color:#d8d4c4;z-index:2;text-align:center;padding:8px 24px;line-height:1.6;border-radius:10px;background:rgba(0,0,0,.35);text-shadow:0 1px 3px rgba(0,0,0,.7);max-width:80vw}
#tribu-msg .good{color:#8fe3a2}#tribu-msg .bad{color:#ff8a8a}#tribu-msg .realm{color:#ffd97a}
#tribu-btn{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);padding:10px 34px;border-radius:10px;border:1px solid #ffd97a;background:linear-gradient(180deg,#ffd97a,#e0b45c);color:#2a2410;font-size:15px;letter-spacing:3px;cursor:pointer;font-family:var(--serif);display:none;z-index:2}
#tribu-rate{font-size:11px;color:#d8d4c0;z-index:2;margin-top:4px;margin-bottom:4px;padding:3px 10px;border-radius:8px;background:rgba(0,0,0,.35);letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.7)}
/* v1.5.9-12：手机端人物图与整体再缩小一档，避免占据过多屏幕 */
@media (max-width:480px){
  .tribu-fig{width:106px;height:141px}
  #tribu-bolts{max-width:94vw}
  #tribu-msg{max-width:92vw}
}

/* 副本难度选择弹窗 */
.fb-diffs{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:16px 0 6px}
.fb-diffs .d-btn{display:flex;flex-direction:column;align-items:center;min-width:104px;padding:12px 10px;line-height:1.2}
.fb-diff-name{font-size:16px;font-weight:700}
.fb-diff-sub{display:block;font-size:11px;opacity:.82;margin-top:4px;font-weight:400;line-height:1.35}
.fb-diff-count{display:block;font-size:12px;margin-top:6px;font-weight:600;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.18)}
.fb-diff-count.count-ok{color:var(--green)}
.fb-diff-count.count-warn{color:#ffb44e}
.fb-diff-count.count-bad{color:var(--red)}
.fb-diffs .d-btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.6)}
.d-desc{font-size:13px;color:var(--mut);line-height:1.7;padding:0 4px 2px}

/* ===== 副本难度配色（v0.6.8） ===== */
.d-btn.diff-easy{background:#fff;color:#222;border-color:#cfd3da}
.d-btn.diff-easy:hover{background:#f2f4f7;color:#222;border-color:#9aa0aa}
.d-btn.diff-hard{background:#2f7de0;color:#fff;border-color:#2f7de0}
.d-btn.diff-hard:hover{background:#2569bf;color:#fff}
.d-btn.diff-epic{background:#8a4fd0;color:#fff;border-color:#8a4fd0}
.d-btn.diff-epic:hover{background:#7438b8;color:#fff}

/* ===== 灵兽卡片 + 详情弹窗（v0.6.8） ===== */
.beast-card{cursor:pointer;transition:.15s}
.beast-card:hover{border-color:var(--gold);box-shadow:0 2px 9px rgba(232,197,106,.28)}
.beast-ava{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-family:var(--serif);font-weight:700;margin-bottom:2px}
/* v1.3.3-3：灵兽立绘 img 填充容器（圆形/圆角继承） */
.ba-img img,.beast-ava img,.bd-ava img,.b-ava-img img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.beast-sub{font-size:11px;color:var(--mut)}
.beast-sub .bd-on{color:var(--green);font-weight:600}
.beast-mini{font-size:10.5px;color:var(--txt2);line-height:1.5}
.beast-detail{padding:4px 2px 6px}
.bd-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.bd-ava{width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-family:var(--serif);font-weight:700}
.bd-name{font-size:16px;font-weight:700;font-family:var(--serif)}
.bd-q{font-size:11px;color:var(--mut);margin-top:2px}
.bd-on{color:var(--green)} .bd-off{color:var(--mut)}
.bd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}
.bd-stat{background:#f7f8fa;border:1px solid var(--line);border-radius:9px;padding:8px 4px;text-align:center}
.bd-stat span{display:block;font-size:11px;color:var(--mut)}
.bd-stat b{font-size:15px;color:var(--txt)}
.bd-exp{height:7px;background:rgba(0,0,0,.1);border-radius:4px;overflow:hidden;margin-top:4px}
.bd-exp i{display:block;height:100%;background:linear-gradient(90deg,#3eb873,var(--gold))}
.bd-exp-t{font-size:10.5px;color:var(--mut);margin:3px 0 8px}
.bd-skills{display:flex;flex-wrap:wrap;gap:6px}
.bd-skill{background:#f3f0fb;border:1px solid #e0d3f3;color:#6a3fa0;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:600}
.bd-skill i{display:block;font-style:normal;font-size:10px;color:var(--mut);font-weight:400;margin-top:1px}
.bd-skill-none{font-size:12px;color:var(--mut)}
.modal-x{position:absolute;top:8px;right:14px;font-size:22px;line-height:1;color:var(--mut);cursor:pointer;z-index:2}
.modal-x:hover{color:var(--red)}
/* 灵兽蛋卡片 + 孵化倒计时 */
.beast-card.egg-card{cursor:default;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.beast-card.egg-card:hover{border-color:var(--line);box-shadow:none}
.beast-egg-ico{width:42px;height:54px;margin:2px auto 6px;border-radius:50% 50% 50% 50%/62% 62% 38% 38%;background:radial-gradient(circle at 34% 28%,#fff7e6,#ecd9aa 58%,#cdb27a);box-shadow:inset -6px -8px 12px rgba(120,90,40,.35),0 2px 5px rgba(0,0,0,.22);position:relative}
.beast-egg-ico::after{content:'';position:absolute;left:30%;top:24%;width:8px;height:8px;border-radius:50%;background:rgba(120,90,40,.32);box-shadow:14px 6px 0 -2px rgba(120,90,40,.28),-1px 22px 0 -3px rgba(120,90,40,.22)}
.egg-actions{margin-top:8px;width:100%}
.egg-actions .d-btn{width:100%;font-size:12px;padding:6px 4px}
/* 升品选择窗口 */
.up-target{font-size:13px;line-height:1.7;margin:2px 2px 12px;color:var(--ink)}
.up-target b{font-weight:700}
.beast-card.sel{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset,0 2px 9px rgba(232,197,106,.3)}
/* 禁用态按钮（升品不可用 / 孵化倒计时中） */
.d-btn.disabled,.d-btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}
.d-btn.disabled:hover,.d-btn[disabled]:hover{border-color:var(--line);box-shadow:none}

/* ===== 心法库卡片（一行 4 个，v0.6.8） ===== */
.xf-card{justify-content:flex-start;gap:4px}
.xf-card-grade{font-size:10px;color:#fff;padding:1px 8px;border-radius:8px;font-weight:600}
.xf-card-lv{font-size:11px;color:var(--mut)}
.xf-card-btns{display:flex;gap:5px;margin-top:2px;width:100%}
.xf-card-btns .mini-btn{flex:1;font-size:11px;padding:4px 0}

/* ===== 法术界面子标签（心法 / 法术） ===== */
.fashu-subtabs{display:flex;gap:8px;margin:4px 0 10px}
.fashu-sub{flex:1;padding:8px 0;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-size:14px;font-family:var(--serif);letter-spacing:2px;cursor:pointer;transition:.15s}
.fashu-sub:hover{border-color:var(--gold);color:var(--gold)}
.fashu-sub.active{background:var(--gold);color:#fff;border-color:var(--gold);font-weight:600}

/* ===== 自由交易集市 ===== */
.mk-sec{font-size:12px;color:var(--txt);font-weight:600;letter-spacing:1px;margin:10px 0 6px}
.mk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.mk-card{border:1px solid var(--line);border-radius:8px;padding:5px 6px;background:var(--panel2);display:flex;flex-direction:column;gap:2px;cursor:pointer;transition:.15s;min-width:0}
.mk-card:hover{border-color:var(--gold);background:#fffaf0;box-shadow:0 2px 6px rgba(201,160,69,.2)}
.mk-card .mk-ico-mini{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;vertical-align:middle;margin-right:3px}
.mk-card .mk-ico-mini svg{width:28px;height:28px;display:block}
/* v1.3.3-1：mks-ico（mk-sell-card 图标容器）也强制 SVG 充满 */
.mks-ico{width:48px;height:48px;display:flex;align-items:center;justify-content:center}
.mks-ico svg{width:48px;height:48px;display:block}
.mk-tag{font-size:9px;padding:0 4px;border-radius:3px;width:max-content;color:#fff}
.mk-tag.equip{background:#b07b4f}
.mk-tag.pill{background:#e85a5a}
.mk-tag.mat{background:#3fae9b}
.mk-tag.order{background:linear-gradient(135deg,#3aa860,#2d8a4a)}   /* v1.3.5：求购绿色标签 */
.mk-tag.beast{background:#a14fa8}
.mk-tag.xinfa{background:#4a78b8}
/* v1.3.5：直接购买/收款按钮（不需进详情） */
.mk-buy-btn{display:block;margin-top:3px;padding:3px 4px;width:100%;font-size:9px;font-weight:500;border:none;border-radius:5px;background:linear-gradient(135deg,#e8b954,#c9a045);color:#fff;cursor:pointer;letter-spacing:0;box-shadow:0 1px 3px rgba(201,160,69,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-buy-btn:hover{filter:brightness(1.08)}
.mk-buy-btn.gold{background:linear-gradient(135deg,#5abf7a,#3aa860)}
.mk-buy-sold{font-size:11px;color:var(--mut);font-style:italic;display:block;text-align:center;margin-top:4px}
/* v1.3.5：求购卡片边框轻微绿色 */
.order-card{border-color:rgba(58,168,96,.3)}
.order-card:hover{border-color:#3aa860;background:#f0faf4;box-shadow:0 2px 6px rgba(58,168,96,.2)}
.mk-name{font-size:11px;color:var(--txt);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mk-name::-webkit-scrollbar{height:0}
.mk-sub{font-size:9px;color:var(--txt2);line-height:1.35}
.mk-seller{font-size:9px;color:var(--mut);display:flex;align-items:center;gap:2px;line-height:1.25;flex-wrap:nowrap;overflow:hidden}
.mk-uid{font-size:8px;color:var(--txt2);opacity:.8;font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40px;cursor:help;flex-shrink:0}
.mk-uid::-webkit-scrollbar{height:0}
.mk-ico{display:flex;justify-content:center;align-items:center;height:28px;margin:1px 0}
.mk-ico svg{width:28px;height:28px;display:block}
.mk-name-box{width:100%;overflow:hidden}
.mk-price{font-size:10px;color:var(--gold);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-seller-name{display:inline-block;max-width:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.mk-sold{font-size:11px;color:var(--mut);font-style:italic}
.mk-sell-row{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;cursor:pointer;margin-bottom:6px}
.mk-sell-row:hover{border-color:var(--gold);background:#fffaf0}
.mk-go{color:var(--gold);font-size:12px}
/* v1.3.2-4：上架选择卡片（图鉴风格）+ 详情信息卡 */
.mk-sell-card{border:1px solid var(--line);border-radius:9px;padding:8px 6px;background:var(--panel2);cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center;min-height:120px}
.mk-sell-card:hover{border-color:var(--gold);background:#fffaf0;box-shadow:0 2px 6px rgba(201,160,69,.18);transform:translateY(-1px)}
.mks-ico{width:48px;height:48px;display:flex;align-items:center;justify-content:center}
.mks-ico svg{width:42px;height:42px}
.mks-name{font-size:12.5px;font-weight:500;line-height:1.3;word-break:break-all;max-height:2.6em;overflow:hidden}
.mks-meta{font-size:10px;color:var(--txt2);line-height:1.3}
.mks-go{font-size:11px;color:var(--gold);font-weight:600}
.mk-info-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2);margin:8px 0;line-height:1.7}
.mini-btn.gold{background:var(--gold);color:#fff;border-color:var(--gold)}
.mini-btn.gold:hover{filter:brightness(1.05)}

/* ===== 历史版本公告 ===== */
.vhist-list{max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.vhist-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2)}
.vhist-v{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:1px;margin-bottom:4px;font-weight:600}
.vhist-item ul{padding-left:18px;margin:0}
.vhist-item li{font-size:12.5px;color:var(--txt2);line-height:1.7}
.vhist-empty{font-size:12px;color:var(--mut)}

/* ===== 炼丹卡片 ===== */
.pill-grid .pill-card{flex-direction:column;align-items:center;text-align:center;padding:10px 6px}
.pill-card.disabled{opacity:.5;filter:grayscale(.5)}
.pill-card .mi{width:44px;height:44px;margin-bottom:4px}
.pill-cost{font-size:10.5px;color:var(--mut);line-height:1.5;margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 6px;justify-content:center}
/* v1.3.2：炼丹列表卡效果醒目（金底/金字/发光），不再展示材料 */
.pill-effect{font-size:12px;color:#5a4210;margin-top:6px;padding:6px 8px;background:linear-gradient(180deg,#fff4c8,#ffe28a);border:1px solid #d9b14a;border-radius:8px;line-height:1.55;font-weight:500;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 4px rgba(201,160,69,.25);text-shadow:0 1px 0 rgba(255,255,255,.5)}
/* v1.3.1-4：炼丹卡片材料迷你图标（可点击弹详情） */
.pill-mat{display:inline-flex;align-items:center;gap:3px;background:#fbfbfd;border:1px solid var(--line);border-radius:8px;padding:2px 6px 2px 3px;cursor:pointer;transition:.15s}
.pill-mat:hover{border-color:var(--gold);box-shadow:0 0 5px rgba(201,160,69,.3)}
.pill-mat svg{width:16px;height:16px;flex:none}
.pill-mat em{font-style:normal;font-size:10px;color:var(--txt2)}
.pill-effect{font-size:11px;color:var(--txt2);margin-top:2px}

/* ===== 阵法卡片（一行3个） ===== */
.zf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.zf-grid .zf-card{flex-direction:column;align-items:center;text-align:center;padding:10px 6px}
.zf-grid .zf-sub{font-size:10.5px;line-height:1.4}

/* ===== 副本失败弹窗 ===== */
.ffail-msg{font-size:13.5px;color:var(--txt2);line-height:1.9;text-align:center;padding:6px 8px 2px}

/* ===== 上帝模式按钮（右下角） ===== */
#god-fab{position:fixed;right:16px;bottom:16px;z-index:650;padding:12px 18px;border-radius:999px;border:none;background:linear-gradient(135deg,#e8c96a,#c9a045);color:#fff;font-size:14px;font-family:var(--serif);letter-spacing:1px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);display:flex;align-items:center;gap:4px}
#god-fab:active{transform:scale(.95)}

/* ===== 属性分配界面 ===== */
#attr-bg{position:absolute;inset:0;width:100%;height:100%;z-index:700;background:linear-gradient(160deg,#fbf7ec,#f3efe4);display:none;align-items:center;justify-content:center;padding:14px;overflow:auto}
.attr-alloc{max-width:400px;width:100%;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow2);padding:14px 14px 16px}
.aa-head{font-family:var(--serif);font-size:19px;letter-spacing:3px;text-align:center;color:var(--gold);margin-bottom:4px}
.aa-sub{text-align:center;color:var(--txt2);font-size:12.5px;margin-bottom:10px}
.aa-sub b{color:var(--orange);font-size:14px}
.aa-rows{display:flex;flex-direction:column;gap:7px}
.aa-row{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.aa-line{display:flex;align-items:center;justify-content:space-between;gap:8px}
.aa-name{font-family:var(--serif);font-size:15px;letter-spacing:2px;color:var(--txt);white-space:nowrap}
.aa-ctrl{display:inline-flex;align-items:center;gap:7px;flex-shrink:0}
.aa-btn{width:27px;height:27px;border-radius:8px;border:1px solid var(--gold);background:#fff;color:var(--gold);font-size:16px;line-height:1;cursor:pointer;flex-shrink:0;padding:0}
.aa-btn:active{transform:scale(.94);background:var(--gold);color:#fff}
.aa-val{min-width:24px;text-align:center;font-size:17px;font-weight:700;color:var(--orange)}
.aa-desc{font-size:11px;color:var(--mut);line-height:1.5;margin-top:3px}
.aa-tip{margin:10px 2px 10px;font-size:11.5px;color:var(--mut);text-align:center;line-height:1.6}
.aa-confirm{width:100%;padding:11px;font-family:var(--serif);font-size:15px;letter-spacing:2px}
.aa-back{width:100%;margin-top:8px;padding:9px;font-size:13px;color:var(--txt2);border:1px solid var(--line);background:#faf9f6}

/* ===== 炼丹师品阶界面 ===== */
.ld-rank{background:linear-gradient(135deg,#fdf8ec,#faf3e0);border:1px solid #ecd9a8;border-radius:12px;padding:10px 12px;margin-bottom:10px}
.ld-rank-name{font-family:var(--serif);font-size:16px;letter-spacing:2px;color:var(--gold);display:flex;justify-content:space-between;align-items:baseline}
.ld-rank-exp{font-size:12px;color:var(--mut);font-family:var(--sans);letter-spacing:0}
.ld-rank-bar{height:8px;margin:7px 0 5px}
.ld-rank-bar i{background:linear-gradient(90deg,#e8c96a,#d07f1a)}
.ld-rank-tip{font-size:11px;color:var(--mut);line-height:1.6}
.pill-req{font-size:10px;color:var(--orange);margin:2px 0}
.mat-card.disabled .pill-req{color:var(--mut)}

/* ===== 装备栏强化 ===== */
.eq-slot{position:relative}
.eq-lv{position:absolute;top:-5px;right:-5px;background:linear-gradient(135deg,#ffd34d,#e0924a);color:#5a3a00;border:1px solid #fff;border-radius:9px;font-size:10px;font-weight:700;padding:1px 5px;line-height:1.4;box-shadow:0 1px 3px rgba(0,0,0,.18);z-index:2;font-family:var(--sans)}
.m-limit{font-size:10px;color:var(--mut);font-weight:400}
.m-limit-txt{font-size:10px;color:var(--orange);margin-top:2px}

/* ===== 铸造 / 炼丹 过渡动画 ===== */
.craft-overlay{position:fixed;inset:0;background:rgba(18,12,30,.78);display:none;align-items:center;justify-content:center;z-index:1200;backdrop-filter:blur(2px)}
.craft-overlay.show{display:flex}
.craft-box{background:linear-gradient(160deg,#2a2038,#1c1428);border:2px solid #e8c96a;border-radius:18px;padding:26px 40px 22px;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,.5);min-width:230px}
.craft-icon svg{width:120px;height:120px;display:block;margin:0 auto}
.craft-title{font-family:var(--serif);font-size:20px;color:#f0d98a;letter-spacing:4px;margin-top:10px}
.craft-sub{font-size:12px;color:#b8a6d0;margin-top:6px;letter-spacing:2px}
.craft-spark{font-size:16px;color:#e8c96a;animation:craft-spark 1.2s ease-in-out infinite}
@keyframes craft-spark{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes craft-hammer{0%,100%{transform:rotate(-18deg)}45%{transform:rotate(-18deg)}55%{transform:rotate(24deg)}65%{transform:rotate(-12deg)}75%{transform:rotate(20deg)}}
.craft-hammer{transform-origin:52px 22px;animation:craft-hammer .9s ease-in-out infinite}
@keyframes craft-anvil{0%,100%{transform:scale(1)}55%{transform:scale(.92)}}
.craft-anvil{animation:craft-anvil .9s ease-in-out infinite;transform-origin:50% 80%}
@keyframes craft-flame{0%,100%{opacity:.55;transform:scaleY(.92)}50%{opacity:1;transform:scaleY(1.12)}}
.craft-flame{animation:craft-flame .55s ease-in-out infinite;transform-origin:50% 100%}
@keyframes craft-pill{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.craft-pill{animation:craft-pill .8s ease-in-out infinite}
@keyframes craft-steam{0%{opacity:0;transform:translateY(4px) scale(.7)}30%{opacity:.7}100%{opacity:0;transform:translateY(-14px) scale(1.15)}}
.craft-steam{animation:craft-steam 1.6s ease-out infinite}
/* v1.3.7：炼丹进度百分比 */
.craft-progress{margin-top:10px;font-family:var(--serif);font-size:14px;color:var(--gold);letter-spacing:1px;font-weight:600}
/* v1.3.7：炼丹数量 ± 按钮 */
.alc-qty-row{display:flex;align-items:center;gap:8px;padding:4px 0 8px}
.alc-qty-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:18px;font-weight:700;color:var(--gold);cursor:pointer;transition:.15s}
.alc-qty-btn:hover:not(:disabled){background:#fff8e0;border-color:var(--gold)}
.alc-qty-btn:disabled{opacity:.35;cursor:not-allowed}
.alc-qty-num{min-width:32px;text-align:center;font-family:var(--serif);font-size:18px;font-weight:700;color:var(--gold)}

/* ===== 背包灵石下方的一键强化 ===== */
.bag-up-row{margin-top:7px;display:flex;align-items:center;justify-content:center;gap:6px}
.bag-up-row .mini-btn.gold{font-size:12px;padding:6px 12px}
.bag-up-tip{font-size:10px;color:var(--mut)}

/* ===== 灵兽界面分栏（上=已参战一行2个 / 下=蛋+闲置） ===== */
.beast-active{display:flex;gap:10px;margin-bottom:8px}
.beast-a-card{flex:1;background:#fdf8ec;border:1px solid #ecd9a8;border-radius:12px;padding:10px;text-align:center;cursor:pointer;position:relative}
.beast-a-card .beast-ava{width:46px;height:46px;border-radius:50%;margin:0 auto 4px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff}
.beast-a-card .beast-stats{font-size:11px;color:var(--txt2);margin-top:3px}
.beast-a-card.beast-empty{border-style:dashed;color:var(--mut);display:flex;align-items:center;justify-content:center;font-size:12px;min-height:110px}
/* ===== 法术经验条 ===== */
.spell-prog-wrap{position:relative;margin:3px 0}
.spell-prog{height:7px}
.spell-prog i{background:linear-gradient(90deg,#7ad0e0,#3a8ee6)}
.spell-exp{position:absolute;top:-2px;right:0;font-size:10px;color:var(--mut)}
/* ===== 心法分栏（已装备一行2个 + 未装备） ===== */
.xinfa-equipped{display:flex;gap:10px;margin-bottom:10px}
.xf-card.xf-equipped{flex:1;border:2px solid;border-radius:12px;padding:10px 12px;background:#fdf8ec}
.xf-card.xf-empty{border-style:dashed;border-color:#d9cdb0;color:var(--mut)}
.xf-card .xf-name{font-size:14px;font-weight:700}
.xf-card .xf-lv{font-size:12px;color:var(--gold);margin:2px 0}
.xf-card .xf-effect{font-size:12px;color:var(--txt2)}
.xf-prog{height:8px;margin:6px 0 3px}
.xf-prog i{background:linear-gradient(90deg,#e8c96a,#d07f1a)}
.xf-exp{font-size:10.5px;color:var(--mut);line-height:1.5}
.xf-desc{font-size:11px;color:var(--mut);margin:3px 0}
.xf-btns{display:flex;gap:5px;justify-content:center;margin-top:6px}
.xf-btns .mini-btn{font-size:11px}

/* ===== 心法 4 槽制 + 品质标签样式 ===== */
.xinfa-equipped{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.xf-card.xf-equipped{flex:1 1 calc(50% - 6px); min-width:220px; box-sizing:border-box}
/* 品质标签（修复黑色空框 bug） */
.xf-grade-tag{display:inline-block;font-size:10px;color:#fff;border-radius:5px;padding:1px 6px;margin-left:4px;vertical-align:1px;font-weight:700;letter-spacing:1px}

/* v0.9.1 心法已装备强制一行 2 个（grid 2 列，不受 min-width 影响） */
.xinfa-equipped{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.xf-card.xf-equipped{flex:0 0 auto;min-width:0;box-sizing:border-box}

/* ===== v0.9.4 账号登录界面 ===== */
/* v1.6.1：登录界面同样收成 480 列（对齐首页 #game-stage），列外暗场 */
#account-screen{position:fixed;top:0;left:0;right:0;margin:0 auto;width:100%;height:100%;max-width:480px;z-index:2000;display:flex;align-items:flex-end;justify-content:center;padding:0;overflow:hidden;box-shadow:0 0 0 100vmax #0c1316}
.acc-bg{position:absolute;inset:0;background:url('img/login_bg.jpg') center/cover no-repeat;background-color:#0c1316;z-index:-1}
.acc-box{position:relative;width:100%;max-width:480px;background:linear-gradient(180deg,transparent 0%,rgba(8,16,20,.82) 18%,rgba(8,16,20,.92) 100%);border-radius:0;padding:90px 28px 34px;box-shadow:none;text-align:center}
.acc-brand{font-family:var(--serif);font-size:42px;color:#f3d78a;letter-spacing:8px;margin-top:2px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.acc-brand-en{font-size:10px;color:rgba(255,255,255,.55);letter-spacing:3px;margin-top:6px;text-transform:uppercase}
.acc-tab{display:flex;justify-content:center;gap:28px;margin:24px 0 16px;border-bottom:none}
.acc-tab-btn{flex:0 0 auto;padding:6px 4px;background:none;border:none;font-size:16px;color:rgba(255,255,255,.55);border-bottom:2px solid transparent;cursor:pointer;font-family:var(--serif);letter-spacing:2px}
.acc-tab-btn.active{color:#f3d78a;border-bottom-color:#f3d78a;font-weight:600}
.acc-input-row{position:relative;margin-bottom:12px}
.acc-input{width:100%;box-sizing:border-box;padding:13px 42px 13px 16px;border:1px solid rgba(243,215,138,.45);border-radius:10px;font-size:15px;color:#fff;background:rgba(15,28,32,.72);backdrop-filter:blur(4px)}
.acc-input::placeholder{color:rgba(255,255,255,.45)}
.acc-input:focus{outline:none;border-color:#f3d78a;background:rgba(15,28,32,.85)}
.acc-input-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:16px;opacity:.55;pointer-events:none}
.acc-captcha-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.acc-captcha-row .acc-input{flex:1;margin-bottom:0}
.acc-cap-code{flex:0 0 90px;height:46px;line-height:46px;text-align:center;font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:4px;color:#f3d78a;background:rgba(15,28,32,.72);border:1px solid rgba(243,215,138,.45);border-radius:10px;cursor:pointer;user-select:none}
.acc-msg{min-height:18px;font-size:12px;color:#ff9b9b;margin:0 0 8px;line-height:1.4;text-align:left;padding-left:4px}
.acc-btn{width:100%;padding:14px;border:none;border-radius:12px;background:linear-gradient(180deg,#f3d78a,#c9a045);color:#3b2a08;font-size:18px;font-weight:700;letter-spacing:4px;cursor:pointer;margin-top:4px;box-shadow:0 4px 14px rgba(201,160,69,.45);font-family:var(--serif)}
.acc-btn:active{filter:brightness(1.05);transform:scale(.99)}
.acc-btn:disabled{opacity:.6}
.acc-offline{margin-top:16px;font-size:13px;color:rgba(255,255,255,.55);text-decoration:underline;cursor:pointer}
.acc-foot{margin-top:22px;font-size:12px;color:rgba(255,255,255,.45);letter-spacing:2px}
.acc-toast{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);z-index:2100;padding:14px 32px;background:rgba(8,16,20,.88);border:1px solid rgba(243,215,138,.55);border-radius:14px;font-family:var(--serif);font-size:18px;color:#f3d78a;letter-spacing:3px;box-shadow:0 8px 24px rgba(0,0,0,.45);pointer-events:none}
/* 存档界面顶部账号条 */
.acc-bar{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:14px;font-size:13px;color:var(--txt2);flex-wrap:wrap}
.acc-bar-cloud{font-size:11px;color:#2e8b57}
.acc-logout{font-size:12px;padding:4px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--txt2);cursor:pointer}
.acc-offline-tag{font-size:12px;color:var(--mut)}

/* ===== v0.9.8 一键扫荡 ===== */
.fb-sweep{margin-top:12px;padding:10px 12px;background:#f3efe2;border:1px dashed #c9a227;border-radius:10px}
.fb-sweep-title{font-size:13px;color:var(--txt2);margin-bottom:8px}
.fb-sweep-lock{font-size:12px;color:var(--mut);padding:8px;text-align:center;background:#f0ede4;border-radius:8px}
.fb-sweep-tip{font-size:11px;color:var(--mut);margin-top:6px;text-align:center}

/* v0.9.9 玩家 ID 显示 */
.d-rid{display:inline-block;font-size:10px;color:var(--mut);background:#f0ede4;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:2px;letter-spacing:.5px}
.mk-seller-id{color:var(--mut);font-size:11px;margin-left:4px}

/* ===== v1.0.0 装备品质颜色（22 级） ===== */
.g3,.g4,.g5{color:#9a5ad4}                /* 史诗系：紫 */
.g6,.g7,.g8{color:#e0912e}                /* 传说系：金 */
.g9,.g10,.g11,.g12,.g13{color:#e0433a}    /* 帝品系：红 */
.g14,.g15,.g16,.g17,.g18,.g19,.g20{background:linear-gradient(90deg,#e0433a,#e0912e,#3a9e4f,#3a7bd4,#9a5ad4);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}  /* 仙级系：彩 */
.g21{background:linear-gradient(90deg,#ff8c00,#ffd700,#ff5e7a);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800;letter-spacing:1px}  /* 极道神兵 */

/* ===== v1.0.0 心法库紧凑卡片（1 行 4 个不溢出） ===== */
.xf-grid .xf-mini{padding:6px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:0}
.xf-mini .xf-mini-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.xf-mini .xf-mini-grade{color:#fff;border-radius:4px;padding:1px 5px;font-size:9px;letter-spacing:.5px}
.xf-mini .xf-mini-info{font-size:9px;color:var(--mut)}
@media (max-width:480px){
  .xf-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px}
  .xf-grid .mat-card{padding:5px 2px}
  .xf-mini .xf-mini-name{font-size:10px}
}

/* ===== v1.0.1 奖励图标化 + 灵石彩字 + 集市小屏 ===== */
.fsettle-grid{grid-template-columns:repeat(4,1fr)!important;gap:8px}
.fsettle-card{padding:8px 4px}
.fsettle-card .lbl{display:none}
.fs-ico{width:48px;height:48px;border-radius:8px;margin-bottom:4px;display:flex;align-items:center;justify-content:center}
.fs-ico svg{width:100%;height:100%}
.fs-ico img{width:100%;height:100%;object-fit:contain}
.fs-word{font-size:22px;font-family:var(--serif);color:#c9a227;background:#f0ede4;border-radius:8px}
.fs-name{font-size:11px;color:var(--txt2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fs-qty{font-size:10px;color:var(--mut)}
.stone-rainbow{background:linear-gradient(90deg,#e0433a,#e0912e,#3a9e4f,#3a7bd4,#9a5ad4);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
@media (max-width:480px){
  .fsettle-grid{grid-template-columns:repeat(4,1fr)!important;gap:6px}
}

/* ===== v1.0.1 装备弹窗重构：属性药丸 + 升级框 + 材料出售输入 ===== */
.eq-box{border:1px solid #e8dcc8;border-radius:10px;padding:9px 10px;margin:8px 0;background:#fffdf8;text-align:left}
.eq-box-t{font-size:11px;color:var(--mut);letter-spacing:2px;margin-bottom:7px;border-bottom:1px dashed #e8dcc8;padding-bottom:4px}
.eq-pills{display:flex;flex-wrap:wrap;gap:7px}
.eq-pill{display:inline-flex;border:1px solid #e0912e;border-radius:15px;overflow:hidden;font-size:12.5px;line-height:1}
.eq-pill-k{background:#e0912e;color:#fff;padding:4px 10px;font-weight:600}
.eq-pill-v{background:#4a3a28;color:#fff;padding:4px 10px;font-weight:700}
.eq-noattr{color:var(--mut);font-size:12px}
.eq-mats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}
.eq-mat{border:1px solid var(--line);border-radius:8px;padding:5px 7px;font-size:11.5px;color:var(--txt2);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eq-mat b{color:var(--green)}
.eq-mat-miss{border-color:#e8b0a0;background:#fff4ef}
.eq-mat-miss b{color:var(--red)}
/* v1.3.1：弹窗所需材料图标卡片（图标 → 名字 → 持有/所需） */
.mat-req-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px;max-height:38vh;overflow-y:auto;align-content:flex-start}
.mat-req-card{width:74px;padding:8px 4px 7px;border:1px solid var(--line);border-radius:10px;background:#fbfbfd;text-align:center;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.mat-req-card .m-icon{width:42px;height:42px;margin:0 auto 3px;display:flex;align-items:center;justify-content:center}
.mat-req-card .m-icon svg{width:40px;height:40px}
.mat-req-card .m-name{font-size:11px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.mat-req-card .m-req{font-size:11px;font-weight:600;color:var(--green);margin-top:2px}
.mat-req-card .m-req.bad{color:var(--red)}
.mat-req-card.mat-req-miss{border-color:#e0524a;background:#fff6f6;box-shadow:inset 0 0 0 1px rgba(224,82,74,.22)}
.eq-up-meta{font-size:12px;color:var(--txt2);padding-top:6px;border-top:1px dashed #e8dcc8}
.eq-up-meta b{color:var(--green)}
.eq-up-meta .eq-red{color:var(--red)}
.mat-sell-box{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.mat-sell-box input{width:64px;padding:5px 6px;border:1px solid var(--line);border-radius:8px;font-size:13px;text-align:center}
.mat-sell-max{font-size:12px;color:var(--mut)}
/* v1.1.0：材料出售预览改为 inline（与按钮同行紧凑排版，不再换行独占） */
.mat-sell-preview{font-size:12px;color:var(--txt2);margin-left:4px}
.mat-sell-preview b{color:var(--gold)}

/* ===== v1.0.5 灵兽技能图标 + 洗练弹窗 ===== */
.bd-skill-ico{display:inline-flex;background:#f6f4ee;border:1px solid var(--line);border-radius:10px;padding:2px;cursor:pointer;transition:transform .12s}
.bd-skill-ico:hover{transform:scale(1.1);border-color:#e0912e;box-shadow:0 0 6px rgba(224,145,46,.35)}
.bd-skill-ico svg{display:block}
.xisui-pick-card{display:block;background:linear-gradient(160deg,#fffdf6,#fdf3e3);border:1.5px solid #e0912e;border-radius:14px;padding:14px 30px;cursor:pointer;transition:transform .12s;box-shadow:0 2px 8px rgba(224,145,46,.18)}
.xisui-pick-card:hover{transform:scale(1.04);border-color:#d07f16}
.xisui-pick-ico{width:58px;height:58px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center}
.xisui-pick-ico svg{width:56px;height:56px;display:block}
.xisui-pick-card.xisui-pick-off{cursor:not-allowed;opacity:.7;border-color:#c9a06a;background:linear-gradient(160deg,#fffdf6,#f7ecd9)}
.xisui-pick-name{font-size:15px;font-family:var(--serif);color:#8a5a12;font-weight:700;text-align:center}
.xisui-pick-cnt{font-size:12px;color:#a9752a;text-align:center;margin:2px 0}
.xisui-pick-eff{font-size:11px;color:var(--mut);text-align:center;margin-top:4px;border-top:1px dashed #e8dcc8;padding-top:5px}

/* ===== v1.0.6 已参战灵兽卡片（灵兽界面上部分）：上=图片+信息+药丸属性，下=技能图标+名字 ===== */
.beast-a-card{text-align:left}
.beast-a-card .ba-top{display:flex;gap:10px;align-items:flex-start}
.beast-a-card .ba-img{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;font-family:var(--serif);flex-shrink:0;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.22);background-size:cover;background-position:center}
.beast-a-card .ba-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.beast-a-card .ba-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.beast-a-card .ba-name{font-size:14px;font-family:var(--serif);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.beast-a-card .ba-q{font-size:11px;color:var(--txt2)}
.beast-a-card .ba-lv{font-size:11px;color:var(--mut);margin-left:auto}
.beast-a-card .ba-pills{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.beast-a-card .eq-pill{font-size:10.5px;border-radius:12px}
.beast-a-card .eq-pill-k{padding:2px 7px}
.beast-a-card .eq-pill-v{padding:2px 7px}
.beast-a-card .ba-skills{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;border-top:1px dashed #ecd9a8;padding-top:7px}
.beast-a-card .ba-skill{display:inline-flex;align-items:center;gap:3px;background:#f6f4ee;border:1px solid var(--line);border-radius:7px;padding:2px 5px;cursor:pointer}
.beast-a-card .ba-skill:hover{border-color:#e0912e}
.beast-a-card .ba-skill svg{width:20px;height:20px}
.beast-a-card .ba-skill em{font-style:normal;font-size:10.5px;color:var(--txt2)}
.beast-a-card .ba-no-skill{font-size:11px;color:var(--mut)}
.bd-skill-ico{flex-direction:column;align-items:center;width:52px}
.bd-skill-ico .bs-name{font-size:10px;color:var(--txt2);margin-top:2px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50px}

/* ===== v1.0.5 灵兽学习技能书弹窗 ===== */
.skillbook-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:2px 2px;max-height:44vh;overflow-y:auto}
.skillbook-card{background:#fdf8ec;border:1px solid #ecd9a8;border-radius:10px;padding:7px 5px;text-align:center;cursor:pointer;position:relative;transition:transform .12s}
.skillbook-card:hover{transform:scale(1.05);border-color:#e0912e;box-shadow:0 2px 8px rgba(224,145,46,.25)}
.skillbook-card.sb-owned{opacity:.55;border-style:dashed}
.skillbook-card .sb-ico{display:flex;justify-content:center;margin-bottom:2px}
.skillbook-card .sb-ico svg{width:34px;height:34px}
.skillbook-card .sb-name{font-size:12px;color:var(--txt2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.skillbook-card .sb-cnt{font-size:11px;color:var(--gold);margin-top:1px}
.skillbook-card .sb-tag{position:absolute;top:-5px;right:-5px;background:#bbb;color:#fff;font-size:9px;padding:1px 6px;border-radius:8px}

/* v1.3.5-5：集市查看面板上下两栏（定比不互相挤），各自内部滚动 */
.market-pane{display:flex;flex-direction:column;height:70vh;min-height:400px;gap:0}
.market-pane-top,.market-pane-bot{flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.market-pane-top{border-bottom:1px dashed var(--line)}
.market-grid-wrap{flex:1 1 0;min-height:0;overflow-y:auto;padding:4px 0}
.market-pane-bot .market-grid-wrap{padding-bottom:6px}
/* v1.3.5-5：求购卡片紧凑 */
.order-card{padding:4px 5px!important;gap:2px!important}
.order-card .mk-name{font-size:10.5px;line-height:1.15}
.order-card .mk-sub{font-size:8.5px}
.order-card .mk-seller{font-size:8.5px}
.order-card .mks-ico,.order-card .mk-ico-mini{width:24px!important;height:24px!important}
.order-card .mks-ico svg,.order-card .mk-ico-mini svg{width:24px!important;height:24px!important}
.order-card .mk-buy-btn{padding:3px 4px;font-size:9px;margin-top:2px}
.mk-ico-row .mks-ico,.mk-ico-row .mk-ico-mini{width:24px!important;height:24px!important}
.mk-ico-row .mks-ico svg,.mk-ico-row .mk-ico-mini svg{width:24px!important;height:24px!important}
.mk-ico-num{font-size:10px;color:var(--gold);font-weight:700}
/* v1.3.6：查看交易 2 大子页 + 求购卡片新样式 */
.fashu-bigtabs{display:flex;gap:8px;margin:8px 0 6px}
.fashu-big{flex:1;padding:9px 0;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--txt);font-size:14px;font-weight:600;cursor:pointer;transition:.15s;font-family:var(--serif);letter-spacing:1px}
.fashu-big.active{background:linear-gradient(135deg,#e8b954,#c9a045);color:#fff;border-color:#c9a045;box-shadow:0 2px 6px rgba(201,160,69,.3)}
.fashu-big.active.order-active{background:linear-gradient(135deg,#3aa860,#2d8a4a);border-color:#3aa860;box-shadow:0 2px 6px rgba(58,168,96,.3)}
.mk-ico-row{display:flex;align-items:center;gap:4px}
.mk-ico-row .mks-ico,.mk-ico-row .mk-ico-mini{width:30px!important;height:30px!important;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent!important;border:none!important}
.mk-ico-row .mks-ico svg,.mk-ico-row .mk-ico-mini svg{width:30px!important;height:30px!important}
.mk-ico-num{font-size:11px;color:var(--gold);font-weight:700}
.mk-order-pending{font-size:10px;color:#2d8a4a;font-weight:600;background:#e8f7ec;border-radius:4px;padding:1px 5px;display:inline-block;width:max-content}
.mk-order-mine{font-size:10px;color:var(--mut);font-weight:600}

/* ===== v1.3.4-3 灵兽施法光晕（学人物回血，去掉方框改 drop-shadow 多层光晕扩散） ===== */
/* v1.3.4-4：人物施法光晕（学灵兽 casting 同款多层 drop-shadow 光晕扩散） */
.player-card.casting{animation:playerCastGlow .7s ease;filter:drop-shadow(0 0 12px var(--hitc,#8b6cf0)) drop-shadow(0 0 26px rgba(139,108,240,.5));z-index:3}
@keyframes playerCastGlow{0%{transform:scale(1)}30%{transform:scale(1.08)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.battle-beast.casting{animation:castGlow .62s ease;filter:drop-shadow(0 0 10px var(--hitc,#8b6cf0)) drop-shadow(0 0 22px rgba(139,108,240,.55));z-index:3}
@keyframes castGlow{0%{transform:scale(1)}30%{transform:scale(1.10) rotate(-2deg)}60%{transform:scale(1.06) rotate(2deg)}100%{transform:scale(1)}}
/* v-新增：Boss 施法光晕（副本史诗 Boss / 宗门试炼 Boss 共用）。作用在外围 .enemy-slot 上，
   避开与卡片 lunge(attacking-back) 动画的 transform 冲突；filter 多层 drop-shadow 对标人物 casting */
.enemy-slot.casting-glow{animation:enemySlotGlow .7s ease;z-index:6}
@keyframes enemySlotGlow{0%{filter:none}30%{filter:drop-shadow(0 0 14px var(--hitc,#8b6cf0)) drop-shadow(0 0 28px rgba(139,108,240,.5))}70%{filter:drop-shadow(0 0 14px var(--hitc,#8b6cf0)) drop-shadow(0 0 28px rgba(139,108,240,.5))}100%{filter:none}}
.dmg-pop-crit{font-size:24px!important;font-weight:800!important;color:#ffd700!important;text-shadow:0 1px 3px #7a4a00,0 0 14px rgba(255,215,0,.8)!important;animation:dmgPopCrit .95s ease forwards!important}
@keyframes dmgPopCrit{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}25%{opacity:1;transform:translate(-50%,-55%) scale(1.35)}100%{opacity:0;transform:translate(-50%,-120%) scale(1.05)}}

/* ===== v1.3.9-5 好友私聊全场景悬浮通知 ===== */
/* 外层只负责定位，不拦截点击；按钮本身是圆形，不会挡住其他位置 */
#cs-pm-float{position:fixed;left:12px;top:42%;transform:translateY(-50%);z-index:2000;pointer-events:none;display:none;align-items:center;justify-content:center}
.cs-pm-float-btn{position:relative;width:52px;height:52px;border-radius:50%;border:none;background:linear-gradient(180deg,#ff9a2e,#f06c00);box-shadow:0 4px 14px rgba(240,108,0,.45);cursor:pointer;pointer-events:auto;display:flex;align-items:center;justify-content:center;transition:transform .15s}
.cs-pm-float-btn:active{transform:scale(.92)}
.cs-pm-float-icon{font-size:24px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}
.cs-pm-float-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#e85a5a;color:#fff;border-radius:999px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(0,0,0,.2)}
/* 弹窗 */
#cs-pm-float-modal{position:fixed;inset:0;z-index:2100;display:none;align-items:center;justify-content:center}
.cs-pm-float-bg{position:absolute;inset:0;background:rgba(0,0,0,.35);cursor:pointer}
.cs-pm-float-box{position:relative;width:88vw;max-width:340px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:16px 16px 14px;animation:pmFloatIn .18s ease-out}
@keyframes pmFloatIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.cs-pm-float-hd{font-family:var(--serif);font-size:18px;color:var(--gold);letter-spacing:2px;text-align:center;margin-bottom:12px;font-weight:500}
.cs-pm-float-body{max-height:42vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.cs-pm-float-row{font-size:14px;color:var(--txt);line-height:1.5;padding:8px 10px;background:#fbfbfd;border:1px solid var(--line);border-radius:10px}
.cs-pm-float-row b{color:var(--gold);font-weight:600}
.cs-pm-float-tip{font-size:13px;color:var(--mut);text-align:center;margin-top:4px;padding-top:8px;border-top:1px dashed var(--line)}
.cs-pm-float-ft{display:flex;gap:10px}
.cs-pm-float-ft .cs-btn{flex:1;padding:11px 8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--txt);font-size:14px;font-family:var(--sans);cursor:pointer;transition:.15s}
.cs-pm-float-ft .cs-btn:hover{border-color:var(--gold);color:var(--gold)}
.cs-pm-float-ft .cs-btn:first-child{background:linear-gradient(135deg,#e8b954,#c9a045);color:#fff;border-color:#c9a045}
.cs-pm-float-ft .cs-btn:first-child:hover{filter:brightness(1.05)}

/* ===== v1.0.7 灵兽施法技能名气泡 ===== */
.cast-name{position:absolute;left:50%;top:-8px;transform:translateX(-50%);background:rgba(43,36,80,.92);border:1px solid var(--hitc,#8b6cf0);color:#fff;font-size:12px;font-family:var(--serif);letter-spacing:1px;padding:2px 9px;border-radius:10px;z-index:8;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.35);animation:castName .95s ease forwards}
@keyframes castName{0%{opacity:0;transform:translate(-50%,8px) scale(.7)}25%{opacity:1;transform:translate(-50%,0) scale(1.08)}75%{opacity:1;transform:translate(-50%,-2px) scale(1)}100%{opacity:0;transform:translate(-50%,-12px) scale(.95)}}

/* ===== v1.0.7 灵兽普攻移动攻击动画（移动到目标前→攻击→移回） ===== */
.battle-beast.attack-lunge{animation:beastLunge .52s cubic-bezier(.3,.7,.4,1);z-index:4}
@keyframes beastLunge{0%{transform:translateX(0)}35%{transform:translateX(64px) rotate(4deg)}55%{transform:translateX(64px) rotate(4deg)}100%{transform:translateX(0)}}

/* ===== v1.0.7 法术元素特效（水浪冲击/山压/闪电/火焰） ===== */
.fx-el{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:7;opacity:0}
.fx-water{animation:fxWater .85s ease forwards}
@keyframes fxWater{0%{opacity:0;transform:translate(-70%,-40%) scale(.7)}20%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translate(40%,12%) scale(1.2)}}
.fx-rock{animation:fxRock .82s ease forwards}
@keyframes fxRock{0%{opacity:0;transform:translate(-50%,-180%) scale(.85)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}70%{opacity:.9}100%{opacity:0;transform:translate(-50%,-28%) scale(.95)}}
.fx-bolt{animation:fxBolt .6s ease forwards}
@keyframes fxBolt{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-10deg)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(5deg)}55%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.9)}}
.fx-fire{animation:fxFire .85s ease forwards}
@keyframes fxFire{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}25%{opacity:1}70%{opacity:.9;transform:translate(-50%,-60%) scale(1.12)}100%{opacity:0;transform:translate(-50%,-75%) scale(1.25)}}

/* ===== v1.0.8 固定槽位方案：怪物排版固定 4 个（隐藏槽位占位），灵兽攻击定位到槽位 ===== */
.battle-side.enemy-side{display:grid;grid-template-columns:repeat(3,1fr);gap:1px 8px;justify-content:center;align-content:flex-start}
#battle-scene.dungeon .enemy-side{display:grid;grid-template-columns:repeat(3,1fr);gap:3px 8px}
.enemy-slot{display:flex;justify-content:center;align-items:flex-end;min-height:82px;position:relative}

/* ===== v1.5.9-24 新增 ===== */
/* boss 战独立排版——boss 不再被 3 列网格锁死，单独大容器，明显大于小怪 */
#battle-scene .enemy-side.boss-battle{display:block}
#battle-scene .battle-side.enemy-side.boss-battle{grid-template-columns:none}
#battle-scene.dungeon .enemy-side.boss-battle{display:block}
.boss-row{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px;width:100%;align-content:flex-end}
.boss-center{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:6px}
.minion-col{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:4px}
#battle-scene .enemy-side.boss-battle .boss-card{width:auto;max-width:116px;min-width:0;flex:0 1 auto}
#battle-scene .enemy-side.boss-battle .boss-card .e-img{height:92px;margin-top:14px}
#battle-scene .enemy-side.boss-battle .boss-card .e-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:108px}
.boss-card .e-realm{font-size:8px}
#battle-scene.dungeon .enemy-side.boss-battle .boss-card .e-img{height:88px;margin-top:14px}
#battle-scene.dungeon .enemy-side.boss-battle .minion-col .enemy-card .e-img{height:48px;margin-top:18px}

/* 怪物 debuff 特效层（冰冻冰山 / 燃烧火焰 / 中毒黑雾 / 麻痹雷电） */
.enemy-card .e-fx{position:absolute;inset:0;pointer-events:none;z-index:4}
.enemy-card .fx-ice,.enemy-card .fx-flame,.enemy-card .fx-mist,.enemy-card .fx-bolt{display:none;position:absolute;inset:0}
.enemy-card.frozen .fx-ice{display:block;left:0;right:0;top:auto;bottom:0;width:100%;height:58%;overflow:visible;pointer-events:none;z-index:4;
  background:
    radial-gradient(120% 92% at 50% 122%, rgba(205,238,255,.92), rgba(150,205,255,.38) 46%, transparent 74%),
    linear-gradient(180deg, transparent 32%, rgba(185,228,255,.30) 72%, rgba(220,242,255,.62) 100%);
  border-radius:0 0 14px 14px;
  box-shadow:inset 0 -8px 26px rgba(150,210,255,.8), inset 0 0 18px rgba(255,255,255,.35);
  filter:blur(.3px);
  animation:icePulse 2.6s ease-in-out infinite}
.enemy-card.frozen .fx-ice::before{content:'';position:absolute;inset:0;bottom:0;
  background:
    radial-gradient(circle at 30% 72%, rgba(255,255,255,.95) 0 2px, transparent 3px),
    radial-gradient(circle at 68% 64%, rgba(255,255,255,.85) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 50% 48%, rgba(220,245,255,.8) 0 2px, transparent 3px),
    conic-gradient(from 200deg at 50% 80%, transparent 0 16deg, rgba(200,235,255,.7) 20deg, transparent 24deg 70deg, rgba(200,235,255,.6) 74deg, transparent 78deg 120deg, rgba(200,235,255,.7) 124deg, transparent 128deg);
  -webkit-mask:radial-gradient(120% 90% at 50% 120%, #000 38%, transparent 76%);
  mask:radial-gradient(120% 90% at 50% 120%, #000 38%, transparent 76%);
  mix-blend-mode:screen;opacity:.85;animation:iceShimmer 3s ease-in-out infinite}
.enemy-card.frozen .fx-ice::after{content:'';position:absolute;left:50%;bottom:54%;width:60%;height:42%;transform:translateX(-50%);
  background:radial-gradient(60% 100% at 50% 100%, rgba(255,255,255,.55), transparent 70%);
  filter:blur(4px);animation:iceMist 3.4s ease-in-out infinite}
@keyframes icePulse{0%,100%{opacity:.9}50%{opacity:1}}
@keyframes iceShimmer{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:.95;transform:scale(1.05)}}
@keyframes iceMist{0%,100%{transform:translateX(-50%) translateY(0);opacity:.4}50%{transform:translateX(-50%) translateY(-6px);opacity:.75}}
.enemy-card.burning .fx-flame{display:block;left:0;right:0;top:auto;bottom:0;width:100%;height:62%;overflow:visible;pointer-events:none;z-index:4;
  background:
    radial-gradient(ellipse 36% 58% at 50% 80%, #fff6cf 0%, #ffd24d 16%, #ff8a1e 42%, rgba(255,80,10,.7) 62%, transparent 82%),
    radial-gradient(ellipse 22% 42% at 50% 74%, #fffbe6 0%, #ffe27a 28%, rgba(255,120,20,.55) 62%, transparent 80%);
  filter:blur(.4px) drop-shadow(0 0 10px rgba(255,120,20,.75)) drop-shadow(0 0 18px rgba(255,70,10,.45));
  transform-origin:50% 100%;
  mix-blend-mode:screen;
  animation:flameFlicker .16s ease-in-out infinite alternate}
.enemy-card.burning .fx-flame::before{content:'';position:absolute;left:0;right:0;bottom:0;height:100%;
  background:
    radial-gradient(ellipse 26% 46% at 36% 82%, #ffcf5a 0%, #ff6a18 50%, transparent 76%),
    radial-gradient(ellipse 26% 42% at 66% 84%, #ffd76a 0%, #ff7a1e 50%, transparent 76%);
  transform-origin:50% 100%;
  mix-blend-mode:screen;
  animation:flameFlicker2 .22s ease-in-out infinite alternate}
.enemy-card.burning .fx-flame::after{content:'';position:absolute;left:50%;bottom:42%;width:4px;height:4px;border-radius:50%;
  background:#ffd98a;box-shadow:0 0 8px 2px #ffb24d;transform:translateX(-50%);animation:emberRise 1.1s ease-out infinite}
@keyframes flameFlicker{0%{transform:scaleY(1) scaleX(1) translateX(-1.5px)}100%{transform:scaleY(1.1) scaleX(.94) translateX(1.5px)}}
@keyframes flameFlicker2{0%{transform:scaleY(1.05) translateX(2px)}100%{transform:scaleY(.92) translateX(-2px)}}
@keyframes emberRise{0%{transform:translateX(-50%) translateY(0) scale(1);opacity:0}15%{opacity:1}100%{transform:translateX(-50%) translateY(-34px) scale(.4);opacity:0}}
.enemy-card.poisoned .fx-mist{display:block;left:-14%;top:-14%;width:128%;height:128%;
  background:radial-gradient(circle at 35% 42%,rgba(35,25,45,.62),rgba(18,12,28,.32) 56%,transparent 74%);
  filter:blur(5px);animation:mistDrift 2.6s ease-in-out infinite}
@keyframes mistDrift{0%,100%{transform:translate(0,0) scale(1);opacity:.82}50%{transform:translate(4px,-5px) scale(1.06);opacity:1}}
.enemy-card.stunned .fx-bolt{display:block;inset:6%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 60'%3E%3Cpath d='M16 0 L8 30 L15 30 L10 60 L24 24 L16 24 Z' fill='%23fff59d' stroke='%23fff176' stroke-width='1'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 60'%3E%3Cpath d='M16 0 L8 30 L15 30 L10 60 L24 24 L16 24 Z' fill='%23fff59d' stroke='%23fff176' stroke-width='1'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 60'%3E%3Cpath d='M16 0 L8 30 L15 30 L10 60 L24 24 L16 24 Z' fill='%23fff59d' stroke='%23fff176' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:16% 12%,64% 40%,40% 72%;background-size:30% 52%,24% 44%,26% 48%;
  filter:drop-shadow(0 0 4px rgba(255,240,90,.9));animation:boltFlick .22s steps(2,jump-none) infinite}
@keyframes boltFlick{0%{opacity:.25}50%{opacity:1}100%{opacity:.55}}

/* 万剑归一：绕战斗界面中心的剑圈 */
.sword-ring-item{position:fixed;width:30px;height:96px;pointer-events:none;z-index:8;will-change:transform}
.sword-ring-item svg{display:block;width:28px;height:96px;filter:drop-shadow(0 0 5px rgba(180,220,255,.9))}

/* 副本战斗画面：白底 + 上层图片 70% */
#fuben-screen::before{content:'';position:absolute;inset:0;background:url('assets/system_bgs/zhandou.png') center/cover no-repeat;opacity:.7;pointer-events:none;z-index:-1}
.enemy-slot.empty{visibility:hidden}
.enemy-slot .enemy-card{width:auto;max-width:none;min-width:0}
/* v1.3.6-2：试炼/普通战 boss 卡片封顶 120px（之前 .enemy-slot .enemy-card{max-width:none} 把 boss-card 的 150px 封顶覆盖，导致血条扩展到挤占其他卡片位置造成重合） */
.enemy-slot .boss-card{max-width:140px;min-width:90px}
.enemy-slot .boss-card .e-img{max-width:140px}
/* v1.3.6-2：副本小怪血条加宽到 96px（之前 76px 太窄，长数字如 1653116/18686 会层叠）；bar-in 字号同步调到 8.5px 防止溢出 */
#battle-scene.dungeon .enemy-side .enemy-card .e-hpbar{height:11px;max-width:96px}
#battle-scene.dungeon .enemy-side .enemy-card .e-hpbar .bar-in{font-size:8.5px;white-space:nowrap}

/* ===== v1.0.8 探索战斗紧凑样式（v1.5.9-23 缩小以消除滚动） ===== */
#battle-scene:not(.dungeon) .battle-mid .player-card{width:106px;max-width:106px}
#battle-scene:not(.dungeon) .battle-mid .battle-card{padding:4px 6px}
#battle-scene:not(.dungeon) .enemy-card .e-img{height:62px;margin-top:8px}
#battle-scene:not(.dungeon) .enemy-card .e-info{gap:1px;padding:0 2px;width:auto;min-width:68px}
#battle-scene:not(.dungeon) .enemy-card .e-name{font-size:10px}
#battle-scene:not(.dungeon) .enemy-card .e-realm{font-size:9px}
#battle-scene:not(.dungeon) .enemy-card .e-hpbar{height:9px;width:100%;max-width:none}
#battle-scene:not(.dungeon) .enemy-card .bar-in{font-size:8px}
#battle-scene:not(.dungeon) .beast-slot .battle-beast{max-width:110px}

/* ===== v1.1.3 灵兽合宠系统（独立模块样式，不影响其他系统） ===== */
/* v1.3.2-3：合宠按钮靠右、加大加宽醒目 */
.merge-entry-btn{margin-left:8px;padding:6px 16px;font-size:13px;font-weight:600;vertical-align:middle;border-radius:9px;background:linear-gradient(180deg,#f5d06a,#c9a045)!important;color:#5a4210!important;border:1px solid #a8862a!important;box-shadow:0 1px 4px rgba(201,160,69,.4)}
/* v1.3.2-3：图鉴按钮（次级） */
.tome-entry-btn{margin-left:8px;padding:6px 14px;font-size:13px;font-weight:600;vertical-align:middle;border-radius:9px;background:linear-gradient(180deg,#8aa8e8,#4b6fb8)!important;color:#fff!important;border:1px solid #3a5a9a!important;box-shadow:0 1px 4px rgba(75,111,184,.35)}
.beast-toolbar{white-space:nowrap;flex:none}
/* 图鉴卡片：可点击高亮 */
.tome-card{cursor:pointer;transition:.15s}
.tome-card:hover{border-color:var(--gold);box-shadow:0 2px 8px rgba(201,160,69,.25);transform:translateY(-1px)}
.merge-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:1250}
.merge-bg.show{display:flex}
.merge-box{background:#fff;border-radius:14px;padding:16px 18px;width:92vw;max-width:640px;box-shadow:var(--shadow2)}
.merge-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.merge-title{font-family:var(--serif);font-size:18px;color:var(--ink)}
.merge-tip{font-size:11px;color:var(--mut);line-height:1.6;margin-bottom:10px}
.merge-main{display:flex;align-items:stretch;gap:10px}
.merge-frame{flex:1;min-height:210px;border:1.5px dashed var(--line);border-radius:12px;padding:10px;display:flex;align-items:center;justify-content:center;background:#fafbfc}
.merge-plus{display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--mut);font-weight:700}
.merge-empty{text-align:center;color:var(--mut)}
.merge-pick-btn{padding:10px 16px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--txt2);font-size:14px;cursor:pointer}
.merge-pick-btn:hover{border-color:var(--blue)}
.merge-empty-sub{font-size:11px;margin-top:8px}
.merge-card{width:100%;text-align:center;position:relative}
.merge-card-x{position:absolute;top:2px;right:4px;cursor:pointer;color:var(--mut);font-size:16px;line-height:1}
.merge-card-ava{width:54px;height:54px;border-radius:12px;margin:4px auto 6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-family:var(--serif)}
.merge-card-name{font-size:15px;font-weight:600}
.merge-card-sub{font-size:11px;color:var(--mut);margin:2px 0 6px}
.merge-card-sk{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;max-height:84px;overflow-y:auto;margin-bottom:6px}
.merge-sk{display:inline-block;padding:1px 6px;border:1px solid #3f8ef0;border-radius:8px;font-size:10px;color:var(--txt2);background:#fff}
.merge-sk-none{font-size:10px;color:var(--mut)}
.merge-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.merge-foot .d-btn{min-width:88px}
.merge-pick-box{background:#fff;border-radius:14px;padding:16px 18px;width:92vw;max-width:520px;box-shadow:var(--shadow2);max-height:84vh;overflow-y:auto}
.merge-pick-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.merge-pick-title{font-family:var(--serif);font-size:16px;color:var(--ink)}
.merge-pick-tip{font-size:11px;color:var(--mut);margin-bottom:10px}
.merge-pick-list{display:flex;flex-direction:column;gap:8px}
.merge-pick-card{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff}
.merge-pick-card:hover{border-color:var(--blue);background:#f4f8ff}
.merge-pick-ava{width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-family:var(--serif)}
.merge-pick-name{font-size:14px;font-weight:600}
.merge-pick-sub{font-size:11px;color:var(--mut)}
.merge-result-ava{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-family:var(--serif)}
.merge-result-sk{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:8px;max-height:120px;overflow-y:auto}
/* v1.1.6：合宠升阶特效——结果卡片金色脉冲发光边框 + 顶部「品质升华」徽标 */
.merge-up-glow{position:relative;margin:10px 2px 2px;padding:16px 10px 12px;border:2px solid #ffd76a;border-radius:16px;box-shadow:0 0 16px rgba(255,200,80,.7);background:linear-gradient(180deg,rgba(255,225,150,.20),rgba(255,210,120,.06));animation:mergeUpPulse 1.3s ease-in-out infinite}
@keyframes mergeUpPulse{0%,100%{box-shadow:0 0 10px rgba(255,200,80,.45);border-color:#ffd76a}50%{box-shadow:0 0 30px rgba(255,180,60,.95);border-color:#ffe9a8}}
.merge-up-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#ff9d3c,#ffd76a);color:#5a2c00;font-weight:800;font-size:13px;letter-spacing:1px;padding:3px 14px;border-radius:20px;box-shadow:0 2px 10px rgba(255,150,40,.6);white-space:nowrap;animation:mergeUpBadge 1.3s ease-in-out infinite}
@keyframes mergeUpBadge{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.08)}}

/* ===== v1.1.4 新物品角标 ===== */
.new-badge{position:absolute;top:-5px;left:-5px;z-index:2;background:linear-gradient(135deg,#ff4d4f,#d93025);color:#fff;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;border-radius:8px 8px 8px 0;box-shadow:0 1px 3px rgba(0,0,0,.2);pointer-events:none}
.mat-card{position:relative}
.mat-cell{position:relative}
.beast-a-card{position:relative}
.eq-slot{position:relative}

/* ===== v1.3 宗门系统 ===== */
/* 山脉图容器：固定图片比例，按钮相对容器绝对定位 */
.sect-map{position:relative;width:100%;max-width:520px;margin:8px auto;aspect-ratio:1080/1920;background:#0d1a2b;border-radius:14px;overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.25)}
.sect-map-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* 4 宗门按钮：绝对定位在图片对应建筑上 */
.sect-marker{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:2;user-select:none;-webkit-tap-highlight-color:transparent}
.sect-marker.locked{opacity:.4;cursor:default;pointer-events:none}
.sect-marker-inner{display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,rgba(8,12,20,.78),rgba(8,12,20,.55));border:1.5px solid var(--col);border-radius:30px;padding:6px 14px 6px 6px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 2px 10px var(--col),0 0 0 1px rgba(255,255,255,.1) inset;transition:all .2s ease}
.sect-marker:hover .sect-marker-inner{transform:scale(1.08);box-shadow:0 4px 18px var(--col),0 0 0 2px rgba(255,255,255,.2) inset}
.sect-marker-badge{flex:none;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;border:1px solid var(--col)}
.sect-marker-badge svg{width:32px;height:32px}
.sect-marker-name{font-family:var(--serif);font-size:15px;font-weight:500;color:#fff;letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.sect-marker-pos{font-size:10px;color:var(--col);margin-top:1px;letter-spacing:0.5px}
.sect-marker-text{display:flex;flex-direction:column;line-height:1.15}
.sect-marker-tip{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:4px;font-size:10px;color:var(--col);background:rgba(0,0,0,.55);padding:1px 8px;border-radius:10px;opacity:0;transition:opacity .2s;white-space:nowrap;pointer-events:none}
.sect-marker:hover .sect-marker-tip{opacity:1}
.sect-peak{border-radius:12px;overflow:hidden;cursor:pointer;position:relative;transition:transform .15s}
.sect-peak:hover{transform:scale(1.03)}
.sect-peak.locked{opacity:.55;cursor:default}
.sect-peak.locked:hover{transform:none}
.sect-main-head{display:flex;align-items:center;gap:12px;border:1px solid;border-radius:14px;padding:12px 14px;margin-bottom:8px}
.sect-trait{display:flex;align-items:center;gap:8px;border:1px solid;border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:13px;color:var(--txt2)}
.sect-trait-dot{width:8px;height:8px;border-radius:50%;flex:none}
.sect-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.sect-card{border-radius:12px;padding:12px 8px;text-align:center;background:var(--color-background-secondary,#f7f4ea);cursor:pointer;transition:transform .15s}
.sect-card:hover{transform:scale(1.03)}
.sect-card-ico{font-size:22px;font-weight:500;font-family:var(--serif)}
.sect-card-n{font-size:14px;font-weight:500;color:var(--txt);margin-top:2px}
.sect-card-s{font-size:11px;color:var(--mut);margin-top:1px}
.sect-subhead{display:flex;align-items:center;gap:8px;margin:4px 0 6px}
.sect-back{font-size:13px;font-weight:600;color:#fff;cursor:pointer;padding:6px 14px;border-radius:9px;background:linear-gradient(180deg,#6a5acd,#4b3f9e);border:1px solid #8a7ae0;box-shadow:0 1px 6px rgba(74,63,158,.45)}
.sect-subtitle{font-size:14px;font-weight:500;color:var(--txt)}
.sect-skills{display:flex;flex-direction:column;gap:8px}
.sect-sk-card{border-radius:12px;background:var(--color-background-primary,#fff);padding:10px 12px;border-top:3px solid;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.sect-sk-top{display:flex;align-items:center;gap:8px}
.sect-sp-tier{font-size:11px;color:var(--mut);background:var(--color-background-secondary,#f7f4ea);padding:1px 7px;border-radius:8px}
.sect-sk-lv{margin-left:auto;font-size:12px;color:var(--green)}
.sect-sk-desc{font-size:12px;color:var(--txt2);margin-top:5px;line-height:1.7}
.sect-sk-req{font-size:11px;color:var(--mut);margin-top:6px}
.sect-task{border-radius:12px;background:var(--color-background-primary,#fff);padding:10px 12px;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,.05);position:relative}
.sect-task.done{border-left:3px solid var(--green)}
.sect-task-name{font-size:14px;font-weight:500;color:var(--txt)}
.sect-task-cont{font-size:12px;color:var(--gold);font-weight:500;margin-left:4px}
.sect-task-desc{font-size:11px;color:var(--mut);margin:3px 0 6px;line-height:1.6}
/* v1.3.5：宗门主界面（已加入）—— 背景图 + 5 建筑按钮 + 药丸头部 + 右上角更换 */
.sect-bg-wrap{position:relative;width:100%;border-radius:12px;overflow:hidden}
.sect-bg-img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none;pointer-events:none}
/* v1.3.7：宗门药丸移到左上，背景底色用各宗门 colorLight（避免与宗门背景图撞色），文字 colorDeep */
.sect-pill-top{position:absolute;top:10px;left:12px;display:flex;gap:10px;align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:6px 14px;z-index:5;font-size:13px;box-shadow:0 2px 8px rgba(0,0,0,.18);border:1.5px solid var(--col);background:var(--col-light)}
.sect-pill-name{font-family:var(--serif);font-weight:600;letter-spacing:1px}
.sect-pill-gx{opacity:.95;font-size:12px}
.sect-change-btn{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:6;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 22px;font-size:13px;cursor:pointer;letter-spacing:1px}
.sect-change-btn:hover{background:rgba(180,80,80,.7)}
.sect-bld-btn{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;background:rgba(255,255,255,.78);backdrop-filter:blur(4px);border:1.5px solid;border-radius:12px;padding:6px 12px;cursor:pointer;font-family:inherit;min-width:78px;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.15s;z-index:4}
.sect-bld-btn:hover{background:rgba(255,255,255,.95);transform:translate(-50%,-50%) scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.28)}
.sect-bld-n{font-size:14px;font-weight:600;letter-spacing:1px}
.sect-bld-s{font-size:10.5px;opacity:.7}

.sect-task-prog{font-size:11px;color:var(--mut);margin-top:3px}
.sect-task .d-btn{margin-top:8px}
/* v1.3.1：任务 3 阶段 */
.sect-tstages{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.sect-tstage{font-size:12px;padding:6px 10px;border-radius:9px;background:var(--color-background-secondary,#f7f4ea);line-height:1.5}
.sect-tstage.done{border-left:3px solid var(--green);background:rgba(90,191,122,.08)}
.sect-tstage.now{border-left:3px solid var(--gold);background:rgba(233,196,106,.10)}
.sect-tstage.wait{border-left:3px solid var(--line);opacity:.6}
.sect-relic{display:flex;align-items:center;gap:12px;border:1px solid;border-radius:14px;padding:14px;margin-bottom:10px}
.sect-relic-table{border-radius:12px;overflow:hidden;border:1px solid var(--color-border-tertiary,#e5d8b4)}
.sect-relic-row{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;border-bottom:1px solid var(--color-border-tertiary,#e5d8b4)}
.sect-relic-row:last-child{border-bottom:none}
.sect-relic-row.done{color:var(--mut);background:var(--color-background-secondary,#f7f4ea)}
.sect-relic-row.next{background:var(--color-background-info,#eef2f8);font-weight:500}
.sect-rl{width:46px;flex:none;color:var(--gold);font-weight:500}
.sect-reff{flex:1}
.sect-rcost{color:var(--mut);font-size:11px}
.sect-rdone{color:var(--green)}
.sect-trial-card{border:1px solid;border-radius:14px;padding:12px 14px;margin-bottom:10px}
.sect-trial-top{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:500}
.sect-trial-left{font-size:11px;color:var(--mut);font-weight:400}
.sect-trial-desc{font-size:12px;color:var(--txt2);margin-top:5px;line-height:1.7}
.sect-intro-spell{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}
.sect-sp-desc{font-size:11px;color:var(--mut);margin-left:auto;text-align:right;max-width:55%}
.sect-intro-block{border-radius:12px;background:var(--color-background-secondary,#f7f4ea);padding:10px 12px;margin-bottom:8px}
.sect-intro-title{font-size:12px;color:var(--mut);margin-bottom:4px}

/* ============ v1.4.0-test1 新首页 / 地图（测试版 UI 大改版，框架先行） ============ */

/* 经典 UI 在新首页/地图模式下整体隐藏——功能保留在 #app 内部，不删任何逻辑 */
body.home-mode #topbar,
body.home-mode #tabs,
body.home-mode #scene,
body.home-mode #log-panel,
body.home-mode #quest-panel,
body.home-mode #actions,
body.home-mode footer{display:none !important}
body.map-mode  #topbar,
body.map-mode  #tabs,
body.map-mode  #scene,
body.map-mode  #log-panel,
body.map-mode  #quest-panel,
body.map-mode  #actions,
body.map-mode  footer{display:none !important}

/* ============ #home-scene 新版修炼首页 ============ */
/* v1.4.0-test7：h5 主战场是手机，电脑浏览器也要按手机竖屏比例显示：
   容器固定 480px 宽、100vh 高、水平居中，左右黑边（手机画外区域）。 */
#home-scene{
  position:absolute;
  left:0; top:0;
  width:100%; height:100%;
  overflow:hidden;
  background:transparent;
  z-index:80;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
#home-scene .home-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  background:transparent;
  z-index:1;
  pointer-events:none;
}
/* v1.5.7-9：全屏天气层（春细雨 / 夏雷暴雨 / 秋落叶 / 冬飘雪） */
#home-scene .home-weather{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
/* 冬·飘雪 */
#home-scene .home-weather .snow{
  position:absolute; top:-5%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 40%, #ffffff, #d4ecff 70%, rgba(212,236,255,0));
  box-shadow:0 0 3px rgba(255,255,255,.6);
  animation:snowFall linear infinite;
  will-change:transform,opacity;
}
@keyframes snowFall{
  0%   { transform:translate(0, -10px); opacity:0; }
  10%  { opacity:.85; }
  90%  { opacity:.85; }
  100% { transform:translate(var(--drift,20px), 105vh); opacity:0; }
}
/* 春·细雨 */
#home-scene .home-weather .rain{
  position:absolute; top:-5%;
  width:1px; height:22px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(190,220,255,.9) 70%, rgba(190,220,255,0));
  border-radius:1px;
  animation:rainFall linear infinite;
  will-change:transform,opacity;
}
@keyframes rainFall{
  0%   { transform:translate(0, -30px); opacity:0; }
  10%  { opacity:.75; }
  90%  { opacity:.65; }
  100% { transform:translate(12px, 105vh); opacity:0; }
}
/* 夏·雷暴雨 */
#home-scene .home-weather .storm{
  position:absolute; top:-10%;
  width:2px; height:42px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(215,235,255,.95) 60%, rgba(215,235,255,0));
  border-radius:1px;
  animation:stormFall linear infinite;
  will-change:transform,opacity;
}
/* 夏·雷暴雨：白色闪电（双层闪光），覆盖整屏，不遮挡雨丝 */
#home-scene .home-weather.storm-active::after{
  content:'';
  position:absolute; inset:0; z-index:3;
  background:rgba(255,255,255,0);
  pointer-events:none;
  animation:stormFlash 6.5s infinite;
}
@keyframes stormFall{
  0%   { transform:translate(0, -50px); opacity:0; }
  5%   { opacity:.9; }
  90%  { opacity:.8; }
  100% { transform:translate(28px, 105vh); opacity:0; }
}
@keyframes stormFlash{
  0%, 90%, 100%{ background:rgba(255,255,255,0); }
  91%{ background:rgba(255,255,255,.55); }
  92%{ background:rgba(255,255,255,.12); }
  93%{ background:rgba(255,255,255,.62); }
  94%{ background:rgba(255,255,255,0); }
  96%{ background:rgba(200,225,255,.35); }
  97%{ background:rgba(255,255,255,0); }
}
/* 秋·枫叶（秋风）：三裂叶 + 一根叶柄，大小不一，远虚近清，整体从右向左飘 */
#home-scene .home-weather .leaf{
  position:absolute; top:-12%;
  width:8px; height:12px;
  background:linear-gradient(135deg, #e2532e, #c7361c 60%, #8c1f0e);
  /* 枫叶：底部为叶柄，上方三个叶尖（左/中/右），不再是多角星 */
  clip-path:polygon(
    50% 100%, 46% 78%,
    28% 82%, 18% 62%, 34% 56%,
    40% 40%, 50% 22%,
    60% 40%, 66% 56%,
    82% 62%, 72% 82%, 54% 78%
  );
  animation:leafDrift linear infinite;
  will-change:transform,opacity;
}
@keyframes leafDrift{
  0%   { transform:translate(112vw, -8vh) rotate(0deg); opacity:0; }
  8%   { opacity:.9; }
  92%  { opacity:.7; }
  100% { transform:translate(-14vw, 94vh) rotate(-540deg); opacity:0; }
}
/* v1.5.4-3：人物修炼图周围灵气上升光球（模糊小光球，由大变小上升） */
#home-scene .home-spirit{
  position:absolute; left:50%; top:55%;
  width:260px; height:260px;
  transform:translate(-50%, -50%);
  z-index:4; pointer-events:none; overflow:visible;
}
#home-scene .home-spirit .orb{
  position:absolute; bottom:32%; left:50%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 38%, rgba(200,255,228,.95), rgba(130,222,255,.55) 48%, rgba(130,222,255,0) 72%);
  filter:blur(3px);
  animation:orbRise ease-in infinite;
  will-change:transform,opacity;
}
@keyframes orbRise{
  0%   { transform:translate(-50%,0) scale(1.5); opacity:0; }
  15%  { opacity:.9; }
  80%  { opacity:.55; }
  100% { transform:translate(-50%,-190px) scale(.4); opacity:0; }
}
/* v1.5.4-3：主角图轻微浮动，画面更有生气 */
#home-scene .home-hero{ animation:heroFloat 4.5s ease-in-out infinite; }
@keyframes heroFloat{
  0%,100% { transform:translate(-50%,-50%); }
  50%     { transform:translate(-50%, calc(-50% - 8px)); }
}
/* 主角图：坐在中央打坐台上，进度条移到打坐台下方 */
#home-scene .home-hero{
  position:absolute;
  left:48.5%; top:51.5%;
  transform:translate(-50%, -50%);
  width:120px; max-width:38vw;
  height:auto;
  z-index:3;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.45));
  transition:transform .15s;
  pointer-events:none;
}
/* v1.5.4：人物修炼图下方自动修炼倒计时 */
#home-scene .home-xiulian-time{
  position:absolute; left:50%; top:60%; transform:translateX(-50%);
  font-family:var(--serif); font-size:13px; font-weight:700;
  color:#ffd87a; letter-spacing:1px;
  text-shadow:0 0 8px rgba(255,170,50,.7), 0 1px 3px rgba(0,0,0,.8);
  background:rgba(0,0,0,.35); padding:4px 12px; border-radius:20px;
  pointer-events:none; z-index:5; white-space:nowrap;
}
/* 左上角玩家信息条：头像 + 名字 + ID + 灵石 */
#home-scene .home-topbar{
  position:absolute;
  left:14px; top:14px;
  display:flex; align-items:center; gap:10px;
  z-index:6;
}
#home-scene .home-avatar-wrap{
  display:flex; align-items:center; gap:10px;
  cursor:pointer;
}
#home-scene .home-avatar{
  width:46px; height:46px; border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(243,215,138,.7);
  box-shadow:0 4px 12px rgba(0,0,0,.45);
  background:radial-gradient(circle at 35% 30%, #fff7d8, #f0e3b8);
}
#home-scene .home-meta{display:flex; flex-direction:column; gap:1px}
#home-scene .home-name{
  font-family:var(--serif);
  font-size:16px; font-weight:700;
  color:#fff;
  letter-spacing:1.5px;
  text-shadow:0 1px 4px rgba(0,0,0,.7);
}
/* 人物名字后的宗门标识 */
#home-scene .home-sect-tag{
  display:inline-flex; align-items:center;
  font-size:11px; line-height:1.4; letter-spacing:.5px;
  color:rgba(255,255,255,.85);
  text-shadow:0 1px 3px rgba(0,0,0,.6);
}
#home-scene .home-sect-tag .sect-badge-tag{ font-size:10px; }
#home-scene .home-id{
  display:inline-block;
  padding:1px 6px;
  border-radius:6px;
  background:rgba(214,216,220,.62);
  border:1px solid rgba(255,255,255,.3);
  font-size:10px; color:#3a3d42; letter-spacing:.5px;
  text-shadow:none;
}
/* 灵石药丸：浅金色底色 + 居中对齐（v1.4.0-test25） */
#home-scene .home-stone-pill{
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:5px 16px;
  border-radius:999px;
  background:linear-gradient(180deg, #fdf3d0, #f1e2a6);
  border:1px solid rgba(201,160,69,.55);
  backdrop-filter:blur(4px);
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
#home-scene .home-stone-pill img{width:16px;height:16px;object-fit:contain}
#home-scene .home-stone-pill span{
  font-family:var(--serif);font-size:13px;font-weight:700;color:#8a6a1e;letter-spacing:.5px;text-align:center
}
/* 修仙历药丸：放在灵石右侧，两行文字 */
#home-scene .home-calendar-pill{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:3px 12px; min-width:78px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(230,240,255,.88));
  border:1px solid rgba(120,160,200,.45);
  backdrop-filter:blur(4px);
  box-shadow:0 2px 8px rgba(0,0,0,.22);
}
#home-scene .home-calendar-label{
  font-family:var(--serif); font-size:9px; color:#5a7a9a; letter-spacing:1px;
}
#home-scene .home-calendar-date{
  font-family:var(--serif); font-size:12px; font-weight:700; color:#2c4a66; letter-spacing:.5px;
}
/* ===== 首页图标按钮：图标在上、系统名在下，间隙收紧并锁定为一个整体 ===== */
#home-scene .home-icon-btn{
  position:relative;
  width:auto; height:auto; padding:4px 8px;
  background:transparent;
  border:none;
  border-radius:10px;
  cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  gap:0;
  transition:transform .15s, background .15s;
  -webkit-tap-highlight-color:transparent; user-select:none;
}
#home-scene .home-icon-btn:active{ background:rgba(255,255,255,.12); transform:scale(.95); }
#home-scene .home-icon-btn .home-icon-wrap{
  width:46px; height:46px; padding:2px; box-sizing:border-box;
  background:radial-gradient(circle at 50% 35%, rgba(70,48,24,.55), rgba(0,0,0,.45));
  border:2px solid rgba(255,255,255,.5);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.4);
  transition:transform .15s;
}
#home-scene .home-icon-btn img{ width:64px; height:64px; object-fit:contain; pointer-events:none; filter:none; }   /* 圆形与头像同大(46px)，内部图片放大溢出被圆形裁切填满 */
#home-scene .home-icon-btn .home-icon-label{
  font-size:15px; font-family:var(--serif); color:#000; letter-spacing:1px;
  text-shadow:0 0 4px rgba(255,140,0,.9), 0 0 8px rgba(255,120,0,.7), 0 1px 2px rgba(255,255,255,.6);
  white-space:nowrap; line-height:1.1; margin-top:2px;
}
#home-scene .home-icon-btn:active .home-icon-wrap{ transform:scale(.92); }
/* 左右两竖列：左=排行榜/世界/交易/好友/背包，右=法术/阵法/炼丹/灵兽/地图/历练（对齐，上移到 10%） */
#home-scene .home-col{
  position:absolute; top:10%;
  display:flex; flex-direction:column; gap:6px; z-index:5;
}
#home-scene .home-col-left{ left:14px; align-items:flex-start; }
#home-scene .home-col-right{ right:14px; align-items:flex-end; }
/* v1.5.7：排行榜与签到同行（签到置于排行榜右侧） */
#home-scene .home-col-row{ display:flex; flex-direction:row; gap:6px; }

#home-scene .home-zhenfa{ position:static; }
/* 右列已并入 .home-col-right（世界/好友入口按钮移入），不再单独定位 */
/* 首页按钮角标 */
.home-badge{
  position:absolute; right:-6px; top:-6px;
  min-width:18px; height:18px; padding:0 5px;
  background:var(--red); color:#fff;
  border-radius:9px; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
  z-index:2;
}
/* 静音开关：右上角 */
#home-scene .home-mute{
  position:absolute; right:14px; top:14px; z-index:6;
  width:38px; height:38px; padding:0;
  background:rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.4);
  color:#fff; font-size:16px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
#home-scene .home-mute.off{ opacity:.5; }
/* 首页世界聊天：已改为弹窗入口按钮，原内联聊天隐藏 */
#home-scene .home-chat{ display:none !important; }
/* 保留旧样式，避免被覆盖 */
#home-scene .home-chat{
  position:absolute; left:0; right:0; bottom:54%; z-index:6;
  width:100%;
  display:flex; flex-direction:column; gap:0;
  pointer-events:auto;
  background:rgba(220,220,220,.18);
  backdrop-filter:blur(2px);
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}
#home-scene .home-chat-list{
  height:88px; max-height:88px; overflow-y:auto;
  display:flex; flex-direction:column; justify-content:flex-end;
  font-size:12px; line-height:1.45;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.7);
  scrollbar-width:none;
  padding:6px 14px;
}
#home-scene .home-chat-list::-webkit-scrollbar{ display:none; }
#home-scene .home-chat-list .hc-line{ display:flex; align-items:baseline; gap:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#home-scene .home-chat-list .hc-name{ color:#ffd76a; flex-shrink:0; }
#home-scene .home-chat-list .hc-text{ color:#fff; }
#home-scene .home-chat-input-row{
  display:flex; align-items:center; gap:6px;
  padding:6px 14px;
}
#home-scene .home-chat-input{
  flex:1; height:30px; padding:0 10px;
  border:1px solid rgba(255,255,255,.35); border-radius:15px;
  background:rgba(0,0,0,.45); backdrop-filter:blur(4px);
  color:#fff; font-size:12px; outline:none;
}
#home-scene .home-chat-input::placeholder{ color:rgba(255,255,255,.55); }
#home-scene .home-chat-input:disabled{ opacity:.6; }
#home-scene .home-chat-send{
  height:30px; padding:0 12px;
  border:none; border-radius:15px;
  background:linear-gradient(180deg,#52c781,#2d8a55);
  color:#000; font-size:12px; font-weight:700;
  text-shadow:0 0 4px rgba(255,140,0,.8);
  cursor:pointer;
}
#home-scene .home-chat-send:disabled{ opacity:.6; cursor:not-allowed; }
/* 左列已并入 .home-col-left（排行榜/交易入口按钮移入），不再单独定位 */
/* 底部一排入口已上移为左右两竖列（.home-col），不再单独定位 */
/* 人物打坐台下方：修炼进度条 + 突破/渡劫按钮 + 境界 */
#home-scene .home-cult-wrap{
  position:absolute;
  left:50%; top:73%;
  transform:translate(-50%, 15vh);   /* 整体下移视口高度的 15% */
  width:70%; max-width:300px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  z-index:5;
}
#home-scene .home-cult-row{
  width:auto;
  display:flex; align-items:center; justify-content:center; gap:10px;
}
#home-scene .home-cult-bar{
  width:80%; position:relative; height:16px; flex:none;
  background:rgba(0,0,0,.45);
  border-radius:8px; overflow:hidden;
  border:1px solid rgba(255,255,255,.25);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.35);
}
#home-scene .home-cult-bar>i{
  display:block; height:100%; border-radius:9px;
  background:linear-gradient(90deg,#3eb873,#5fcf8a);
  transition:width .4s;
}
#home-scene .home-cult-bar>span{
  position:absolute; left:0; top:0; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; color:#fff; font-weight:700;
  text-shadow:0 1px 2px rgba(0,0,0,.8);
  letter-spacing:.5px;
  white-space:nowrap;
}
#home-scene .home-bt-btn{
  margin-top:0;
  padding:7px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#f6f7f9;
  color:var(--mut);
  font-family:var(--serif); font-size:13px; font-weight:600; letter-spacing:1.5px;
  cursor:not-allowed; flex-shrink:0;
  transition:.18s;
}
#home-scene .home-bt-btn.ready{
  color:#fff;
  background:linear-gradient(135deg,#e0bc6c,#c9a045);
  border-color:#bf8f33;
  cursor:pointer;
  box-shadow:0 2px 6px rgba(201,160,69,.4);
  animation:btpulse 1.2s ease-in-out infinite;
}
#home-scene .home-bt-btn.ready:hover{filter:brightness(1.08)}
#home-scene .home-realm{
  font-family:var(--serif); font-size:17px; font-weight:700;
  color:#f3d78a; letter-spacing:2px;
  text-shadow:0 0 6px rgba(255,170,60,.85), 0 0 12px rgba(255,140,0,.65), 0 1px 4px rgba(0,0,0,.7);
}
/* 突破/渡劫丹药使用倒计时（境界下方） */
#home-scene .home-danbuff{
  display:inline-flex; align-items:center; gap:4px;
  padding:2px 10px; border-radius:12px;
  background:linear-gradient(180deg,#fff3e0,#ffe0b2);
  border:1px solid #e0912e;
  color:#b96a00; font-size:12px; font-weight:700; white-space:nowrap;
  box-shadow:0 1px 4px rgba(0,0,0,.3);
}
/* 历练按钮（阵法按钮下方） */
#home-scene .home-adv{
  padding:12px 30px;
  font-family:var(--serif); font-size:15px; font-weight:700;
  letter-spacing:3px;
  color:#000;
  text-shadow:0 0 4px rgba(255,140,0,.9), 0 0 8px rgba(255,120,0,.7), 0 1px 2px rgba(255,255,255,.5);
  background:linear-gradient(180deg,#52c781,#2d8a55);
  border:1px solid #1e6a40;
  border-radius:26px;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.4), inset 0 -2px 0 rgba(0,0,0,.15);
  white-space:nowrap;
  transition:transform .15s, box-shadow .15s;
}
#home-scene .home-adv:active{transform:scale(.96)}
#home-scene .home-adv.active{
  background:linear-gradient(180deg,#ffb95c,#d97a2b);
  border-color:#a85b18;
  color:#fff;
  box-shadow:0 4px 14px rgba(217,122,43,.6), inset 0 -2px 0 rgba(0,0,0,.15);
}
/* v1.4.0-test25：试炼（历练）按钮——试炼中发光 + 波纹特效 */
#home-scene .home-trial{ position:relative; }
#home-scene .home-trial.active .home-icon-wrap{
  border-radius:50%;
  animation:trialGlow 1.4s ease-in-out infinite;
}
#home-scene .home-trial.active::after{
  content:''; position:absolute; left:50%; top:calc(24px + 1vh); transform:translate(-50%,-50%);   /* v1.5.2-2：光圈下移约1%视口高度 */
  width:48px; height:48px; border-radius:50%;
  border:2px solid rgba(255,200,80,.9);
  box-shadow:0 0 8px 2px rgba(255,200,80,.6);
  animation:trialRipple 1.6s ease-out infinite;
  pointer-events:none;
}
@keyframes trialGlow{0%,100%{box-shadow:0 0 10px 2px rgba(255,200,80,.55)}50%{box-shadow:0 0 18px 6px rgba(255,200,80,.95)}}
@keyframes trialRipple{0%{transform:translate(-50%,-50%) scale(.55);opacity:.9}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
/* 试炼中文字（人物修炼图下方，绝对定位，不挤动进度条） */
#home-scene .home-trial-tip{
  position:absolute; left:50%; top:60%; transform:translate(-50%,-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:2px;
  color:#ffd76a; text-shadow:0 0 8px rgba(255,170,60,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:4; white-space:nowrap;
}

/* v1.5.0：悟道台按钮——开启中发光 + 波纹特效（青紫色，区别于试炼的金色） */
#home-scene .home-wudao{ position:relative; }
#home-scene .home-wudao.active .home-icon-wrap{
  border-radius:50%;
  animation:wudaoGlow 1.4s ease-in-out infinite;
}
#home-scene .home-wudao.active::after{
  content:''; position:absolute; left:50%; top:calc(24px + 1vh); transform:translate(-50%,-50%);   /* v1.5.2-2：光圈下移约1%视口高度 */
  width:48px; height:48px; border-radius:50%;
  border:2px solid rgba(150,120,255,.9);
  box-shadow:0 0 8px 2px rgba(150,120,255,.6);
  animation:wudaoRipple 1.6s ease-out infinite;
  pointer-events:none;
}
@keyframes wudaoGlow{0%,100%{box-shadow:0 0 10px 2px rgba(150,120,255,.5)}50%{box-shadow:0 0 18px 6px rgba(150,120,255,.9)}}
@keyframes wudaoRipple{0%{transform:translate(-50%,-50%) scale(.55);opacity:.9}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
/* v1.5.4：阵法按钮——阵法生效中发光 + 波纹特效（绿色，与悟道台同机制） */
#home-scene .home-zhenfa{ position:relative; }
#home-scene .home-zhenfa.active .home-icon-wrap{
  border-radius:50%;
  animation:zhenfaGlow 1.4s ease-in-out infinite;
}
#home-scene .home-zhenfa.active::after{
  content:''; position:absolute; left:50%; top:calc(24px + 1vh); transform:translate(-50%,-50%);
  width:48px; height:48px; border-radius:50%;
  border:2px solid rgba(60,184,115,.9);
  box-shadow:0 0 8px 2px rgba(60,184,115,.6);
  animation:zhenfaRipple 1.6s ease-out infinite;
  pointer-events:none;
}
@keyframes zhenfaGlow{0%,100%{box-shadow:0 0 10px 2px rgba(60,184,115,.5)}50%{box-shadow:0 0 18px 6px rgba(60,184,115,.9)}}
@keyframes zhenfaRipple{0%{transform:translate(-50%,-50%) scale(.55);opacity:.9}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
/* 悟道台修炼中文字（人物修炼图下方，比试炼提示略低，避免重叠） */
#home-scene .home-wudao-tip{
  position:absolute; left:50%; top:72%; transform:translate(-50%,-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:1px;
  color:#c9b6ff; text-shadow:0 0 8px rgba(150,120,255,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:4; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; line-height:1.55;
}
/* 经典（#app）修炼图下的悟道台提示 */
.app-wudao-tip{
  position:absolute; left:50%; bottom:8px; transform:translateX(-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:1px;
  color:#c9b6ff; text-shadow:0 0 8px rgba(150,120,255,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:5; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; line-height:1.5;
}
.wd-tip-line{ white-space:nowrap; }
/* v1.5.4：聚灵阵修炼图三行提示（绿色，与悟道台紫色区分） */
#home-scene .home-juling-tip{
  position:absolute; left:50%; top:72%; transform:translate(-50%,-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:1px;
  color:#8ff0b0; text-shadow:0 0 8px rgba(60,184,115,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:4; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; line-height:1.55;
}
/* v1.5.5：时光秘境修炼中提示（金橙色，与聚灵阵绿/悟道台紫区分） */
#home-scene .home-shiguang-tip{
  position:absolute; left:50%; top:84%; transform:translate(-50%,-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:1px;
  color:#ffd76a; text-shadow:0 0 8px rgba(255,170,60,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:4; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; line-height:1.55;
}
.sg-tip-line{ white-space:nowrap; }
/* v1.5.5：试炼选择 / 时光秘境弹窗样式 */
.trial-sel{ padding:14px; }
.trial-sec{ font-size:14px; color:var(--mut); margin-bottom:12px; }
.trial-opt{ display:block; width:100%; text-align:left; background:rgba(255,255,255,.05); border:1px solid rgba(255,215,106,.4); border-radius:10px; padding:12px 14px; margin-bottom:14px; color:#f0e6d2; cursor:pointer; box-shadow:0 0 0 1px rgba(0,0,0,.25) inset; }
.trial-opt + .trial-opt{ position:relative; }
.trial-opt + .trial-opt::before{ content:''; position:absolute; top:-13px; left:8%; right:8%; height:1px; background:linear-gradient(90deg,transparent,rgba(255,215,106,.45),transparent); }
.trial-opt:hover{ background:rgba(255,215,106,.12); border-color:rgba(255,215,106,.85); }
.trial-opt-name{ font-size:16px; font-weight:700; color:var(--gold); margin-bottom:4px; }
.trial-opt-desc{ font-size:13px; color:#cfc3ad; line-height:1.5; }
.trial-tip{ font-size:12px; color:var(--mut); margin-top:6px; }
.sg-sel{ padding:14px; }
.sg-sec{ font-size:13px; color:#cfc3ad; line-height:1.6; margin-bottom:12px; }
.sg-sec b{ color:var(--gold); }
.sg-dur-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.sg-dur-btn{ padding:10px 0; border:1px solid rgba(255,255,255,.15); border-radius:8px; background:rgba(255,255,255,.05); color:#f0e6d2; cursor:pointer; }
.sg-dur-btn.on{ background:rgba(255,215,106,.18); border-color:var(--gold); color:var(--gold); font-weight:700; }
.sg-preview{ font-size:13px; color:#cfc3ad; margin-top:10px; }
.sg-preview b{ color:var(--gold); }
.app-juling-tip{
  position:absolute; left:50%; bottom:8px; transform:translateX(-50%);
  font-family:var(--serif); font-size:14px; font-weight:700; letter-spacing:1px;
  color:#8ff0b0; text-shadow:0 0 8px rgba(60,184,115,.9), 0 1px 3px rgba(0,0,0,.8);
  pointer-events:none; z-index:5; white-space:nowrap;
  display:flex; flex-direction:column; align-items:center; line-height:1.5;
}
.jl-tip-line{ white-space:nowrap; }
/* v1.5.4：聚灵阵选择窗口 */
.jl-sel{ padding:14px 6px 4px; }
.jl-sec-title{ font-size:14px; color:var(--mut); margin:10px 0 8px; text-align:center; }
.jl-lv-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.jl-lv-btn{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:13px 4px; border-radius:10px; cursor:pointer;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  color:var(--ink); font-size:15px; font-weight:700; transition:.12s;
}
.jl-lv-btn .jl-lv-sub{ font-size:11px; font-weight:400; color:var(--mut); line-height:1.3; }
.jl-lv-btn:hover{ background:rgba(60,184,115,.14); }
.jl-lv-btn.on{ background:rgba(60,184,115,.28); border-color:var(--green); color:#dffbe9; box-shadow:0 0 10px rgba(60,184,115,.5); }
.jl-dur-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
/* v1.5.4：聚灵阵确认布置窗口 */
.jl-confirm{ padding:6px 4px 4px; }
.jl-confirm-row{ font-size:14px; color:var(--ink); line-height:1.9; text-align:center; }
.jl-confirm-row b{ color:#dffbe9; }
.jl-confirm-warn{ margin-top:8px; font-size:12.5px; color:#ffcf6a; text-align:center; line-height:1.5; }
.jl-dur-btn{
  padding:13px 2px; border-radius:10px; cursor:pointer; text-align:center;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  color:var(--ink); font-size:15px; font-weight:700; transition:.12s;
}
.jl-dur-btn:hover{ background:rgba(58,142,230,.14); }
.jl-dur-btn.on{ background:rgba(58,142,230,.28); border-color:var(--blue); color:#e6f1ff; box-shadow:0 0 10px rgba(58,142,230,.5); }
.jl-preview{ margin-top:14px; padding:10px; border-radius:8px; text-align:center; font-size:14px; background:rgba(0,0,0,.3); color:var(--ink); line-height:1.6; }
.jl-preview b{ color:var(--gold); }
/* 悟道台结果 / 互斥确认窗 */
.wd-result{ padding:14px 4px 4px; text-align:center; }
.wd-line{ font-size:15px; line-height:2; color:var(--ink); }
.wd-line b{ color:var(--gold); }
.wd-conflict{ padding:16px 8px; font-size:15px; line-height:1.8; text-align:center; color:var(--ink); }

/* v1.5.6：修炼按钮（自动修炼中）光圈 + 自动修炼弹窗 + 时光秘境结算弹窗 */
.home-xiulian{ position:relative; }
.home-xiulian.active .home-icon-wrap{
  border-radius:50%;
  border-color:var(--gold);
  animation:xiulianGlow 1.4s ease-in-out infinite;
}
.home-xiulian.active::after{   /* v1.5.4-4：自动修炼中——金色波纹（仿悟道台/阵法机制） */
  content:''; position:absolute; left:50%; top:calc(24px + 1vh); transform:translate(-50%,-50%);
  width:48px; height:48px; border-radius:50%;
  border:2px solid rgba(255,215,106,.9);
  box-shadow:0 0 8px 2px rgba(255,215,106,.6);
  animation:xiulianRipple 1.6s ease-out infinite;
  pointer-events:none;
}
@keyframes xiulianGlow{0%,100%{box-shadow:0 0 10px 2px rgba(255,215,106,.5)}50%{box-shadow:0 0 18px 6px rgba(255,215,106,.9)}}
@keyframes xiulianRipple{0%{transform:translate(-50%,-50%) scale(.55);opacity:.9}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
.home-xiulian.active .home-icon-label{ color:var(--gold); }
.xl-sel{ padding:14px; }
.xl-row{ font-size:14px; color:#f0e6d2; line-height:1.9; margin-bottom:6px; }
.xl-row b{ color:var(--gold); }
.xl-opts{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:10px; }
.xl-tip{ font-size:12px; color:var(--mut); margin-top:12px; line-height:1.6; }
/* v1.5.4：修炼弹窗按钮加高清晰化；v1.5.4-4：阵法/悟道台/时光秘境窗口按钮统一加高（与修炼窗一致） */
.xl-sel .mini-btn, .xl-opts .mini-btn,
.jl-sel .mini-btn, .jl-confirm .mini-btn,
.wd-result .mini-btn, .wd-conflict .mini-btn,
.sg-set .mini-btn{
  font-size:15px; font-weight:700; line-height:1.4;
  padding:12px 0; min-height:46px; border-radius:10px;
  letter-spacing:1px;
}
.sg-set{ padding:14px; }
.sg-set-sec{ font-size:14px; color:#cfc3ad; margin-bottom:10px; }
.sg-set-row{ display:flex; justify-content:space-between; font-size:14px; color:#f0e6d2; padding:7px 10px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:8px; margin-bottom:7px; }
.sg-set-row span:last-child{ color:var(--gold); font-weight:700; }
.sg-set-empty{ font-size:14px; color:var(--mut); padding:14px 0; text-align:center; }
.sg-set-tip{ font-size:13px; color:#cfc3ad; margin-top:10px; }
.sg-set-tip b{ color:var(--gold); }

/* v1.4.0-test2：修炼飘字层（首页时 floatCultText 把 div append 到这里，替换被隐藏的 #cult-scene）
   - 全屏铺满，最高 z-index
   - 子元素 .cult-float 用 top:58% 相对飘字层定位，与人物头顶对齐 */
#home-scene .home-float{
  position:absolute; left:0; top:0; right:0; bottom:0;
  width:100%; height:100%;
  pointer-events:none;
  z-index:6;
  overflow:hidden;
}

/* 灵气 / 阵法光圈效果（v1.4.0-test5 跟随人物 left:48% top:66%，光圈 left:48% top:69%） */
#home-scene .home-aura{
  position:absolute; left:48.5%; top:54.5%; transform:translate(-50%,-50%);   /* v1.5.2-2：右移0.5%、上移0.5% */
  width:46%; height:18%;
  z-index:2;
  pointer-events:none;
  display:none;
  overflow:visible;
}
#home-scene .home-aura.active{display:block}
#home-scene .home-aura .aura-glow{
  position:absolute; left:50%; top:60%; transform:translate(-50%,-50%);
  width:100%; height:80%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(120,235,150,.7) 0%,rgba(80,220,120,.4) 45%,rgba(50,200,90,.15) 75%,transparent 100%);
  filter:blur(2px);
  animation:auraGlow 3.2s ease-in-out infinite;
}
#home-scene .home-aura .aura-core{
  position:absolute; left:50%; top:60%; transform:translate(-50%,-50%);
  width:50%; height:50%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(200,255,210,.85) 0%,rgba(140,240,170,.4) 60%,transparent 100%);
  animation:auraCore 2.4s ease-in-out infinite;
}
#home-scene .home-aura i{
  position:absolute; top:80%; left:50%;
  width:5px; height:5px; border-radius:50%;
  background:radial-gradient(circle,#c8ffd5,#3eb873);
  box-shadow:0 0 8px rgba(100,230,140,.9);
  animation:qilingAura 2.4s ease-in infinite;
}
@keyframes auraCore{0%,100%{opacity:.85;transform:translate(-50%,-50%) scale(.95)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes qilingAura{0%{transform:translateY(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-60px);opacity:0}}
@keyframes auraGlow{0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}
/* v1.5.3：悟道台开启时——打坐台金色光晕雾气 + 3D 环绕阵纹（与聚灵阵绿色区分） */
#home-scene .home-wudao-aura{
  position:absolute; left:50%; top:55%; transform:translate(-50%,-50%);
  width:46vmin; height:46vmin; z-index:2; pointer-events:none; display:none; overflow:visible;
}
#home-scene .home-wudao-aura.on{ display:block; }
/* 柔和金色光晕（中心在人物，圆形容差平滑、无四角） */
#home-scene .home-wudao-aura .wda-mist{
  position:absolute; left:50%; top:46%; transform:translate(-50%,-50%);
  width:92%; height:92%; border-radius:50%;
  background:radial-gradient(circle at center, rgba(255,226,140,.42) 0%, rgba(255,186,55,.22) 38%, rgba(255,150,0,.08) 60%, transparent 72%);
  filter:blur(7px); animation:wdaMist 3.4s ease-in-out infinite;
}
/* 打坐台（人物脚下蒲团）金色光晕 */
#home-scene .home-wudao-aura .wda-platform{
  position:absolute; left:50%; top:74%; transform:translate(-50%,-50%);
  width:82%; height:30%; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,212,110,.55) 0%, rgba(255,172,42,.30) 45%, rgba(255,150,0,.10) 66%, transparent 78%);
  filter:blur(5px); animation:wdaMist 3.4s ease-in-out infinite;
}
/* 3D 环绕阵纹：倾斜成椭圆轨道 + 旋转亮弧，营造环绕修炼图的三维光环 */
#home-scene .home-wudao-aura .wda-orbit{
  position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
  width:100%; height:100%; perspective:800px;
}
#home-scene .home-wudao-aura .wda-orbit::before{   /* 外环：静态倾斜圆 */
  content:''; position:absolute; left:50%; top:50%; width:92%; height:92%;
  border-radius:50%;
  transform:translate(-50%,-50%) rotateX(74deg);
  border:2px solid rgba(255,206,96,.75);
  box-shadow:0 0 14px 3px rgba(255,180,40,.42), inset 0 0 16px rgba(255,210,100,.30);
}
#home-scene .home-wudao-aura .wda-orbit::after{   /* 亮弧：绕轨道旋转，体现 3D 转动 */
  content:''; position:absolute; left:50%; top:50%; width:92%; height:92%;
  border-radius:50%;
  background:conic-gradient(from 0deg, rgba(255,240,180,0) 0deg, rgba(255,240,180,0) 295deg, rgba(255,236,165,1) 338deg, rgba(255,255,235,1) 354deg, rgba(255,240,180,0) 360deg);
  -webkit-mask:radial-gradient(circle, transparent 44%, #000 46%, #000 52%, transparent 54%);
          mask:radial-gradient(circle, transparent 44%, #000 46%, #000 52%, transparent 54%);
  transform:translate(-50%,-50%) rotateX(74deg);
  transform-style:preserve-3d;
  animation:wdaOrbit 5s linear infinite;
}
/* 内层反向旋转阵纹（增加层次与 3D 纵深） */
#home-scene .home-wudao-aura .wda-orbit-2{ width:62%; height:62%; }
#home-scene .home-wudao-aura .wda-orbit-2::before{
  width:100%; height:100%; border:1.5px dashed rgba(255,230,160,.6); box-shadow:none;
}
#home-scene .home-wudao-aura .wda-orbit-2::after{
  width:100%; height:100%;
  background:conic-gradient(from 0deg, rgba(255,235,170,0) 0deg, rgba(255,235,170,0) 300deg, rgba(255,245,200,.9) 345deg, rgba(255,235,170,0) 360deg);
  animation:wdaOrbitRev 7s linear infinite;
}
@keyframes wdaMist{0%,100%{opacity:.72;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}
@keyframes wdaOrbit{from{transform:translate(-50%,-50%) rotateX(74deg) rotateZ(0)}to{transform:translate(-50%,-50%) rotateX(74deg) rotateZ(360deg)}}
@keyframes wdaOrbitRev{from{transform:translate(-50%,-50%) rotateX(74deg) rotateZ(360deg)}to{transform:translate(-50%,-50%) rotateX(74deg) rotateZ(0)}}
/* v1.5.4-4：自动修炼中——打坐台绿色光晕雾气 + 3D 环绕阵纹（与悟道台金色区分，配色同聚灵阵绿色） */
#home-scene .home-xiulian-aura{
  position:absolute; left:50%; top:55%; transform:translate(-50%,-50%);
  width:46vmin; height:46vmin; z-index:2; pointer-events:none; display:none; overflow:visible;
}
#home-scene .home-xiulian-aura.on{ display:block; }
#home-scene .home-xiulian-aura .xia-mist{
  position:absolute; left:50%; top:46%; transform:translate(-50%,-50%);
  width:92%; height:92%; border-radius:50%;
  background:radial-gradient(circle at center, rgba(150,255,190,.40) 0%, rgba(80,220,150,.22) 38%, rgba(60,184,115,.08) 60%, transparent 72%);
  filter:blur(7px); animation:wdaMist 3.4s ease-in-out infinite;
}
#home-scene .home-xiulian-aura .xia-platform{
  position:absolute; left:50%; top:74%; transform:translate(-50%,-50%);
  width:82%; height:30%; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(120,240,170,.55) 0%, rgba(60,200,120,.30) 45%, rgba(40,160,90,.10) 66%, transparent 78%);
  filter:blur(5px); animation:wdaMist 3.4s ease-in-out infinite;
}
#home-scene .home-xiulian-aura .xia-orbit{
  position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
  width:100%; height:100%; perspective:800px;
}
#home-scene .home-xiulian-aura .xia-orbit::before{
  content:''; position:absolute; left:50%; top:50%; width:92%; height:92%;
  border-radius:50%;
  transform:translate(-50%,-50%) rotateX(74deg);
  border:2px solid rgba(120,235,165,.78);
  box-shadow:0 0 14px 3px rgba(60,200,120,.42), inset 0 0 16px rgba(120,240,170,.30);
}
#home-scene .home-xiulian-aura .xia-orbit::after{
  content:''; position:absolute; left:50%; top:50%; width:92%; height:92%;
  border-radius:50%;
  background:conic-gradient(from 0deg, rgba(180,255,210,0) 0deg, rgba(180,255,210,0) 295deg, rgba(170,255,200,1) 338deg, rgba(220,255,235,1) 354deg, rgba(180,255,210,0) 360deg);
  -webkit-mask:radial-gradient(circle, transparent 44%, #000 46%, #000 52%, transparent 54%);
          mask:radial-gradient(circle, transparent 44%, #000 46%, #000 52%, transparent 54%);
  transform:translate(-50%,-50%) rotateX(74deg);
  transform-style:preserve-3d;
  animation:wdaOrbit 5s linear infinite;
}
#home-scene .home-xiulian-aura .xia-orbit-2{ width:62%; height:62%; }
#home-scene .home-xiulian-aura .xia-orbit-2::before{
  width:100%; height:100%; border:1.5px dashed rgba(150,240,185,.6); box-shadow:none;
}
#home-scene .home-xiulian-aura .xia-orbit-2::after{
  width:100%; height:100%;
  background:conic-gradient(from 0deg, rgba(160,245,195,0) 0deg, rgba(160,245,195,0) 300deg, rgba(200,255,225,.9) 345deg, rgba(160,245,195,0) 360deg);
  animation:wdaOrbitRev 7s linear infinite;
}

/* ============ 签到系统面板（v1.5.6） ============ */
.sign-sub{ font-size:13px; color:var(--mut); margin:4px 0 14px; text-align:center; }
.sign-sub b{ color:var(--gold); font-size:15px; }
.sign-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:8px; }
.sign-cell{ position:relative; border-radius:10px; padding:10px 4px 8px; min-height:64px; text-align:center;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; cursor:default; transition:.12s; }
.sign-day{ font-size:15px; font-weight:700; color:var(--ink); }
.sign-lab{ font-size:10px; line-height:1.2; color:var(--mut); }
.sign-ic{ font-size:18px; color:var(--green); font-weight:700; }
.sign-cell.done{ background:rgba(80,200,120,.14); border-color:rgba(80,200,120,.5); }
.sign-cell.done .sign-day{ color:var(--green); }
.sign-cell.today{ background:rgba(255,215,106,.16); border-color:var(--gold); box-shadow:0 0 12px rgba(255,215,106,.5); cursor:pointer; }
.sign-cell.today .sign-day{ color:var(--gold); }
.sign-cell.today:hover{ transform:translateY(-2px); }
.sign-go{ font-size:11px; font-weight:700; color:#1a1206; background:var(--gold); border-radius:6px; padding:2px 8px; }
.sign-cell.future{ opacity:.45; }
.sign-cell.missed{ background:rgba(255,90,90,.08); border-color:rgba(255,90,90,.35); }
.sign-cell.missed .sign-day{ color:#ff8a8a; }
.sign-fill-btn{ font-size:10px; font-weight:700; color:var(--gold); background:rgba(255,215,106,.16); border:1px solid var(--gold); border-radius:6px; padding:2px 6px; cursor:pointer; }
.sign-fill-btn:hover{ background:rgba(255,215,106,.3); }
.sign-tip{ font-size:11px; color:var(--mut); margin-top:12px; text-align:center; line-height:1.5; }
.sign-tip b{ color:var(--gold); }
/* v1.5.8：签到关闭按钮——不再又长又扁：居中、定宽、加高 */
.sign-close-btn{ display:block; width:auto; min-width:160px; margin:18px auto 0; padding:10px 30px; font-size:14px; font-weight:700; letter-spacing:2px; }

/* ============ #map-screen 新版地图 ============ */
/* v1.4.0-test7：同 #home-scene，手机竖屏容器 480×100vh 居中 */
/* 地图：暗色背幕 + 居中窗口，与系统窗口(#quest-panel)/排行榜(#modal)同尺寸 */
#map-screen{
  position:fixed; inset:0;
  width:100%; height:100%;
  overflow:hidden;
  background:rgba(0,0,0,.55);
  z-index:230;
  display:none;
  align-items:center; justify-content:center;
  padding:16px 10px 16px;
  box-sizing:border-box;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:none;
  overscroll-behavior:none;
}
#map-screen .map-window{
  position:relative;
  width:94vw; max-width:520px;
  height:calc(100vh - 140px); max-height:760px;
  border-radius:14px;
  overflow:hidden;
  background:#0c1316 url('img/map_bg.jpg') center/cover no-repeat;
  box-shadow:0 12px 40px rgba(0,0,0,.35);
}
#map-screen .map-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  background:transparent;
  z-index:1;
  pointer-events:none;
}
/* 返回按钮：左上角 */
#map-screen .map-back{
  position:absolute; left:14px; top:14px;
  padding:10px 18px;
  font-family:var(--serif); font-size:14px; font-weight:600;
  letter-spacing:2px;
  color:#fff;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.4);
  border-radius:22px;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.4);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:5;
  transition:transform .15s, background .15s;
}
#map-screen .map-back:active{transform:scale(.96);background:rgba(0,0,0,.75)}

/* 建筑按钮：图标 + 系统名，无圆框，贴合地图地标 */
#map-screen .map-bld{
  position:absolute;
  width:auto; height:auto; min-height:auto;
  padding:6px 10px;
  font-family:var(--serif); font-size:13px; font-weight:700;
  color:#fff;
  text-shadow:0 0 4px rgba(0,0,0,.9), 0 0 8px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.9);
  background:transparent;
  border:none;
  border-radius:10px;
  cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  gap:2px;
  letter-spacing:0;
  z-index:5;
  transition:transform .15s, background .15s;
  touch-action:none;
  user-select:none;
  -webkit-user-drag:none;
  -webkit-tap-highlight-color:transparent;
  --tx:0; --ty:0;
  transform:translate(var(--tx), var(--ty));
}
#map-screen .map-bld:active{ background:rgba(255,255,255,.15); transform:translate(var(--tx), var(--ty)) scale(.92); }
#map-screen .map-bld img{ width:50px; height:50px; object-fit:contain; pointer-events:none; border-radius:50%; padding:3px; box-sizing:border-box; background:radial-gradient(circle at 50% 35%, rgba(70,48,24,.55), rgba(0,0,0,.5)); border:2px solid rgba(255,255,255,.55); filter:drop-shadow(0 0 5px rgba(255,140,0,.6)); }
#map-screen .map-bld-label{ font-size:15px; line-height:1.1; text-align:center; pointer-events:none; margin-top:0; color:#fff; font-family:var(--serif); font-weight:700; text-shadow:0 0 4px rgba(0,0,0,.9), 0 1px 3px rgba(0,0,0,.9); }
/* 地图只保留宗门/探索/副本/商铺；位置按 Boss 截图箭头精确对齐地标 */
#map-screen .m-sect    {left:55%; top:18%; --tx:-50%}
#map-screen .m-tansuo  {left:18%; top:38%; --tx:-50%}
#map-screen .m-fuben   {left:72%; top:52%; --tx:-50%}
#map-screen .m-jiaoyi  {left:68%; top:76%; --tx:-50%}
/* 小屏（≤420px）略微缩小图标 */
@media (max-width:420px){
  #map-screen .map-bld img{width:40px;height:40px}
  #home-scene .home-icon-wrap{width:40px;height:40px}
  #home-scene .home-icon-btn img{width:56px;height:56px;object-fit:contain}
  #home-scene .home-icon-label{font-size:10px}
  #home-scene .home-adv{padding:10px 22px;font-size:14px}
}

/* ============ 大重构：系统窗口（地图 → 建筑 → 系统窗口） ============
   设计（Boss 要求，简单稳定）：
   - #quest-panel 就是「系统窗口」本体：tab 函数本来就渲染进它。
   - building-open 时，#quest-panel 用固定 480px 竖屏窗口浮起（可全屏），层级高于首页/地图(80)。
   - #topbar（名字/ID/境界/灵石/排行/背包）常驻顶部，层级高于窗口，不被遮挡。
   - 绝不用 ID 替换 hack，不用额外浮层，避免链路脆弱导致的白/黑屏。
   关键修复（前几版按钮点不动）：#app 设 pointer-events:none 让点击穿透到 #quest-panel，
   但 #topbar 与 #quest-panel 各自 pointer-events:auto 恢复可点。 */
body.building-open #home-scene,
body.building-open #map-screen{display:none !important}

/* 经典 chrome 隐藏，只留 #topbar（玩家信息条）与 #quest-panel（系统窗口）。
   注意：#quest-panel 是 #log-panel 的子元素，绝不能隐藏 #log-panel 本身，
   否则连系统窗口一起被 display:none 干掉（这就是之前空白的原因）。 */
body.building-open #tabs,
body.building-open #scene,
body.building-open #actions,
body.building-open #log-head,
body.building-open #chat-system,
body.building-open footer{display:none !important}
/* #log-panel 作为系统窗口的暗色背幕（居中容器）：点击空白处可关闭窗口 */
body.building-open #log-panel{
  display:flex !important;
  position:fixed; inset:0;
  width:100%; height:100%;
  background:rgba(0,0,0,.55);
  align-items:center; justify-content:center;
  z-index:239;
  pointer-events:auto;
  overflow:hidden;
  padding:60px 10px 16px;
  box-sizing:border-box;
}

/* #app 作为容器：透明、点击穿透（让下方 #quest-panel 窗口可点），不再创建层叠上下文，
   使 #topbar 与 #quest-panel 能按自身 z-index 与外部弹窗（modal/confirm）正确叠放 */
body.building-open #app{
  display:block !important;
  position:absolute; inset:0;
  width:100%; height:100%;
  background:transparent;
  z-index:auto;
  pointer-events:none;
  overflow:visible;
}
/* 顶部状态条常驻显示 + 可点，fixed 在视口顶部，层级高于系统窗口；约束在 480 游戏列内居中 */
body.building-open #topbar{
  position:fixed; top:0; left:0; right:0; margin:0 auto;
  width:auto; max-width:480px;
  z-index:260;
  pointer-events:auto;
}
/* 系统窗口本体：居中窗口，与排行榜(#modal)同尺寸、同圆角。
   v1.5.0-3 修正：#quest-panel 在 #app 内部，#app 用 zoom 做等比缩放；
   若这里再用 vw/vh，会“先按视口算 px 再被 zoom 缩小”，导致窗口在安卓机上变窄/变矮。
   改为固定 px（以 480px 设计稿为基准），让 zoom 统一缩放。 */
body.building-open #quest-panel{
  position:relative !important;
  width:450px; max-width:480px;
  max-height:760px;
  margin:0;
  background-color:#0c1316;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  border-radius:14px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:14px 14px 18px;
  box-sizing:border-box;
  display:block !important;
  z-index:240;
  pointer-events:auto;
  box-shadow:0 12px 40px rgba(0,0,0,.35);
}
/* 通用窗口关闭按钮（X）：右上角圆形。z-index 高于系统窗口(240)，确保常驻顶层可点 */
.sys-close-x{
  position:absolute;
  top:10px; right:10px;
  width:34px; height:34px;
  border:none; border-radius:50%;
  background:rgba(0,0,0,.55); color:#fff;
  font-size:22px; line-height:34px; text-align:center;
  cursor:pointer; z-index:300;
  -webkit-tap-highlight-color:transparent;
  box-shadow:0 2px 6px rgba(0,0,0,.3);
}
.sys-close-x:hover{ background:rgba(0,0,0,.75); }
/* 关键修复 v1.4.0-test13：系统窗口打开时，弹窗层（背包/排行/材料/阵法等）z-index 必须
   高于系统窗口(240)和顶栏(260)，否则点顶栏的「背包/排行榜」弹窗会出现在窗口下面 = 无反应。
   这些弹窗默认 z:100/250，必须在 building-open 下强制抬到 400。 */
body.building-open #modal-bg,
body.building-open #modal,
body.building-open #drawer,
body.building-open #fuben-screen{z-index:400 !important}
/* 阵法/法术/装备/材料弹窗必须在 #modal-bg 之上（400），否则点击卡片后的详情弹窗被系统窗口背景压住 */
body.building-open #mat-bg,
body.building-open #zf-bg,
body.building-open #sp-bg,
body.building-open #eq-bg{z-index:500 !important}

/* 关键修复（v1.4.0-test15 后续）：#app 设了 pointer-events:none 让点击穿透到 #quest-panel，
   但 #confirm-bg / #battle-scene / #modal-bg / 各弹窗层 全是 #app 的子节点（map.js 注释说「在 #app 之外」是错的），
   会继承 pointer-events:none → 整层点不动（心法详情、探索战斗加速按钮等失效）。
   这些层默认 display:none，仅显示时生效，这里统一恢复可点击。 */
body.building-open #confirm-bg,
body.building-open #modal-bg,
body.building-open #battle-scene,
body.building-open #fuben-fx,
body.building-open #fuben-screen,
body.building-open #explore-fx,
body.building-open #med-fx,
body.building-open #zf-bg,
body.building-open #sp-bg,
body.building-open #eq-bg,
body.building-open #mat-bg,
body.building-open #craft-overlay,
body.building-open #sell-bulk-bg,
body.building-open #merge-bg,
body.building-open #merge-pick-bg,
body.building-open #attr-bg,
body.building-open #tribu-bg,
body.building-open #account-screen,
body.building-open .beast-release-bg{pointer-events:auto !important}

/* 系统页返回按钮：嵌入顶部状态条最左（map.js 插入），避免与按钮重叠 */
.building-back{
  margin-right:8px;
  padding:6px 14px;
  font-family:var(--serif); font-size:13px; font-weight:600;
  letter-spacing:1px;
  color:#fff;
  background:rgba(0,0,0,.5);
  border:1px solid rgba(255,255,255,.35);
  border-radius:18px;
  cursor:pointer;
  flex-shrink:0;
  transition:transform .15s, background .15s;
}
.building-back:active{transform:scale(.96);background:rgba(0,0,0,.75)}


/* v1.4.0-test15-fix：所有覆盖层 .show 强制 display:flex !important，防止 JS 内联 display:none 压过 .show 导致弹窗打不开 */
#modal-bg.show,#confirm-bg.show,#battle-scene.show,#fuben-screen.show,#fuben-fx.show,#explore-fx.show,#med-fx.show,#zf-bg.show,#sp-bg.show,#eq-bg.show,#mat-bg.show,.sell-bulk-bg.show,#tribu-bg.show,.craft-overlay.show,.merge-bg.show,.beast-release-bg.show{display:flex !important}

/* 地图模式：彻底禁止整页滑动/回弹 */
body.map-mode,body.map-mode #map-screen{touch-action:none !important;overscroll-behavior:none !important}

/* 副本进行中（body.dungeon）：确认/弹窗层必须高于副本屏(z720)，否则「离开副本」确认框被压住点不到 */
body.dungeon #modal-bg{z-index:900 !important}
body.dungeon #confirm-bg{z-index:1300 !important}
body.dungeon #fuben-screen{z-index:720 !important}

/* v1.4.0-test17：进入游戏首页前的全屏预加载进度条（v1.4.0-test15：换上加载界面.jpg 背景图，进度框改为半透明） */
#loading-screen{
  /* v1.6.1：收成 480 列居中，列外暗场，与首页同宽 */
  position:fixed; top:0; left:0; right:0; margin:0 auto; width:100%; height:100%; max-width:480px;
  box-shadow:0 0 0 100vmax #0c1316;
  background:url('img/loading_bg.jpg') center/cover no-repeat, #0c1316;
  z-index:9999;
  display:flex; align-items:center; justify-content:center;
  pointer-events:auto;
}
#loading-screen .loading-box{
  width:260px; max-width:70vw;
  text-align:center;
  /* v1.4.0-test15：进度框透明度降到约一半，呈现半透明效果 */
  background:rgba(12,19,22,.5);
  border:1px solid rgba(255,235,180,.25);
  border-radius:14px;
  padding:22px 18px;
  box-shadow:0 12px 34px rgba(0,0,0,.45);
  backdrop-filter:blur(2px);
}
#loading-screen .loading-title{
  font-family:var(--serif); font-size:17px; font-weight:700;
  color:#fff; letter-spacing:2px; margin-bottom:14px;
  text-shadow:0 1px 4px rgba(0,0,0,.6);
}
#loading-screen .loading-bar{
  width:100%; height:10px;
  background:rgba(255,255,255,.12);
  border-radius:5px; overflow:hidden;
}
#loading-screen .loading-bar i{
  display:block; height:100%;
  background:linear-gradient(90deg, #e8c96a, #c9a045);
  border-radius:5px;
  transition:width .2s linear;
}
#loading-screen .loading-text{
  font-size:13px; color:rgba(255,255,255,.75);
  margin-top:10px; letter-spacing:1px;
}

/* body.building-open 下 confirm-bg 必须永远置顶（高于 merge-bg 1250 / quest-panel 240） */
body.building-open #confirm-bg.show{ z-index:1500 !important; }

/* 地图模式：禁止 body 滚动 */
body.map-mode{ overflow:hidden !important; position:fixed; width:100%; height:100%; }

/* ============ v1.5.0：大境界突破全服飘字（最高层级，任何场景可见） ============ */
#bt-float-layer{
  position:fixed; inset:0; z-index:2000; pointer-events:none;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding-top:84px; gap:8px; overflow:hidden;
}
.bt-toast{
  max-width:92vw;
  padding:10px 18px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(30,22,9,.93), rgba(20,14,6,.93));
  border:1px solid rgba(245,200,90,.7);
  box-shadow:0 6px 24px rgba(0,0,0,.45), 0 0 18px rgba(245,200,90,.35);
  color:#ffe9a8;
  font-size:15px; font-weight:700; line-height:1.4; text-align:center;
  opacity:0; transform:translateY(-14px) scale(.96);
  transition:opacity .35s ease, transform .35s ease;
}
.bt-toast.show{ opacity:1; transform:translateY(0) scale(1); }

/* v1.6.1：ICP 备案号（登录界面 + 角色选择界面） */
.acc-foot .icp-link{color:#fff;text-decoration:none;letter-spacing:0;margin-left:2px}   /* v1.6.1：备案号纯白，便于在暗色登录面板上辨识 */
.acc-foot .icp-link:hover{color:#f3d78a}
.start-icp{font-size:11px;color:#000;text-align:center;margin:0 0 16px;letter-spacing:1px;background:rgba(255,255,255,.72);border-radius:8px;padding:3px 12px;backdrop-filter:blur(2px)}   /* v1.6.1：备案号改黑；加浅色底衬，合规要求清晰可见 */
.start-icp a{color:inherit;text-decoration:none}
.start-icp a:hover{color:#f3d78a}
