/* QO.Net: Fellowship panel + chat (js/net.js) */
#mpPanel{display:none;position:fixed;top:90px;right:24px;width:360px;max-height:70vh;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;z-index:60;font-size:max(12.5px,var(--qo-small,12px))}
#mpPanel .mpRow{display:flex;gap:8px;align-items:center;margin:6px 0}
#mpPanel input{flex:1;min-width:0;background:rgba(0,0,0,.45);border:1px solid var(--edge);color:var(--text);padding:6px 8px;font:inherit;outline:none}
#mpPanel input:focus{border-color:var(--lattice)}
#mpPanel .mBtn{padding:6px 10px;font-size:max(12px,var(--qo-small,12px));letter-spacing:.14em;white-space:nowrap}
#mpPanel .mpRow .mBtn{width:auto;flex:0 0 auto;min-width:0}
#mpPanel .mpRow input{min-width:90px}
#mpPanel > .mBtn{width:100%;margin-top:8px}
#mpPanel .mpHint{color:var(--text-faint);font-size:max(12px,var(--qo-small,12px));line-height:1.45;margin:6px 0}
#mpPanel code{color:var(--silver)}
#mpPanel .mpAddr{flex:1;color:var(--silver)}
#mpPanel .mpCode{color:var(--lattice);letter-spacing:.2em;font-size:max(14px,var(--qo-small,12px));flex:1}
#mpPanel .mpList{list-style:none;margin:4px 0;padding:0}
#mpPanel .mpList li{padding:4px 2px;border-bottom:1px solid rgba(255,255,255,.05)}
#mpPanel .mpDim{color:var(--text-faint);font-size:max(12px,var(--qo-small,12px))}
#mpPanel .mpCrown{color:var(--brass-hi);margin-right:4px}
#mpStat{color:var(--text-dim);text-align:center;margin-bottom:4px}
.mpDot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#6a3a34;vertical-align:middle}
.mpDot.online{background:var(--lattice);box-shadow:0 0 6px var(--lattice)}
.mpDot.connecting{background:var(--brass)}

#mpChat{position:fixed;left:196px;bottom:250px;width:380px;z-index:55;pointer-events:none;font-size:max(12px,var(--qo-small,12px))}
#mpChatLog{max-height:150px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.mpLine{color:var(--text);text-shadow:0 1px 2px #000,0 0 4px #000;padding:1px 0;transition:opacity 1.2s}
.mpLine b{color:var(--silver-hi)}
.mpLine.sys{color:var(--text-dim);font-style:italic}
.mpLine.sys a{color:var(--lattice);pointer-events:auto}
.mpLine.party b{color:var(--lattice)}
.mpLine.whisper,.mpLine.whisper b{color:#d6a8e8}
.mpLine.old{opacity:0}
#mpChatIn{display:none;width:100%;box-sizing:border-box;margin-top:4px;background:rgba(6,8,12,.85);border:1px solid var(--edge);color:var(--text);padding:6px 8px;font:inherit;outline:none;pointer-events:auto}
#mpChat.typing #mpChatIn{display:block}
#mpChat.typing #mpChatLog{overflow:auto;pointer-events:auto;background:rgba(6,8,12,.55)}
#mpChat.typing .mpLine.old{opacity:1}
@media (max-width:900px){#mpChat{left:12px;width:calc(100vw - 24px);bottom:200px}#mpPanel{right:12px;left:12px;width:auto}}
/* A9: verified account mark (drawn by the client, never part of a name) + mute/block buttons */
.mpVer{color:var(--lattice);font-weight:600;font-style:normal;margin-left:2px;white-space:nowrap}
#mpPanel .mpList li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
#mpPanel .mpActs{margin-left:auto;display:flex;gap:4px}
#mpPanel .mpAct{background:rgba(0,0,0,.35);border:1px solid var(--edge);color:var(--text-dim);font:inherit;font-size:max(11px,var(--qo-small,11px));padding:2px 7px;cursor:pointer;min-height:24px}
#mpPanel .mpAct:hover,#mpPanel .mpAct:focus-visible{color:var(--text);border-color:var(--lattice);outline:none}
/* G2 Open games (v2 run 53) */
#mpPanel .secHdr .mpRefresh{float:right;margin-top:-2px}
#mpPanel .mpGames li{flex-wrap:nowrap;line-height:1.45;padding:6px 2px}
#mpPanel .mpGInfo{flex:1;min-width:0}
#mpPanel .mpGName{color:var(--text);font-weight:600}
#mpPanel .mpGJoin{color:var(--text);border-color:var(--lattice)}
#mpPanel .mpGames li.mpFar{opacity:.62}
#mpPanel .mpListed b{color:var(--gold,#e6c36a);margin:0 6px}
/* G2 Looking for group (v2 run 57) */
#mpPanel .mpSeekRow{flex-wrap:wrap}
#mpPanel .mpSeekRow input{flex:1 1 140px}
#mpPanel select{background:rgba(0,0,0,.45);border:1px solid var(--edge);color:var(--text);padding:5px 6px;font:inherit;outline:none;min-height:30px}
#mpPanel select:focus{border-color:var(--lattice)}
#mpPanel .mpSeekOn{border:1px solid var(--lattice);background:rgba(120,170,255,.07);padding:5px 8px}
#mpPanel .mpSeekTag{color:var(--text);font-weight:600;white-space:nowrap}
#mpPanel .mpSeekWhat{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mpPanel .secHdr .mpRefresh2{float:right;margin-top:-2px}
#mpPanel .mpWant{color:var(--text);border:1px solid var(--edge);padding:0 5px;margin-right:4px;font-size:.92em;white-space:nowrap}
#mpPanel .mpWant-boss{border-color:#b8564a;color:#f0b4a8}
#mpPanel .mpWant-farm{border-color:#c9a44a;color:#f0d79a}
#mpPanel .mpWant-story{border-color:#5f8fc9;color:#b9d2f2}
#mpPanel .mpWant-help{border-color:#6aa874;color:#bfe3c4}
/* v2 run 69 FOCUS: a listed game's focus, the SHOW chips over Open games / LFG, a seeker that fits the leader's game */
#mpPanel .mpChips{gap:4px;flex-wrap:wrap;align-items:center}
#mpPanel .mpChip{opacity:.72}
#mpPanel .mpChip.on{opacity:1;background:rgba(201,164,74,.16);color:var(--text);box-shadow:inset 0 -2px 0 currentColor}
#mpPanel .mpFocus{max-width:150px}
#mpPanel .mpGName .mpWant{font-weight:400;margin-left:4px}
#mpPanel .mpFits{color:#e8d07a}
#mpPanel .mpListRow{flex-wrap:wrap}
#mpPanel .mpListRow input,#mpPanel .mpListedName{flex:1 0 100%}
#mpPanel .mpListRow .mpFocus{flex:1 1 auto;max-width:none}
