/* Phase 2–5 联机菜单与 HUD。 */
.mp-overlay{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:22px;background:#03070bdc;backdrop-filter:blur(10px);overflow:auto}
.mp-shell{position:relative;width:min(980px,100%);padding:30px;border:1px solid #2b3947;border-radius:10px;background:linear-gradient(145deg,#101820f2,#070b10f7);box-shadow:0 34px 90px #000b}
.mp-close{position:absolute;right:18px;top:14px;width:44px;height:44px;border-radius:50%;font-size:28px;color:var(--dim);z-index:2}
.mp-head span{font:10px/1 var(--mono);letter-spacing:.3em;color:var(--acc2)}.mp-head h2{font-size:30px;font-weight:300;letter-spacing:.12em;margin-top:8px}.mp-head p{margin-top:8px;color:var(--dim);font-size:12px}.mp-head p[data-state="bad"]{color:var(--bad)}.mp-head p[data-state="ok"]{color:var(--acc2)}
.mp-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0 18px}.mp-fields label,.mp-host label{font:10px/1 var(--mono);letter-spacing:.15em;color:var(--dim2)}.mp-fields input,.mp-join input,.mp-host select{display:block;width:100%;min-height:48px;margin-top:7px;padding:0 13px;border:1px solid var(--line2);border-radius:5px;background:#050a0f;color:var(--txt);font:13px/1 var(--mono);outline:none}.mp-fields input:focus,.mp-join input:focus{border-color:var(--acc)}
.mp-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mp-mode{min-height:172px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#091018;text-align:left;display:flex;gap:14px;color:var(--txt);transition:.18s}.mp-mode:hover{transform:translateY(-2px);border-color:var(--line2)}.mp-mode.on{border-color:var(--acc);box-shadow:0 0 0 1px #4cc2ff33,inset 0 0 40px #4cc2ff0c}.mp-mode i{font-style:normal;font-size:32px;color:var(--acc)}.mp-mode span{display:flex;flex-direction:column}.mp-mode b{font-size:15px;letter-spacing:.08em}.mp-mode em{font:9px/1 var(--mono);font-style:normal;letter-spacing:.18em;color:var(--acc2);margin-top:5px}.mp-mode small{font-size:11px;line-height:1.65;color:var(--dim);margin-top:12px}
.mp-actions,.mp-host{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:22px}.mp-join{display:flex;gap:8px}.mp-join input{width:150px;margin:0;text-transform:uppercase;letter-spacing:.3em;text-align:center}.mp-actions .btn,.mp-host .btn{min-height:48px}
.mp-roomline{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:24px 0;background:var(--line);border:1px solid var(--line)}.mp-roomline>div{background:#081017;padding:16px}.mp-roomline small{display:block;font:9px/1 var(--mono);letter-spacing:.18em;color:var(--dim2)}.mp-roomline b{display:block;margin-top:9px;font:22px/1 var(--mono);color:var(--acc)}
.mp-players{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mp-player{min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#070d12;display:flex;align-items:center;gap:10px}.mp-player>div{flex:1}.mp-player b{display:block;font-size:13px}.mp-player small{display:block;color:var(--dim);font-size:10px;margin-top:4px}.mp-player button{padding:7px 9px;border:1px solid #ff5f5666;border-radius:4px;color:var(--bad);font-size:10px}.mp-dot{width:9px;height:9px;border-radius:50%;background:var(--acc2);box-shadow:0 0 10px var(--acc2)}.mp-dot.off{background:var(--bad);box-shadow:none}.mp-host label{min-width:180px}.mp-host select{margin-top:6px}
.mp-hud{position:fixed;inset:0;z-index:21;pointer-events:none}.mp-objective{position:absolute;left:50%;top:18px;transform:translateX(-50%);min-width:280px;text-align:center;padding:9px 18px;border-top:1px solid #4cc2ff66;background:linear-gradient(90deg,transparent,#06111bc9,transparent)}.mp-objective small{display:block;font:8px/1 var(--mono);letter-spacing:.28em;color:var(--acc)}.mp-objective b{display:block;margin-top:5px;font-size:13px;letter-spacing:.08em}.mp-objective span{display:block;margin-top:4px;font:10px/1 var(--mono);color:var(--warn)}.mp-vitals{position:absolute;left:24px;bottom:100px;display:flex;gap:8px}.mp-vitals span{padding:7px 10px;border-left:2px solid var(--acc);background:#061019b5;font:9px/1 var(--mono);color:var(--dim)}.mp-vitals b{color:var(--txt);font-size:12px}.mp-roster{position:absolute;right:20px;top:170px;width:170px;display:flex;flex-direction:column;gap:4px}.mp-roster>div{display:flex;justify-content:space-between;padding:6px 8px;background:#061019a8;border-right:2px solid var(--acc2);font:10px/1 var(--mono)}.mp-roster>div.dead{opacity:.38;border-color:var(--bad);text-decoration:line-through}.mp-roster b{color:var(--acc2)}
.mp-announce{position:fixed;left:50%;top:34%;z-index:120;transform:translate(-50%,-50%) scale(.88);opacity:0;padding:15px 26px;border:1px solid var(--acc);background:#061019e8;font:600 16px/1 var(--mono);letter-spacing:.12em;color:#fff;transition:.25s;pointer-events:none}.mp-announce.on{opacity:1;transform:translate(-50%,-50%) scale(1)}.mp-announce.bad{border-color:var(--bad);color:#ffd0cc}.mp-announce.good{border-color:var(--acc2);color:#d7ffef}
@media(max-width:760px){.mp-modes{grid-template-columns:1fr}.mp-fields,.mp-players{grid-template-columns:1fr}.mp-shell{padding:22px}.mp-mode{min-height:126px}.mp-roomline{grid-template-columns:1fr}.mp-roster{display:none}}
/* === Phase 5 完成，等待继续 === */