  /* ================= v108 无尽塔层间商店 ================= */
  .eshop{width:100%;margin:6px 0 14px;padding:10px;border-radius:10px;
    background:linear-gradient(180deg,rgba(26,34,52,.9),rgba(10,15,26,.95));
    border:1px solid rgba(217,185,121,.28);box-shadow:inset 0 1px 0 rgba(255,240,200,.08);}
  .eshop-title{font-size:10px;letter-spacing:.16em;color:#f0d9a8;margin-bottom:3px;}
  .eshop-sub{font-size:9px;color:#8fa3bd;margin-bottom:8px;}
  .eshop-row{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:7px;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);margin-bottom:6px;}
  .eshop-row.sold{opacity:.45;}
  .eshop-info{flex:1;min-width:0;}
  .eshop-name{font-size:11.5px;color:#eaf3ff;font-weight:600;letter-spacing:.03em;}
  .eshop-desc{font-size:9px;color:#8fa3bd;margin-top:2px;}
  .eshop-row .gb{flex:0 0 auto;font-size:9.5px;padding:5px 9px;border-radius:7px;}
  .eshop-row .gb:disabled{opacity:.45;}


  /* ---- 出手顺序预览 ---- */
  #threatBar .tb-order{color:#a8b9cd;letter-spacing:0;font-variant-numeric:tabular-nums;}

  /* ================= v109 快捷重开 / 波次记录 ================= */
  .dropacts{display:flex;gap:8px;margin-top:6px;width:100%;}
  .dropacts .btn{flex:1 1 0;min-width:0;width:auto!important;padding:11px 6px;
    font-size:12px;letter-spacing:.06em;}
  .dropacts .btn.ghost{flex:0 0 auto;padding:11px 12px;font-size:11px;}

  /* ================= v110 批量分解筛选 ================= */
  .bs-group{margin:12px 0 6px;}
  .bschips{display:flex;flex-wrap:wrap;gap:6px;}
  .bschip{padding:6px 12px;border-radius:7px;cursor:pointer;font-size:11px;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);color:#93a7c0;
    letter-spacing:.04em;}
  .bschip.on{border-color:var(--qc,#9fd0ff);color:var(--qc,#9fd0ff);
    background:rgba(120,180,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);}
  .bsquick{display:flex;gap:8px;margin:12px 0 8px;}
  .bsquick .gb{font-size:9.5px;padding:4px 9px;border-radius:6px;}
  .bssum{display:flex;align-items:baseline;gap:6px;justify-content:center;margin:4px 0 10px;}
  .bssum-n{font-size:20px;font-weight:700;color:#ffd98a;font-variant-numeric:tabular-nums;}
  .bssum-t{font-size:10.5px;color:#9fb3ca;}
  .bslist{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;}
  .bsrow{display:flex;align-items:center;gap:8px;font-size:10.5px;padding:6px 9px;border-radius:6px;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);}
  .bsrow .bsname{flex:1;min-width:0;color:#dbe9fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .bsrow .bstag{flex:0 0 auto;color:#8fa3bd;font-size:9px;}
  .bsrow .bsgain{flex:0 0 auto;color:#8fe4ff;font-variant-numeric:tabular-nums;}
  .bsmore{font-size:9px;color:#7f93ab;text-align:center;padding:2px 0;}
  .panel > .btn.bs-go:disabled{filter:grayscale(.6) brightness(.65);box-shadow:none;}


  /* ---- 章节标签：5 章时收紧，避免贴边截断 ---- */
  #chapTabs .diffbtn{font-size:10.5px;letter-spacing:0;padding:8px 0;white-space:nowrap;
    min-width:0 !important;flex:1 1 0;}
  @media (max-width:380px){#chapTabs .diffbtn{font-size:9.5px;}}

  /* ================= 深渊侵蚀 ================= */
  .erosionchip{flex:0 0 auto;font-size:9px;letter-spacing:.04em;color:#ffb3bd;
    border:1px solid rgba(255,110,130,.5);background:rgba(52,12,20,.75);
    border-radius:4px;padding:2px 5px;white-space:nowrap;}
  .erosionchip.hide{display:none;}

  /* ================= v115 状态视觉提示 ================= */
  #party .card .st{gap:4px;margin-top:3px;flex-wrap:wrap;}
  #party .stchip{display:inline-flex;align-items:center;gap:2px;
    font-size:8px;line-height:1.5;padding:0 4px 0 3px;border-radius:4px;
    border:1px solid currentColor;background:rgba(0,0,0,.35);letter-spacing:0;}
  #party .stchip .stic{width:4px;height:4px;border-radius:50%;background:currentColor;
    box-shadow:0 0 5px currentColor;flex:0 0 auto;}
  #party .stchip b{font-weight:600;letter-spacing:.02em;}
  #party .stchip em{font-style:normal;font-variant-numeric:tabular-nums;opacity:.9;}
  #party .stchip.st-poison{background:rgba(60,20,10,.55);}
  #party .stchip.st-paralyze{background:rgba(60,20,40,.55);}
  #party .stchip.st-silence{background:rgba(30,26,60,.55);}
  .ftag.ctrl{font-weight:700;letter-spacing:.04em;box-shadow:0 0 8px rgba(255,205,90,.35);}

  /* ================= v116 侵蚀预告 ================= */
  .stageitem .ero{font-size:7.5px;color:#ffb3bd;letter-spacing:0;
    border:1px solid rgba(255,110,130,.45);border-radius:3px;padding:0 3px;
    background:rgba(52,12,20,.6);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
  .stchip{cursor:pointer;}


  /* ---- 技能危险度标签 ---- */
  .ftag.burst{font-weight:700;color:#ff8a9a;border-color:rgba(255,110,130,.6);
    background:rgba(60,12,20,.85);box-shadow:0 0 8px rgba(255,90,110,.35);}

  /* ================= v117 章节回顾 ================= */
  .crbar{position:relative;height:6px;border-radius:3px;overflow:hidden;margin:6px 0 12px;
    background:rgba(6,10,18,.9);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
  .crbar i{display:block;height:100%;border-radius:3px;
    background:linear-gradient(90deg,#d8a444,#ffe9b0);box-shadow:0 0 10px rgba(255,200,110,.5);}
  .crlist{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;}
  .crrow{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:6px;
    background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
    font-size:10.5px;color:#8fa3bd;}
  .crrow.ok{background:rgba(217,185,121,.07);border-color:rgba(217,185,121,.22);color:#dbe7f7;}
  .crrow .crnum{flex:0 0 auto;width:18px;text-align:right;color:#7f93ab;font-variant-numeric:tabular-nums;}
  .crrow.ok .crnum{color:#ffd98a;}
  .crrow .crname{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .crrow .crero{flex:0 0 auto;font-size:7.5px;color:#ffb3bd;border:1px solid rgba(255,110,130,.4);
    border-radius:3px;padding:0 3px;background:rgba(52,12,20,.6);}
  .crrow .crst{flex:0 0 auto;font-size:8.5px;color:#7f93ab;}
  .crrow.ok .crst{color:#8dffb8;}
  .crstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:14px;}
  .crstat{padding:7px 2px;border-radius:6px;text-align:center;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);}
  .crstat .k{font-size:8px;color:#7f93ab;margin-bottom:2px;white-space:nowrap;}
  .crstat .v{font-size:13px;font-weight:700;color:#eaf3ff;font-variant-numeric:tabular-nums;}

  /* ================= v118 图鉴补全 + 伤害构成 ================= */
  .codextools{display:flex;align-items:center;gap:8px;margin:0 0 10px;}
  .ctoggle{font-size:9.5px;padding:4px 10px;border-radius:6px;cursor:pointer;
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:#93a7c0;}
  .ctoggle.on{color:#ffd98a;border-color:rgba(217,185,121,.5);background:rgba(217,185,121,.10);}
  .codextools .chint{margin-left:auto;font-size:9px;color:#7f93ab;}
  .codexrow.unseen{opacity:.85;border-style:dashed;border-color:rgba(255,255,255,.09);}
  .codexrow .gname.unknown{color:#5f6f86;letter-spacing:.3em;}
  #gear .codexfilter .diffbtn{font-size:9.5px;padding:7px 0;}
  .dmgbreak{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 13px;}
  .dmgcell{padding:7px 2px;border-radius:6px;text-align:center;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);}
  .dmgcell .k{font-size:8px;color:#7f93ab;margin-bottom:2px;letter-spacing:.06em;}
  .dmgcell .v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;}

  /* ================= v119 敌情面板 ================= */
  .enemyinfo{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px;max-height:52vh;overflow-y:auto;}
  .enemyinfo::-webkit-scrollbar{width:0;}
  .eicard{padding:10px 11px;border-radius:9px;
    background:linear-gradient(180deg,rgba(26,34,52,.92),rgba(10,15,26,.96));
    border:1px solid rgba(150,185,230,.18);}
  .eicard.dead{opacity:.45;}
  .eitop{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
  .eitop .einame{font-size:12.5px;font-weight:600;color:#eaf3ff;letter-spacing:.02em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .eitop .eihp{flex:0 0 auto;font-size:9.5px;color:#ffb3bd;font-variant-numeric:tabular-nums;}
  .eicard .eimeta{font-size:8.5px;color:#8fa3bd;margin-top:3px;}
  .eicard .eiact{display:flex;justify-content:space-between;gap:8px;margin-top:5px;
    font-size:9.5px;padding:4px 7px;border-radius:5px;background:rgba(255,255,255,.04);}
  .eicard .eiact .ein{color:#dbe9fb;}
  .eicard .eiact .eid{color:#8fa3bd;font-variant-numeric:tabular-nums;}
  .eicard .eiwarning{margin-top:6px;font-size:9px;color:#ffd98a;
    border:1px solid rgba(255,205,90,.4);border-radius:5px;padding:3px 6px;background:rgba(46,34,10,.6);}


  .eilegend{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:2px 0 6px;}
  .eilegend .eilg{font-size:8.5px;letter-spacing:.02em;opacity:.9;}

  /* ================= v120 全队技能 + 套装提示 ================= */
  .tsopen{width:min(560px,100%);margin:0 0 10px;padding:7px 0;border-radius:7px;cursor:pointer;
    font-family:inherit;font-size:10.5px;letter-spacing:.08em;color:#9fd0ff;
    background:rgba(120,180,255,.08);border:1px dashed rgba(150,200,255,.32);}
  .tsopen:active{background:rgba(120,180,255,.16);}
  .tslist{display:flex;flex-direction:column;gap:7px;margin:12px 0 14px;}
  .tsrow{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);}
  .tsrow .tsname{flex:0 0 52px;font-size:11.5px;font-weight:600;color:#eaf3ff;}
  .tsrow .tschips{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0;}
  .tsrow .tschip{font-size:9px;padding:1px 6px;border-radius:4px;border:1px solid currentColor;
    background:rgba(0,0,0,.25);white-space:nowrap;}
  .tsrow .tsempty{font-size:9px;color:#7f93ab;}


  #threatBar .tb-dmg{color:#9fd0ff;font-variant-numeric:tabular-nums;}


  /* ---- 顶栏六个操作位：进一步压缩，保证关卡名不被挤没 ---- */
  #battleOps{gap:3px;}
  #battleOps .opbtn{font-size:9px;padding:3px 5px;letter-spacing:0;}
  #topbar .stage-name{min-width:88px;}
  @media (max-width:374px){
    #battleOps .opbtn{font-size:8.5px;padding:2px 4px;}
    #topbar .stage-name{min-width:74px;}
  }


  /* ---- 难度用菱形颜色表示，省出顶栏文字宽度 ---- */
  #topbar .stage-name.diff-hard::before{background:linear-gradient(135deg,#ffc9b0,#e8704c);}
  #topbar .stage-name.diff-abyss::before{background:linear-gradient(135deg,#d9b3ff,#7a3bbf);}
  #topbar .stage-name.diff-endless::before{background:linear-gradient(135deg,#ffb3bd,#c0392b);}
