/* ==================================================================
   猛攻行动 · 联机模式界面
   和游戏主色调一致：深底 + 金 / 青 强调
   ================================================================== */

/* ---------- 首页入口条 ---------- */
.ol-entry{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;
  background:linear-gradient(115deg,#0d1a24,#101820 55%,#0b131a);
  border:1px solid #24404f;border-radius:11px;cursor:pointer;transition:.16s;
  box-shadow:0 0 0 1px rgba(90,190,220,.06)}
.ol-entry:hover{border-color:#35657d;box-shadow:0 0 0 1px rgba(90,190,220,.16),0 8px 22px -14px rgba(90,190,220,.5)}
.ol-entry-l{flex:1;min-width:0}
.ol-entry-t{font-size:14px;font-weight:700;color:#bfe6f5;letter-spacing:.5px}
.ol-entry-s{font-size:11px;color:#7a94a4;margin-top:2px}
.ol-entry-go{font-size:12px;color:#5abedc;white-space:nowrap;font-weight:600}

/* ---------- 通用容器 ---------- */
.ol-wrap{max-width:560px;margin:0 auto;padding:2px 0 20px}
.ol-card{background:var(--card,#111820);border:1px solid var(--line,#232c38);
  border-radius:11px;padding:12px 14px;margin-bottom:11px}
.ol-h{font-size:11.5px;color:#93a2b2;margin-bottom:7px}
.ol-input{width:100%;background:#0b1119;border:1px solid #2e3a48;border-radius:8px;
  color:#e6eef6;padding:10px 12px;font:13px/1.4 inherit;outline:none}
.ol-input:focus{border-color:#3f6f88}
.ol-big{display:block;width:100%;padding:14px 0;font-size:15px;font-weight:700;
  border-radius:11px;margin:4px 0 2px}
.ol-or{text-align:center;margin:14px 0;position:relative}
.ol-or:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#232c38}
.ol-or span{position:relative;background:var(--bg,#0a0f14);padding:0 12px;font-size:11px;color:#5b6672}

.ol-row{display:flex;align-items:center;gap:8px;background:#111820;border:1px solid #232c38;
  border-radius:9px;padding:11px 13px;margin-bottom:7px;font-size:12.5px;color:#cfdae6;
  cursor:pointer;transition:.14s}
.ol-row:hover{border-color:#35657d;background:#132029}
.ol-row b{color:#e6eef6}
.ol-row .ol-count{color:#5abedc;font-weight:600;font-size:11.5px}
.ol-row i{margin-left:auto;font-style:normal;font-size:11.5px;color:#5abedc}

.ol-tip{background:#0d1620;border-left:3px solid #3f6f88;border-radius:0 8px 8px 0;
  padding:10px 13px;font-size:11.5px;color:#8fa8b8;line-height:1.75;margin-top:14px}
.ol-tip b{display:block;color:#bfe6f5;margin-bottom:3px;font-size:12px}
.ol-err{background:#1c1010;border-left:3px solid #d98b8b;border-radius:0 8px 8px 0;
  padding:10px 13px;font-size:12px;color:#e8b8b8;margin-top:10px}
.ol-notice{background:#0d2018;border-left:3px solid #4a9b6a;border-radius:0 8px 8px 0;
  padding:9px 13px;font-size:12px;color:#9fd8b4;margin-top:10px}
.ol-wait{text-align:center;font-size:13px;color:#7a94a4;padding:16px 0 8px}

/* ---------- 房间页 ---------- */
.ol-code-box{background:linear-gradient(150deg,#0f1c26,#0b131a);border:1px solid #24404f;
  border-radius:13px;padding:16px;text-align:center;margin-bottom:6px}
.ol-code{font-size:34px;font-weight:800;letter-spacing:8px;color:#5abedc;
  font-family:ui-monospace,Consolas,monospace;margin:6px 0 10px;text-indent:8px}
.ol-p{display:flex;align-items:center;gap:9px;background:#111820;border:1px solid #232c38;
  border-radius:9px;padding:11px 13px;margin-bottom:7px;font-size:13px}
.ol-p b{color:#e6eef6;font-weight:600}
.ol-p.ghost{color:#4a5560;font-style:italic;border-style:dashed;background:transparent}
.ol-num{width:20px;height:20px;border-radius:50%;background:#1a2530;color:#7a94a4;
  font-size:10.5px;line-height:20px;text-align:center;flex:0 0 auto}
.ol-badge{font-style:normal;font-size:9.5px;padding:1px 6px;border-radius:4px;
  background:#2a2110;color:#f0c96a;font-weight:600}
.ol-badge.me{background:#0d2230;color:#5abedc}
.ol-badge.dead{background:#241314;color:#d98b8b}

/* ---------- 联机地图 ---------- */
.ol-mates{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.ol-mate{font-size:11px;padding:3px 9px;border-radius:20px;background:#0f1c26;
  border:1px solid #24404f;color:#9fc0d0}
.ol-mate.down{opacity:.45;text-decoration:line-through}

.ol-map{background:#080d12;border:1px solid #1c2733;border-radius:10px;padding:5px;
  margin-bottom:9px;overflow:hidden;aspect-ratio:1;display:grid;
  grid-template-rows:repeat(12,minmax(0,1fr));gap:1px;max-height:min(88vw,470px);margin-left:auto;margin-right:auto}
.ol-grid-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1px;min-height:0}
.ol-cell{background:#0d141b;border-radius:2px;position:relative;min-height:0;min-width:0;
  display:flex;align-items:center;justify-content:center}
.ol-cell.here{box-shadow:inset 0 0 0 1px rgba(90,190,220,.5);background:#0f1a24}
.ol-dot{width:78%;height:78%;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:700;line-height:1}
.ol-cell.me .ol-dot{background:linear-gradient(160deg,#5abedc,#2d7f9c);color:#04141c}
.ol-cell.mate .ol-dot{background:#2a3a48;color:#9fc0d0}
.ol-cell.turn .ol-dot{box-shadow:0 0 0 2px #f0c96a,0 0 8px rgba(240,201,106,.5)}

.ol-pad{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:2px}
.ol-pad-mid{display:flex;gap:44px}
.ol-dir{width:54px;height:44px;border-radius:9px;background:#182230;border:1px solid #2b3540;
  color:#b9c6d4;font-size:17px;cursor:pointer;transition:.1s}
.ol-dir:active{background:#22303f;transform:scale(.96)}

/* ---------- 战斗 ---------- */
.ol-battle{margin-top:12px;background:#0e161d;border:1px solid #24404f;border-radius:12px;padding:12px}
.ol-turn{text-align:center;font-size:12.5px;color:#8fa8b8;margin-bottom:11px;padding:7px;
  background:#0b131a;border-radius:8px}
.ol-turn.mine{background:#2a2110;color:#f0c96a;font-weight:700;border:1px solid #6b5a2a}
.ol-foes{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.ol-foe{background:#111820;border:1px solid #232c38;border-radius:9px;padding:9px 10px}
.ol-foe.down{opacity:.4}
.ol-foe-h{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;margin-bottom:5px}
.ol-foe-h b{color:#e6eef6;font-weight:600}
.ol-foe-h span{font-size:10.5px;color:#7a94a4;font-variant-numeric:tabular-nums}
.ol-hp{height:6px;background:#0b1119;border-radius:3px;overflow:hidden}
.ol-hp i{display:block;height:100%;background:linear-gradient(90deg,#c25a5a,#d98b8b);border-radius:3px;transition:width .25s}
.ol-win{text-align:center;font-size:12.5px;color:#7fd8a0;margin-top:10px;font-weight:600}
.ol-lose{text-align:center;font-size:12.5px;color:#d98b8b;margin-top:10px;font-weight:600}

@media (max-width:420px){
  .ol-code{font-size:28px;letter-spacing:6px}
  .ol-pad-mid{gap:34px}
  .ol-dir{width:48px;height:40px}
}

/* ============================================================
   联机战斗（复用单机规则，界面独立）
   ============================================================ */
.ob-turn{text-align:center;font-size:12.5px;color:#8fa8b8;padding:8px;background:#0b131a;
  border:1px solid #1c2733;border-radius:9px;margin-bottom:10px}
.ob-turn.mine{background:#2a2110;color:#f0c96a;font-weight:700;border-color:#6b5a2a}
.ob-turn.win{background:#0d2018;color:#7fd8a0;border-color:#2a5c3f;font-weight:700}
.ob-turn.lose{background:#1c1010;color:#d98b8b;border-color:#5c2a2a;font-weight:700}

.ob-us{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin-bottom:4px}
.ob-card{background:#111820;border:1px solid #232c38;border-radius:9px;padding:9px 10px}
.ob-card.mine{border-color:#2f4f63}
.ob-card.cur{border-color:#8a7333;box-shadow:0 0 0 1px rgba(240,201,106,.25)}
.ob-card.dead{opacity:.42}
.ob-h{display:flex;align-items:center;gap:5px;font-size:12.5px;margin-bottom:5px;flex-wrap:wrap}
.ob-h b{color:#e6eef6;font-weight:600}
.ol-badge.turn{background:#2a2110;color:#f0c96a}
.ob-meta{display:flex;gap:7px;font-size:10px;color:#7a94a4;margin-top:4px;flex-wrap:wrap}
.ob-meta span{white-space:nowrap}
.ob-stance{display:flex;gap:3px;margin-top:6px}
.ob-s{flex:1;padding:3px 0;font-size:9.5px;border-radius:5px;background:#151d26;
  border:1px solid #2b3540;color:#8fa3b8;cursor:pointer}
.ob-s.on{background:#2a2110;border-color:#8a7333;color:#f0c96a;font-weight:700}

.ob-foes{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px}
.ob-foe{background:#141a22;border:1px solid #2b3540;border-radius:9px;padding:9px 10px}
.ob-foe.down{opacity:.4}
.ob-fh{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;margin-bottom:5px}
.ob-fh b{color:#ffd7d7;font-weight:600}
.ob-fh span{font-size:10px;color:#a08080;font-variant-numeric:tabular-nums}
.ol-hp.foe i{background:linear-gradient(90deg,#c25a5a,#e08b8b)}
.ob-hit{width:100%;margin-top:6px;padding:5px 0;font-size:11px;border-radius:6px;
  background:#2a1a1a;border:1px solid #5c2a2a;color:#e8b8b8;cursor:pointer}
.ob-hit:hover:not(:disabled){background:#3a2222;border-color:#8a3a3a}
.ob-hit:disabled{opacity:.35;cursor:not-allowed}
.ob-gone{text-align:center;font-size:10.5px;color:#6b7683;margin-top:6px}

.ob-skills{display:flex;gap:5px;overflow-x:auto;margin-top:10px;padding-bottom:2px}
.ob-sk{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:6px 11px;border-radius:9px;background:#182230;border:1px solid #2b3540;
  color:#b9c6d4;cursor:pointer}
.ob-sk b{font-size:11px;font-weight:600;white-space:nowrap}
.ob-sk em{font-style:normal;font-size:9px;color:#7a94a4}
.ob-sk.passive{opacity:.55}
.ob-sk.off{opacity:.38;cursor:not-allowed}
.ob-sk:not(.off):not(.passive){border-color:#35657d}
.ob-sk:not(.off):not(.passive) b{color:#bfe6f5}

.ob-parts{display:flex;gap:4px;margin-top:8px}
.ob-p{flex:1;padding:6px 0;font-size:11px;border-radius:7px;background:#182230;
  border:1px solid #2b3540;color:#b9c6d4;cursor:pointer}
.ob-p.on{background:#0d2230;border-color:#35657d;color:#5abedc;font-weight:700}
.ob-p.end{background:#1c1710;border-color:#5c4a2a;color:#d9b98b}

.ob-log{margin-top:12px;background:#080d12;border:1px solid #1c2733;border-radius:9px;
  padding:9px 11px;max-height:150px;overflow-y:auto}
.ob-log-line{font-size:11px;line-height:1.65;color:#8fa8b8;padding:1px 0}
.ob-log-line.good{color:#7fd8a0}
.ob-log-line.bad{color:#d98b8b}
.ob-log-line.miss{color:#6b7683}
.ob-log-line.cmd{color:#5abedc;font-weight:600}
.ob-map{margin-bottom:10px}
.ol-map.small{max-height:min(42vw,220px)}

/* ============================================================
   联机大厅：房间列表为主
   ============================================================ */
.ol-namebar{display:flex;align-items:center;gap:10px;padding:10px 13px;margin-bottom:14px}
.ol-nl{font-size:12px;color:#8fa3b8;white-space:nowrap;flex:0 0 auto}
.ol-namebar .ol-input{flex:1 1 auto;width:auto;padding:8px 11px}

.ol-sec{display:flex;align-items:center;gap:8px;margin:2px 0 9px}
.ol-sec b{font-size:14px;color:#e6eef6;font-weight:700;letter-spacing:.4px}
.ol-sec-n{font-size:11px;color:#5b6672}
.ol-refresh{margin-left:auto;background:none;border:1px solid #232c38;border-radius:6px;
  color:#5abedc;font-size:11.5px;padding:4px 9px;cursor:pointer;font:11.5px/1.4 inherit}
.ol-refresh:hover{border-color:#35657d;background:#132029}

.ol-room{display:flex;align-items:center;gap:10px;background:#111820;border:1px solid #232c38;
  border-radius:11px;padding:12px 14px;margin-bottom:8px;cursor:pointer;
  transition:border-color .14s, background .14s, transform .14s}
.ol-room:hover{border-color:#35657d;background:#132029;transform:translateY(-1px)}
.ol-room.off{opacity:.46;cursor:not-allowed}
.ol-room.off:hover{border-color:#232c38;background:#111820;transform:none}
.ol-room-l{min-width:0}
.ol-room-code{font-size:20px;font-weight:800;letter-spacing:3.5px;color:#f0c96a;
  line-height:1.1;font-variant-numeric:tabular-nums}
.ol-room-sub{font-size:11px;color:#7a94a4;margin-top:4px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.ol-room-r{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px;
  flex:0 0 auto;text-align:right}
.ol-tag{font-style:normal;font-size:10px;padding:1px 7px;border-radius:5px;font-weight:600}
.ol-tag.free{background:#0d2018;color:#7fd8a0;border:1px solid #2a5c3f}
.ol-tag.full{background:#1c1710;color:#d9b98b;border:1px solid #5c4a2a}
.ol-tag.busy{background:#1c1010;color:#d98b8b;border:1px solid #5c2a2a}
.ol-room-n{font-size:11px;color:#5abedc;font-weight:600;font-variant-numeric:tabular-nums}
.ol-room-go{font-size:11.5px;color:#5abedc}

.ol-empty{text-align:center;padding:28px 14px;color:#7a94a4;font-size:12.5px;
  background:#0e151c;border:1px dashed #232c38;border-radius:11px;line-height:1.95}
.ol-empty span{font-size:11px;color:#5b6672}
.ol-empty.err{color:#e8b8b8;border-color:#5c2a2a;border-style:solid;background:#1c1010}

.ol-acts{margin:14px 0 10px}
.ol-acts .btn{display:block;width:100%;padding:13px 0;font-size:14.5px;font-weight:700;
  border-radius:11px}
.ol-joinbox{display:flex;gap:8px;align-items:stretch}
.ol-joinbox .ol-input{flex:1 1 auto;width:auto;letter-spacing:3px;text-align:center;
  font-weight:700;text-transform:uppercase;padding:9px 10px}
.ol-joinbox .btn{flex:0 0 auto;padding:0 16px;font-size:12.5px}

/* ============================================================
   选人 / 配装（对抗模式）
   ============================================================ */
.ol-pick{margin-left:auto;font-size:11px;color:#7a94a4;white-space:nowrap}

.ol-ids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:4px}
.ol-id{background:#0f161e;border:1px solid #232c38;border-radius:9px;padding:8px 10px;
  cursor:pointer;transition:border-color .13s, background .13s}
.ol-id:hover{border-color:#35657d;background:#132029}
.ol-id.on{border-color:#8a7333;background:#1a1509;box-shadow:0 0 0 1px rgba(240,201,106,.2) inset}
.ol-id-n{display:flex;align-items:center;gap:5px}
.ol-id-n b{font-size:13px;color:#e6eef6;font-weight:700}
.ol-id-n i{font-style:normal;font-size:10px;font-weight:700;color:#1a1509;background:#f0c96a;
  border-radius:50%;width:15px;height:15px;display:flex;align-items:center;justify-content:center}
.ol-id-t{font-size:10.5px;color:#8fa3b8;margin-top:2px}
.ol-id-s{font-size:9.5px;color:#5b6672;margin-top:3px;letter-spacing:.2px}

.ol-lo{background:#111820;border:1px solid #232c38;border-radius:9px;padding:9px 11px;margin-bottom:7px}
.ol-lo-h{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.ol-lo-h b{font-size:13px;color:#e6eef6}
.ol-lo-g{font-size:10.5px;color:#8fa3b8;line-height:1.5}
.ol-lo-t{display:flex;gap:5px;margin-top:6px}
.ol-tier{flex:1;padding:5px 0;font-size:11px;border-radius:6px;background:#151d26;
  border:1px solid #2b3540;color:#8fa3b8;cursor:pointer;font:11px/1.4 inherit}
.ol-tier.on{background:#2a2110;border-color:#8a7333;color:#f0c96a;font-weight:700}

/* 地图上的对手 */
.ol-cell.foe .ol-dot{background:#c25a5a;color:#fff}

/* ============================================================
   40 区域大地图（对抗模式）
   ============================================================ */
.ol-turnbar{display:flex;justify-content:space-between;align-items:center;gap:8px;
  font-size:11.5px;color:#8fa3b8;background:#0b131a;border:1px solid #1c2733;
  border-radius:9px;padding:7px 11px;margin-bottom:9px}
.ol-turnbar b{color:#e6eef6}

.ol-exwait{font-size:11.5px;color:#8a7a58;background:#1a1509;border:1px dashed #4a3a18;
  border-radius:8px;padding:8px 11px;margin-top:9px;text-align:center}
.ol-mapwrap{position:relative;width:100%;aspect-ratio:1209/1259;border:1px solid #1c2733;
  border-radius:11px;overflow:hidden;background:#070b10;margin-bottom:11px;
  box-shadow:0 2px 14px rgba(0,0,0,.45) inset}
.ol-mapsvg{position:absolute;inset:0;width:100%;height:100%;display:block}
.ol-mapsvg image{filter:brightness(1.45) contrast(1.12) saturate(1.05)}
.ol-mapsvg .mp-a .mp-fill{fill:rgba(217,164,65,0);transition:fill .18s}
.ol-mapsvg .mp-a .mp-edge{fill:none;stroke:rgba(158,178,198,.5);stroke-width:1.1;
  vector-effect:non-scaling-stroke}
.ol-mapsvg .mp-a.near{cursor:pointer}
.ol-mapsvg .mp-a.near .mp-fill{fill:rgba(96,208,132,.18)}
.ol-mapsvg .mp-a.near .mp-edge{stroke:#78e0a0;stroke-width:2.2}
.ol-mapsvg .mp-a.cur .mp-fill{fill:rgba(217,164,65,.20)}
.ol-mapsvg .mp-a.cur .mp-edge{stroke:#ffd88f;stroke-width:2.4}

.ol-pin{pointer-events:none}
.ol-pin circle{stroke:#070b10;stroke-width:5}
.ol-pin text{font-weight:700;fill:#0d1117}
.ol-pin.me circle{fill:#f0c96a}
.ol-pin.npc circle{fill:#d9705a}
.ol-pin.foe circle{fill:#e05a5a}
.ol-pin.near circle{fill:#8a6a3a;stroke-dasharray:8 6}
.ol-pin.near text{fill:#ffe9c0}

.ol-loc{background:#0f161e;border:1px solid #232c38;border-radius:11px;padding:11px 13px;margin-bottom:11px}
.ol-loc-h{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.ol-loc-h b{font-size:15px;color:#e6eef6}
.ol-ex-tag{font-style:normal;font-size:10px;color:#0d1117;background:#5abedc;
  padding:1px 7px;border-radius:5px;font-weight:700}
.ol-exits{display:flex;flex-wrap:wrap;gap:6px}
.ol-exit{position:relative;padding:7px 12px;border-radius:8px;background:#16212c;
  border:1px solid #2b3540;color:#cfe0ee;font:12.5px/1.4 inherit;cursor:pointer}
.ol-exit:hover,.ol-exit:active{border-color:#35657d;background:#1b2a36;color:#fff}
.ol-exit i{font-style:normal;font-size:9px;color:#0d1117;background:#5abedc;
  border-radius:4px;padding:0 4px;margin-left:5px;font-weight:700}
.ol-ex-btn{}

.ol-here{display:flex;align-items:center;gap:8px;background:#141a22;border:1px solid #2b3540;
  border-radius:9px;padding:9px 12px;margin-bottom:7px}
.ol-here b{font-size:13px;color:#eef3f9;font-weight:600}
.ol-foe-tag{font-style:normal;font-size:10px;color:#d98b8b;background:#1c1010;
  border:1px solid #5c2a2a;border-radius:5px;padding:0 6px}
.ol-foe-tag.pvp{color:#f0c96a;background:#1c1710;border-color:#5c4a2a}
.ol-here .btn{margin-left:auto}

.ol-nears{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ol-near{font-size:11.5px;color:#d9b98b;background:#1a1509;border:1px solid #4a3a18;
  border-radius:7px;padding:4px 9px}
.ol-near.none{color:#5b6672;background:none;border-color:#232c38}

.ol-empty.sm{padding:16px 12px;font-size:12px}

/* ================= 联机：准备状态 / 配装槽 / 换装弹层 ================= */
.ol-rd{font-style:normal;font-size:10px;padding:1px 7px;border-radius:5px;margin-left:6px;
  background:#1c1710;border:1px solid #5c4a2a;color:#c9a86a;white-space:nowrap}
.ol-rd.on{background:#0d2018;border-color:#2a5c3f;color:#7fd8a0}
.ol-rd.off{background:#151d26;border-color:#2b3540;color:#6b7683}

.ol-lo-tag{font-style:normal;font-size:10px;color:#7d8b9c;margin-left:2px}
.ol-lo-del{margin-left:auto;background:none;border:1px solid #3a2a2a;color:#c98b8b;
  border-radius:6px;font-size:10.5px;padding:2px 8px;cursor:pointer;font-family:inherit}
.ol-lo-del:hover{background:#1c1010;border-color:#5c2a2a}

.ol-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.ol-slot{display:flex;align-items:center;gap:5px;background:#0b1119;border:1px solid #2b3540;
  border-radius:7px;padding:6px 7px;cursor:pointer;text-align:left;font-family:inherit;min-width:0}
.ol-slot:hover{border-color:#35657d;background:#131d27}
.ol-slot i{font-style:normal;font-size:9.5px;color:#5b6672;background:#151d26;border-radius:4px;
  padding:0 4px;flex:0 0 auto}
.ol-slot b{font-size:10.5px;color:#cfdae6;font-weight:600;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}

.ol-readybox{margin:14px 0 8px}
.ol-ready-n{text-align:center;font-size:10.5px;color:#7d8b9c;margin-top:6px}

.ol-gp{max-height:70vh;display:flex;flex-direction:column}
.ol-gp-h{font-size:13px;color:#e6eef6;margin-bottom:9px}
.ol-gp-h b{color:#f0c96a}
.ol-gp-list{display:flex;flex-direction:column;gap:5px;overflow:auto;margin-bottom:9px}
.ol-opt{display:flex;align-items:center;gap:8px;background:#0f161e;border:1px solid #232c38;
  border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left;font-family:inherit}
.ol-opt:hover:not(:disabled){border-color:#35657d;background:#132029}
.ol-opt.on{border-color:#8a7333;background:#1a1509}
.ol-opt:disabled{opacity:.4;cursor:not-allowed}
.ol-opt b{font-size:12px;color:#e6eef6;flex:0 0 auto}
.ol-opt span{font-size:10px;color:#7d8b9c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ol-opt i{font-style:normal;font-size:9.5px;color:#5abedc;margin-left:auto;flex:0 0 auto}
.ol-gp-f{font-size:10px;color:#5b6672;margin-bottom:9px}

/* ---- 房间：地图行 / 队伍条 ---- */
.ol-maprow{display:flex;align-items:center;gap:10px;background:#0f161e;border:1px solid #232c38;
  border-radius:10px;padding:10px 13px;margin-bottom:4px}
.ol-maprow>div{flex:1 1 auto;min-width:0}
.ol-mapname{font-size:15px;font-weight:700;margin-top:2px}
.ol-team{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ol-tm{display:inline-flex;align-items:center;gap:5px;background:#111820;border:1px solid #2b3540;
  border-radius:8px;padding:5px 10px 5px 6px;font-size:12px;color:#cfdae6}
.ol-tm i{font-style:normal;width:16px;height:16px;border-radius:50%;background:#2a2110;
  border:1px solid #6b5a2a;color:#f0c96a;font-size:10px;display:inline-flex;
  align-items:center;justify-content:center;flex:0 0 auto}

/* 联机编队提示条 */
.ol-wrap .cmp-online,.cmp-online{background:#101a12;border:1px solid #2a5c3f;border-radius:9px;
  padding:8px 12px;font-size:11px;color:#8fc9a4;margin:10px 0 4px;line-height:1.6}
.cmp-online b{color:#7fd8a0}

/* ================= 联机战斗：套用单机战场卡牌 ================= */
.ol-battle .bs-arena{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.ol-battle .bs-cards{display:grid !important;flex-direction:unset !important;gap:6px}
.ol-battle .bs-side-t{font-size:10.5px;color:#7d8b9c;letter-spacing:1px;margin-bottom:5px}
.ol-battle .bs-team.us .bs-side-t{color:#f0c96a}
.ol-battle .bs-vsline{text-align:center;color:#4a5560;font-size:11px;letter-spacing:2px}
.ol-battle .bs-fig{height:74px}
.ol-battle .bs-u{padding:6px 7px}
.ol-battle .bs-log{max-height:none !important;background:none;border:none;padding:0;margin-top:10px;display:block}
.ol-battle .bs-line{font-size:11px;line-height:1.7;color:#9aa8b6}
.ol-battle .bs-line.good{color:#7fd8a0}
.ol-battle .bs-line.bad{color:#e0796b}
.ol-battle .bs-line.cmd{color:#f0c96a}

/* ---- 地图点位：联机下再大一点、压在标签上面，避免被地名糊住 ---- */
.ol-wrap .mp-dots{z-index:6}
.ol-wrap .mp-dot{width:9px;height:9px;box-shadow:0 0 0 1px rgba(0,0,0,.55)}
.ol-wrap .mp-dots.me .mp-dot{box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 6px rgba(74,222,128,.55)}
.ol-wrap .mp-dots.foe .mp-dot.r{box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 6px rgba(232,80,70,.5)}

/* ---- 战斗：普通攻击按钮 ---- */
.ob-atk{display:block;width:100%;margin:0 0 8px;padding:11px 14px;border-radius:10px;
  border:1px solid #7a3a2a;background:linear-gradient(180deg,#3a1d16,#24120e);
  color:#ffd0c0;font:600 14px/1.4 inherit;cursor:pointer;letter-spacing:.5px}
.ob-atk:hover{background:linear-gradient(180deg,#4a2318,#2c1712);border-color:#a8472f;color:#fff}
.ob-atk:active{transform:translateY(1px)}
