/* ===== 全服团战（battle-*）· 紫黑星空 / 星云紫白 ===== */

.battle-page{
  position:relative;padding-bottom:16px;
  background:
    radial-gradient(620px 420px at 50% -8%, rgba(124,92,255,.30), transparent 62%),
    radial-gradient(520px 460px at 88% 12%, rgba(140,108,255,.10), transparent 66%),
    linear-gradient(180deg,#0a0614 0%,#05030a 44%,#05030a 100%);
}
.battle-page:before{
  content:"";position:absolute;top:0;left:0;right:0;height:340px;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle 1.4px at 18% 12%, rgba(255,255,255,.9), transparent),
    radial-gradient(circle 1.2px at 82% 8%, rgba(205,191,255,.85), transparent),
    radial-gradient(circle 1px at 64% 20%, rgba(255,255,255,.55), transparent),
    radial-gradient(circle 1px at 30% 28%, rgba(255,255,255,.45), transparent),
    radial-gradient(circle 1.2px at 50% 5%, rgba(255,255,255,.7), transparent);
  opacity:.9;
}
.battle-page .page-head,.battle-page .page-body{position:relative;z-index:1}
.battle-page.has-bottombar .page-body{padding-bottom:84px}
.battle-page.has-share .page-body{padding-bottom:76px}

/* 对阵区 */
.battle-arena{padding:16px 14px 11px}
.battle-arena-glow{position:absolute;left:0;right:0;top:-60px;height:180px;pointer-events:none;
  background:radial-gradient(320px 160px at 50% 30%, rgba(124,92,255,.34), transparent 70%)}
.battle-arena-top{display:flex;align-items:center;gap:8px;position:relative;z-index:1}
.battle-team{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px}
.battle-crest{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:25px;line-height:1;margin-bottom:5px;border:1.5px solid var(--line-soft)}
/* 热拉 / 冷拉为功能性队伍色：暖桃 / 冷蓝，其余一律紫白 */
.battle-crest.is-hot{background:radial-gradient(circle at 34% 28%, rgba(255,154,107,.42), rgba(255,107,157,.14) 58%, rgba(124,92,255,.08));
  border-color:rgba(255,154,140,.42);box-shadow:0 0 22px rgba(255,120,140,.26),inset 0 0 14px rgba(255,170,140,.18)}
.battle-crest.is-cold{background:radial-gradient(circle at 34% 28%, rgba(143,240,255,.38), rgba(125,180,255,.14) 58%, rgba(124,92,255,.08));
  border-color:rgba(143,240,255,.42);box-shadow:0 0 22px rgba(125,180,255,.26),inset 0 0 14px rgba(143,240,255,.18)}
.battle-team-name{font-size:12px;color:var(--text-2);letter-spacing:.5px}
.battle-team-value{font-family:var(--font-display);font-size:23px;font-weight:700;line-height:1.15;color:var(--text-1);
  font-variant-numeric:tabular-nums}
.battle-team.is-hot .battle-team-value{text-shadow:0 0 18px rgba(255,140,160,.30)}
.battle-team.is-cold .battle-team-value{text-shadow:0 0 18px rgba(125,180,255,.30)}
.battle-vs{flex:none;width:54px;display:flex;align-items:center;justify-content:center;padding-bottom:16px;
  font-family:var(--font-display);font-size:19px;font-weight:700;font-style:italic;letter-spacing:1px;
  color:var(--violet-1);text-shadow:0 0 18px rgba(185,167,255,.55)}
.battle-pkbar{position:relative;display:flex;height:14px;margin-top:14px;border-radius:var(--r-pill);overflow:hidden;
  background:rgba(255,255,255,.06);border:1px solid var(--line-soft);z-index:1}
.battle-pkbar i{display:block;height:100%;transition:width .5s ease}
.battle-pkbar i.is-hot{background:linear-gradient(90deg,#ff9a6b,#ff6b9d)}
.battle-pkbar i.is-cold{background:linear-gradient(90deg,#8ff0ff,#7db4ff)}
.battle-pkbar-gem{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:9px;color:#fff;
  text-shadow:0 0 8px rgba(185,167,255,.95),0 0 14px rgba(124,92,255,.8);pointer-events:none}
.battle-pkbar.small{height:9px;margin-top:9px}
.battle-pkmeta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;font-size:10px;
  position:relative;z-index:1;font-variant-numeric:tabular-nums}
.battle-pkmeta .is-hot{color:#ffbecb}
.battle-pkmeta .is-cold{color:#cfe4ff}
.battle-arena-foot{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line-soft);text-align:center;
  font-size:9px;line-height:1.6;color:var(--text-4);position:relative;z-index:1}

/* 报名 / 预测状态提示 */
.battle-signup-note{margin-top:12px;align-items:center}
.battle-signup-note .ni{color:var(--violet-2);line-height:1}
.battle-signup-note b{color:var(--violet-1);font-weight:600}
.battle-signup-note.is-dim{background:rgba(255,255,255,.035);border-color:var(--line-soft);color:var(--text-2)}
.battle-signup-note.is-dim b{color:var(--text-2)}

/* 双列 TOP30（左热拉 / 右冷拉） */
.battle-duel{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}
.battle-duel-col{min-width:0;border-radius:14px;padding:8px 7px 7px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft)}
.battle-duel-col.is-hot{background:linear-gradient(180deg,rgba(240,168,208,.07),rgba(255,255,255,.015));border-color:rgba(240,168,208,.18)}
.battle-duel-col.is-cold{background:linear-gradient(180deg,rgba(143,180,255,.07),rgba(255,255,255,.015));border-color:rgba(143,180,255,.18)}
.battle-duel-head{display:flex;align-items:center;gap:4px;padding:0 3px 6px;margin-bottom:2px;
  border-bottom:1px solid rgba(255,255,255,.06);font-size:10px;font-weight:600;letter-spacing:1px;color:var(--text-2)}
.battle-duel-head .em{font-size:11px;line-height:1}
.battle-duel-col.is-hot .battle-duel-head{color:#ffc4e2}
.battle-duel-col.is-cold .battle-duel-head{color:#bcd3ff}
.battle-duel-list{display:flex;flex-direction:column;gap:2px;padding-top:8px}
.battle-duel-row{position:relative;display:flex;align-items:center;gap:4px;padding:3px;border-radius:8px;
  font-size:9.5px;line-height:1.2;cursor:pointer}
.battle-duel-row.is-mvp{margin-top:9px;background:rgba(185,167,255,.14);border:1px solid rgba(185,167,255,.30)}
.battle-mvp-tag{position:absolute;top:-8px;left:4px;font-size:7.5px;font-weight:700;letter-spacing:.6px;line-height:1.5;
  color:#fff;background:linear-gradient(135deg,#b3a2ff,#7c5cff);padding:0 5px;border-radius:4px;
  box-shadow:0 0 8px rgba(124,92,255,.5)}
.battle-duel-rank{flex:none;width:14px;text-align:center;font-size:9px;color:var(--text-3);font-variant-numeric:tabular-nums}
.battle-duel-row.is-mvp .battle-duel-rank{color:#fff}
.battle-duel-row .avatar{--sz:22px}
.battle-duel-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.battle-duel-val{flex:none;font-size:9.5px;color:var(--gold-2);font-variant-numeric:tabular-nums}

/* 奖励区 */
.battle-reward{padding:13px 14px}
.battle-mine{margin-top:10px;padding:9px 10px;border-radius:10px;
  background:rgba(185,167,255,.06);border:1px solid var(--line-soft)}
.battle-mine-v{color:var(--violet-1);font-variant-numeric:tabular-nums}
.battle-mine-bar{height:5px;margin-top:6px}
.battle-ladder{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.battle-tier{padding:7px 8px;border-radius:9px;font-size:10px;font-weight:600;color:var(--violet-2);
  background:rgba(255,255,255,.04);border:1px solid var(--line-soft);white-space:nowrap;
  font-variant-numeric:tabular-nums;text-align:center}
.battle-reward-line{display:flex;align-items:center;gap:9px;margin-top:2px;font-size:10.5px;
  color:var(--text-2);line-height:1.6}
.battle-reward-line .em{flex:none;font-size:18px;line-height:1}
.battle-rule-note{margin-top:14px;align-items:center}
.battle-rule-note .ni{color:var(--violet-2);line-height:1}

/* 底部固定条 */
.battle-bottom{padding-top:12px;
  background:linear-gradient(180deg,rgba(5,3,10,.35),rgba(5,3,10,.97) 34%)}
.battle-bottom .btn.ghost{background:rgba(18,10,36,.94)}
.battle-page .share-cta{background:linear-gradient(180deg,rgba(5,3,10,.92),rgba(5,3,10,.99) 46%)}

/* 报名 / 预测弹层 */
.battle-sheet-note{padding:9px 11px;border-radius:10px;font-size:10px;line-height:1.7;
  background:rgba(124,92,255,.10);border:1px solid rgba(167,139,250,.22);color:var(--text-2)}
.battle-sheet-label{display:flex;align-items:center;gap:7px;margin:14px 0 7px;font-size:11px;font-weight:600;
  color:var(--text-2);white-space:nowrap}
.battle-sheet-label:after{content:"";flex:1;height:1px;background:var(--line-soft)}
.battle-picks{display:flex;flex-direction:column;gap:8px}
.battle-pick{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:12px;text-align:left;
  background:rgba(255,255,255,.04);border:1px solid var(--line-soft);transition:.16s}
.battle-pick.on{background:linear-gradient(120deg,rgba(185,167,255,.18),rgba(124,92,255,.12));
  border-color:var(--line-strong);box-shadow:0 0 16px rgba(185,167,255,.14)}
.battle-pick-crest{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:19px;line-height:1;flex:none;background:rgba(255,255,255,.06);border:1px solid var(--line-soft)}
.battle-pick.on .battle-pick-crest{background:rgba(185,167,255,.12);border-color:var(--line)}
.battle-pick-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.battle-pick-body b{font-size:13px;font-weight:700}
.battle-pick-body em{font-style:normal;font-size:9px;color:var(--text-3);font-variant-numeric:tabular-nums}
.battle-pick-check{flex:none;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:#150c2b;border:1px solid var(--line-soft)}
.battle-pick.on .battle-pick-check{background:linear-gradient(135deg,#e6ddff,#8b7bff);border-color:transparent;font-weight:700}
.battle-sheet-tip{font-size:9.5px;color:var(--text-4);line-height:1.6;margin:10px 0 2px}
.battle-predict-total{display:flex;align-items:baseline;gap:6px;margin:2px 0 8px}
.battle-predict-total b{font-family:var(--font-display);font-size:24px;line-height:1;color:var(--text-1);
  font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(185,167,255,.4)}
.battle-predict-total span{font-size:9.5px;color:var(--text-3)}
.battle-ladder2{display:flex;flex-direction:column;gap:5px}
.battle-ladder2-item{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:9px;
  background:rgba(255,255,255,.03);border:1px solid var(--line-soft);font-size:9.5px;color:var(--text-3)}
/* 已达成：紫白高亮 + 实心对勾 */
.battle-ladder2-item.on{background:linear-gradient(90deg,rgba(185,167,255,.18),rgba(185,167,255,.05));
  border-color:rgba(185,167,255,.42);color:var(--text-1)}
.battle-ladder2-item.on .lv{color:var(--gold-1);font-weight:600}
.battle-ladder2-item.on .rw{color:var(--text-1)}
.battle-ladder2-item.on .st{width:15px;height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;background:linear-gradient(135deg,#b3a2ff,#7c5cff);box-shadow:0 0 8px rgba(124,92,255,.5)}
/* 未达成：降透明度 + 空心圈 */
.battle-ladder2-item.is-off{opacity:.5}
.battle-ladder2-item.is-off .st{width:15px;height:15px;border-radius:50%;border:1px solid rgba(185,167,255,.35)}
.battle-ladder2-item .lv{flex:none;width:46px;font-variant-numeric:tabular-nums;color:var(--text-2)}
.battle-ladder2-item .rw{flex:1;min-width:0;line-height:1.35}
.battle-ladder2-item .st{flex:none;text-align:center;font-size:9px;color:var(--violet-2)}

/* 内容较长的报名 / 预测弹层：底部操作区吸底 */
.sheet:has(.battle-picks) .sheet-foot{position:sticky;bottom:-2px;margin-top:8px;padding:10px 0 2px;
  background:linear-gradient(180deg,rgba(16,8,34,0),rgba(16,8,34,.97) 46%)}

/* 规则和奖励（纯平铺） */
.battle-flat{padding:12px 14px}
.battle-flat + .battle-flat{margin-top:10px}
.battle-flat-title{font-size:11px;font-weight:600;letter-spacing:1px;color:var(--violet-1);margin-bottom:4px}
.battle-flat-row{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.05);font-size:10.5px;line-height:1.6}
.battle-flat-row:last-child{border-bottom:0}
.battle-flat-row .k{flex:none;width:60px;color:var(--text-3)}
.battle-flat-row .v{flex:1;min-width:0;color:var(--text-2)}

/* 我的报名 / 预测入口与弹层 */
.battle-my-entry{margin-left:auto;flex:none;height:24px;padding:0 10px;font-size:9.5px}
.battle-my-card{padding:4px 2px;border-radius:12px}
.battle-my-row{display:flex;align-items:baseline;gap:10px;padding:9px 4px;border-bottom:1px dashed rgba(255,255,255,.06);font-size:11px;color:var(--text-2)}
.battle-my-row:last-child{border-bottom:0}
.battle-my-row .k{flex:none;width:60px;color:var(--text-3);font-size:10px}
.battle-my-row b.hot{color:#ffc4e2}
.battle-my-row b.cold{color:#bcd3ff}

/* 预测结果：已结束展示获胜队伍标签 */
.battle-result{margin-bottom:12px;padding:10px 12px;border-radius:14px;background:rgba(185,167,255,.07);border:1px solid rgba(185,167,255,.20)}
.battle-result-title{font-size:10px;letter-spacing:1px;color:var(--text-3);margin-bottom:8px}
.battle-result-teams{display:flex;flex-direction:column;gap:6px}
.battle-result-team{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);font-size:12px;color:var(--text-2)}
.battle-result-team .em{font-size:13px}
.battle-result-team .chip{margin-left:auto;flex:none}
.battle-result-team.is-win{background:rgba(185,167,255,.16);border-color:rgba(185,167,255,.45);color:var(--text-1);font-weight:600}
.battle-result-mine{margin-top:8px;font-size:10px;color:var(--text-3)}

/* 我所属战队标签 */
.battle-my-tag{display:inline-flex;align-items:center;height:15px;padding:0 5px;margin-left:5px;border-radius:4px;
  font-size:8px;font-weight:600;letter-spacing:.5px;color:#fff;vertical-align:1px;
  background:linear-gradient(135deg,#b3a2ff,#7c5cff);box-shadow:0 0 8px rgba(124,92,255,.35)}
