/* 联机界面：沿用原作的配色与字体变量，叠加在原作界面之上 */
#coop { position: absolute; inset: 0; pointer-events: none; font-family: var(--f-label); color: var(--bone); text-shadow: var(--shadow); z-index: 40; }
#coop [hidden] { display: none !important; }
#coop * { box-sizing: border-box; }

/* ---- 改编署名：标题界面左上角醒目显示，任务中缩到左下角 ---- */
#coop-credit { position: absolute; left: var(--gl); top: calc(18px + var(--sat)); padding: 6px 12px; font-size: 14px; letter-spacing: .14em; color: var(--bone); background: var(--plate-solid); border-left: 3px solid var(--signal); text-shadow: none; }
#coop-credit b { color: var(--signal); font-weight: 700; }
#coop-credit.small { top: auto; bottom: calc(4px + var(--sab)); left: 50%; transform: translateX(-50%); padding: 0; font-size: 11px; letter-spacing: .1em; color: var(--bone-dim); background: none; border: 0; text-shadow: var(--shadow); }
#coop-credit.small b { color: var(--bone); font-weight: 600; }
#coop .co-k span { float: right; font-size: 11px; letter-spacing: .08em; color: var(--bone-dim); }

/* ---- 公众号二维码：默认收起，点署名旁的「公众号」按钮在署名下方展开 ---- */
#coop-qr { position: absolute; left: var(--gl); top: calc(58px + var(--sat)); display: flex; align-items: flex-end; gap: 10px; padding: 8px 12px 8px 8px; background: var(--plate-solid); border-left: 3px solid var(--line); text-shadow: none; pointer-events: auto; }
#coop-qr-img { display: block; width: 176px; height: 176px; }
#coop-credit { pointer-events: auto; }
#coop-qr-btn { margin-left: 12px; padding: 2px 9px; font: 600 12px var(--f-label); letter-spacing: .1em; color: var(--ink); background: var(--signal); border: 0; border-radius: 0; cursor: pointer; }
#coop-qr-btn:hover { background: var(--signal-hot); }
#coop-qr-btn[aria-expanded="true"] { color: var(--signal); background: transparent; box-shadow: inset 0 0 0 1px var(--signal); }
#coop-credit.small #coop-qr-btn { display: none; }
#coop .co-qr-text { font-size: 12px; line-height: 1.7; letter-spacing: .08em; color: var(--bone-dim); }
#coop .co-qr-text b { display: block; font-size: 14px; letter-spacing: .12em; color: var(--signal); }
@media (max-height: 640px) { #coop-qr-img { width: 128px; height: 128px; } #coop .co-qr-text { font-size: 11px; } }

/* ---- 标题界面：房间面板 ---- */
#coop-lobby { position: absolute; top: calc(18px + var(--sat)); right: var(--gr); width: min(300px, 46vw); padding: 14px 16px 16px; background: var(--plate-solid); border-left: 2px solid var(--signal); pointer-events: auto; text-shadow: none; }
#coop .co-k { font-size: 12px; letter-spacing: .26em; color: var(--signal); margin-bottom: 10px; }
/* ---- 选中角色的大图预览（房间面板左侧）---- */
#coop-look-preview { position: absolute; top: calc(18px + var(--sat)); right: calc(var(--gr) + min(300px, 46vw) + 10px); width: min(250px, 30vw); padding: 10px 12px 12px; background: var(--plate-solid); border-left: 2px solid var(--line); text-shadow: none; }
#coop-look-big { display: block; width: 100%; height: auto; aspect-ratio: 330 / 460; background: radial-gradient(ellipse at 50% 62%, rgba(232, 228, 218, .13), rgba(232, 228, 218, 0) 68%); }
#coop-look-wait { display: flex; align-items: center; justify-content: center; aspect-ratio: 330 / 460; font-size: 12px; color: var(--bone-dim); }
#coop-look-name { margin-top: 8px; font: 700 17px var(--f-display); letter-spacing: .1em; color: var(--bone); }
#coop-look-desc { margin-top: 3px; font-size: 12px; letter-spacing: .06em; color: var(--signal); }
@media (max-width: 720px) { #coop-look-preview { display: none; } }

#coop .co-sub { font-size: 11px; letter-spacing: .14em; color: var(--bone-dim); margin-bottom: 6px; }
#coop-looks { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
#coop-lobby .co-look { width: auto; margin: 0; padding: 0; aspect-ratio: 132 / 184; display: flex; align-items: center; justify-content: center; overflow: hidden; background: rgba(232, 228, 218, .05); border: 1px solid var(--line); color: var(--bone-dim); font: 500 11px var(--f-label); letter-spacing: 0; cursor: pointer; }
#coop-lobby .co-look:hover { border-color: var(--bone-dim); }
#coop-lobby .co-look.on { border-color: var(--signal); background: rgba(111, 215, 255, .14); background: color-mix(in srgb, var(--signal) 14%, transparent); }
#coop-lobby .co-look img { width: 100%; height: 100%; object-fit: cover; display: block; }
#coop-look-note { margin: 7px 0 4px; font-size: 12px; line-height: 1.5; color: var(--bone); min-height: 36px; }
#coop-lobby label { display: block; font-size: 11px; letter-spacing: .14em; color: var(--bone-dim); margin-top: 8px; }
#coop-lobby input { display: block; width: 100%; margin-top: 4px; padding: 8px 9px; font: 600 15px var(--f-label); color: var(--bone); background: rgba(232, 228, 218, .06); border: 1px solid var(--line); border-radius: 0; outline: none; -webkit-user-select: text; user-select: text; }
#coop-lobby input:focus { border-color: var(--signal); }
#coop-lobby button { width: 100%; margin-top: 12px; padding: 9px; font: 700 14px var(--f-label); letter-spacing: .18em; border-radius: 0; cursor: pointer; }
#coop-join button { color: var(--ink); background: var(--signal); border: 0; }
#coop-join button:hover { background: var(--signal-hot); }
#coop-leave { color: var(--bone-dim); background: transparent; border: 1px solid var(--line); }
#coop-leave:hover { color: var(--bone); border-color: var(--bone-dim); }
#coop .co-row { font-size: 13px; letter-spacing: .08em; color: var(--bone-dim); }
#coop .co-row b { color: var(--bone); font-weight: 600; margin-right: 10px; }
#coop .co-row span { color: var(--signal); }
#coop .co-note { margin: 10px 0 0; font-size: 12px; line-height: 1.7; color: var(--bone-dim); }
#coop-lobby label.co-check { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; letter-spacing: .04em; color: var(--bone); cursor: pointer; }
#coop-lobby label.co-check input { display: inline-block; width: auto; margin: 0 7px 0 0; padding: 0; vertical-align: -2px; accent-color: var(--signal); }
#coop-lobby label.co-check small { display: block; margin-top: 4px; font-size: 11px; line-height: 1.5; color: var(--bone-dim); }
#coop-err { margin-top: 8px; font-size: 13px; color: var(--alarm); }
#coop-err:empty { display: none; }

/* ---- 名单 ---- */
#coop .co-roster { list-style: none; margin: 8px 0 0; padding: 0; font-size: 14px; line-height: 1.75; }
#coop .co-roster li { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
#coop .co-roster i { width: 8px; height: 8px; flex: none; }
#coop .co-roster em { font-style: normal; font-size: 11px; letter-spacing: .06em; color: var(--bone-dim); }
#coop .co-roster em.hp { font-family: var(--f-mono); color: var(--bone); }
#coop .co-roster em.bad { color: var(--alarm); }
#coop .co-roster em.talk { color: var(--signal); }

/* ---- 小地图（右上角）---- */
#coop-map { position: absolute; top: calc(14px + var(--sat)); right: var(--gr); width: 172px; height: 172px; border-radius: 50%; }
@media (max-height: 640px), (max-width: 760px) { #coop-map { width: 128px; height: 128px; } }

/* ---- 队友头顶名牌 ---- */
#coop .co-tag { position: absolute; left: 0; top: 0; padding: 2px 8px 2px 9px; font-size: 13px; line-height: 1.5; white-space: nowrap; background: rgba(11, 13, 15, .62); border-left: 3px solid var(--signal); text-shadow: none; will-change: transform; }
#coop .co-tag b { font-weight: 600; }
#coop .co-tag span { margin-left: 7px; font: 500 11px var(--f-mono); color: var(--bone-dim); }
#coop .co-tag.down span { color: var(--alarm); }

/* ---- 任务中：网速与小队（左侧，任务目标下方）---- */
#coop-hud { position: absolute; left: var(--gl); top: calc(128px + var(--sat)); padding-left: 12px; border-left: 2px solid var(--line); }
#coop .co-net { font: 500 11px/1.4 var(--f-mono); letter-spacing: .04em; color: var(--bone-dim); }
#coop .co-net.bad { color: var(--alarm); }

/* ---- 任务菜单：继续 / 退出任务 / 离开房间 ---- */
#coop-menu-btn { pointer-events: auto; margin-top: 8px; padding: 4px 10px; font: 500 11px var(--f-label); letter-spacing: .1em; color: var(--bone-dim); background: var(--plate); border: 1px solid var(--line); border-radius: 0; cursor: pointer; text-shadow: none; }
#coop-keys { margin-top: 6px; max-width: 240px; font-size: 11px; line-height: 1.5; letter-spacing: .04em; color: var(--signal); }
#coop-menu-btn:hover { color: var(--bone); border-color: var(--bone-dim); }
#coop-menu { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(300px, 80vw); padding: 18px 20px 20px; background: var(--plate-solid); border-left: 2px solid var(--signal); pointer-events: auto; text-shadow: none; z-index: 5; }
#coop-menu button { display: block; width: 100%; margin-top: 10px; padding: 11px; font: 700 15px var(--f-label); letter-spacing: .18em; color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop-menu button:hover { border-color: var(--bone-dim); }
#coop-menu #coop-menu-resume { color: var(--ink); background: var(--signal); border-color: var(--signal); }
#coop-menu #coop-menu-resume:hover { background: var(--signal-hot); }
#coop-menu .co-note { margin: 4px 0 6px; }
#coop-menu-hint:empty { display: none; }

/* ---- 聊天与语音 ---- */
#coop-chat { position: absolute; left: var(--gl); bottom: calc(118px + var(--sab)); width: min(400px, 60vw); }
#coop-chat.title { bottom: calc(190px + var(--sab)); }
#coop-chat-log div { margin-top: 2px; padding: 2px 8px; font-size: 14px; line-height: 1.6; background: rgba(11, 13, 15, .42); overflow-wrap: anywhere; transition: opacity .6s; }
#coop-chat-log div.sys { color: var(--bone-dim); font-size: 13px; }
#coop-chat-log div.out { opacity: 0; }
#coop-chat.open #coop-chat-log div.out { opacity: 1; }
#coop-chat-log b { font-weight: 600; margin-right: 8px; }
#coop-chat-input { pointer-events: auto; width: 100%; margin-top: 6px; padding: 8px 10px; font: 500 15px var(--f-label); color: var(--bone); background: var(--plate-solid); border: 1px solid var(--signal); border-radius: 0; outline: none; text-shadow: none; -webkit-user-select: text; user-select: text; }
#coop-voice { position: absolute; left: var(--gl); bottom: calc(92px + var(--sab)); font-size: 12px; letter-spacing: .08em; color: var(--bone-dim); }
#coop-voice.on { color: var(--signal); }
#coop-voice.err { color: var(--alarm); }
#coop-status { position: absolute; left: 50%; top: calc(92px + var(--sat)); transform: translateX(-50%); padding: 6px 12px; background: var(--plate-solid); border-left: 2px solid var(--alarm); font-size: 13px; letter-spacing: .08em; text-shadow: none; }

/* ---- 房间列表：每行标明是团队对战还是合作闯关，点一行就进去 ---- */
#coop .co-sub-gap { display: flex; justify-content: space-between; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line); }
/* 玩法按钮上的房间数 */
#coop .co-modes button small { display: block; margin-top: 2px; font: 500 10px var(--f-label); letter-spacing: .06em; opacity: .8; }
#coop .co-modes button small:empty { display: none; }
/* 「加入房间 / 创建房间」两个页签 */
#coop .co-tabs { display: flex; margin: 2px 0 10px; border-bottom: 1px solid var(--line); }
#coop-lobby .co-tabs button { flex: 1; width: auto; margin: 0 0 -1px; padding: 8px 0; font: 700 13px var(--f-label); letter-spacing: .12em; color: var(--bone-dim); background: transparent; border: 0; border-bottom: 2px solid transparent; border-radius: 0; cursor: pointer; }
#coop-lobby .co-tabs button:hover { color: var(--bone); background: transparent; }
#coop-lobby .co-tabs button.on { color: var(--signal); border-bottom-color: var(--signal); }
/* 搜索 + 快速加入 */
#coop .co-find { display: flex; gap: 6px; margin-bottom: 8px; }
#coop-lobby .co-find input { flex: 1; min-width: 0; margin: 0; padding: 7px 9px; font-size: 13px; }
#coop-lobby #coop-quick { flex: none; width: auto; margin: 0; padding: 0 12px; font-size: 12px; letter-spacing: .1em; }
#coop-lobby #coop-link-room { margin: 0 0 8px; padding: 8px; font-size: 13px; letter-spacing: .06em; color: var(--signal); background: transparent; border: 1px solid var(--signal); }
#coop-lobby #coop-link-room:hover { color: var(--ink); background: var(--signal); }
/* 房间一行一间：房间号、状态、人数。列表高度固定，多了在里面滚动 */
#coop-rooms { max-height: 190px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
#coop .co-rooms-empty { padding: 6px 0 2px; font-size: 12px; line-height: 1.6; letter-spacing: .04em; color: var(--bone-dim); }
#coop-rooms-more { margin-top: 6px; font-size: 11px; line-height: 1.5; letter-spacing: .04em; color: var(--bone-dim); }
#coop-rooms-more:empty { display: none; }
#coop-lobby .co-room { display: flex; align-items: center; gap: 8px; width: 100%; margin: 0 0 4px; padding: 7px 9px; text-align: left; letter-spacing: 0; color: var(--bone); background: rgba(232, 228, 218, .05); border: 1px solid var(--line); border-left: 3px solid var(--signal); border-radius: 0; cursor: pointer; }
#coop-lobby .co-room.tdm { border-left-color: #c8463a; }
#coop-lobby .co-room:hover:not(:disabled) { background: rgba(232, 228, 218, .11); }
#coop-lobby .co-room b { flex: 1; min-width: 0; font: 700 14px var(--f-label); letter-spacing: .03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#coop-lobby .co-room span { flex: none; font: 500 11px var(--f-label); letter-spacing: .06em; color: var(--bone-dim); }
#coop-lobby .co-room span.open { color: #9be36d; }
#coop-lobby .co-room em { flex: none; min-width: 38px; text-align: right; font: 600 12px var(--f-mono); font-style: normal; color: var(--bone); }
#coop-lobby .co-room.full { opacity: .45; cursor: default; }
#coop-pane-create label:first-child { margin-top: 0; }
#coop-lobby label.co-opt { display: block; margin-top: 10px; font-size: 12px; letter-spacing: .04em; color: var(--bone); cursor: pointer; }
#coop-lobby label.co-opt input { display: inline-block; width: auto; margin: 0 7px 0 0; padding: 0; vertical-align: -2px; accent-color: var(--signal); }
#coop-lobby label.co-opt small { display: block; margin-top: 3px; font-size: 11px; line-height: 1.5; color: var(--bone-dim); }

/* ---- 团队对战 ---- */
/* 房间面板：选玩法、队伍、每局时长 */
#coop .co-modes { display: flex; gap: 6px; margin-bottom: 6px; }
#coop .co-modes button { flex: 1; margin: 0; padding: 7px 0; font: 700 13px var(--f-label); letter-spacing: .12em; color: var(--bone-dim); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop .co-modes button.on { color: var(--ink); background: var(--signal); border-color: var(--signal); }
#coop .co-mode-note { margin-bottom: 10px; font-size: 11px; line-height: 1.6; letter-spacing: .04em; color: var(--bone-dim); }
#coop-tdm-box { margin: 8px 0 2px; }
#coop-tdm-box .co-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#coop-team { font-weight: 700; letter-spacing: .1em; white-space: nowrap; }
#coop-lobby #coop-team-switch { width: auto; flex: none; margin: 0; padding: 4px 10px; font: 600 12px var(--f-label); letter-spacing: .08em; color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop-team-switch:hover { border-color: var(--bone-dim); }
#coop .co-dur { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; font-size: 12px; letter-spacing: .08em; color: var(--bone-dim); }
#coop-dur { padding: 4px 6px; font: 600 12px var(--f-label); color: var(--bone); background: var(--plate-solid); border: 1px solid var(--line); border-radius: 0; }
#coop-tdm-last { margin-top: 8px; font-size: 12px; letter-spacing: .04em; color: var(--signal); }
#coop-tdm-last:empty { display: none; }
/* 对战中不显示原作的任务目标、罗盘和地图标记，顶部中间换成比分和倒计时 */
.coop-tdm .h-obj, .coop-tdm .h-marks, .coop-tdm .h-compass { display: none !important; }
#coop-score { position: absolute; left: 50%; top: calc(12px + var(--sat)); transform: translateX(-50%); display: flex; align-items: stretch; background: rgba(11, 13, 15, .6); text-shadow: none; }
#coop .co-sc { display: flex; align-items: center; gap: 10px; padding: 6px 14px; font-size: 12px; letter-spacing: .14em; }
#coop .co-sc i { font-style: normal; }
#coop .co-sc b { font: 700 24px var(--f-mono); letter-spacing: 0; color: var(--bone); }
#coop .co-sc.t0 { color: #ff6a55; border-bottom: 2px solid #ff6a55; }
#coop .co-sc.t1 { color: #55a8ff; border-bottom: 2px solid #55a8ff; }
#coop-score[data-mine="0"] .t0, #coop-score[data-mine="1"] .t1 { background: rgba(232, 228, 218, .1); }
#coop-score-time { display: flex; align-items: center; padding: 0 14px; font: 600 16px var(--f-mono); color: var(--bone); border-bottom: 2px solid var(--line); }
#coop-score-time.low { color: var(--alarm); }
.coop-spectating #coop-score { top: calc(124px + var(--sat)); }
/* 击杀、连杀、ACE 的大字提示 */
#coop-banner { position: absolute; left: 50%; top: 24%; transform: translateX(-50%); text-align: center; white-space: nowrap; text-shadow: 0 2px 12px rgba(0, 0, 0, .8); }
#coop-banner b { display: block; font: 800 30px var(--f-display); letter-spacing: .3em; margin-right: -.3em; color: var(--bone); }
#coop-banner span { display: block; margin-top: 2px; font: 600 13px var(--f-label); letter-spacing: .34em; margin-right: -.34em; color: var(--bone-dim); }
#coop-banner.show { animation: co-pop 2.2s cubic-bezier(.2, .9, .2, 1) both; }
#coop-banner.streak b { font-size: 46px; color: var(--signal); }
#coop-banner.streak span { color: var(--bone); }
#coop-banner.s3 b { font-size: 54px; }
#coop-banner.s4 b { font-size: 60px; color: #ff8a3c; }
#coop-banner.s5 b, #coop-banner.s6 b { font-size: 66px; color: #ff5a40; text-shadow: 0 0 26px rgba(255, 90, 64, .75), 0 2px 12px rgba(0, 0, 0, .8); }
#coop-banner.ace { animation-duration: 3.2s; }
#coop-banner.ace b { font-size: 84px; letter-spacing: .22em; margin-right: -.22em; color: #ffd76a; text-shadow: 0 0 34px rgba(255, 215, 106, .85), 0 3px 14px rgba(0, 0, 0, .85); }
#coop-banner.ace span { font-size: 15px; color: #ffd76a; }
@keyframes co-pop {
  0% { opacity: 0; transform: translateX(-50%) scale(2.1); }
  9% { opacity: 1; transform: translateX(-50%) scale(.94); }
  15% { transform: translateX(-50%) scale(1.04); }
  21%, 78% { opacity: 1; transform: translateX(-50%) scale(1); }
  100% { opacity: 0; transform: translateX(-50%) scale(1) translateY(-10px); }
}
/* 一局结束的结果和战绩 */
#coop-result { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(520px, 92vw); max-height: 86%; overflow-y: auto; padding: 22px 24px 18px; background: var(--plate-solid); border-left: 2px solid var(--signal); text-align: center; text-shadow: none; z-index: 6; }
#coop-result-title { font: 800 34px var(--f-display); letter-spacing: .24em; margin-right: -.24em; }
#coop-result-score { margin-top: 4px; font: 700 30px var(--f-mono); color: var(--bone); }
#coop-result-body { display: flex; gap: 18px; margin-top: 16px; text-align: left; }
#coop .co-res-team { flex: 1; min-width: 0; }
#coop .co-res-head { padding-bottom: 5px; border-bottom: 1px solid var(--line); font-size: 12px; letter-spacing: .2em; }
#coop .co-res-head::after { content: '击杀 / 阵亡'; float: right; letter-spacing: .06em; color: var(--bone-dim); }
#coop .co-res-row { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; font-size: 14px; color: var(--bone-dim); }
#coop .co-res-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#coop .co-res-row b { font: 600 14px var(--f-mono); color: var(--bone); white-space: nowrap; }
#coop .co-res-row.me { color: var(--signal); }
#coop-result .co-note { margin: 14px 0 0; }
@media (max-width: 720px), (max-height: 520px) {
  #coop .co-sc { padding: 4px 9px; gap: 7px; font-size: 11px; }
  #coop .co-sc b { font-size: 19px; }
  #coop-score-time { padding: 0 9px; font-size: 14px; }
  #coop-banner b { font-size: 24px; }
  #coop-banner.streak b { font-size: 34px; }
  #coop-banner.s3 b, #coop-banner.s4 b { font-size: 40px; }
  #coop-banner.s5 b, #coop-banner.s6 b { font-size: 44px; }
  #coop-banner.ace b { font-size: 56px; }
  #coop-result { padding: 14px 16px 12px; }
  #coop-result-title { font-size: 24px; }
  #coop-result-score { font-size: 22px; }
}

/* ---- 观战（管理员的上帝视角）：顶部一条，原作的菜单全部收起 ---- */
.coop-spectating #ui .menu { display: none !important; }
.coop-spectating #view { cursor: grab; }
#coop-spec { position: absolute; left: 50%; top: calc(12px + var(--sat)); transform: translateX(-50%); width: max-content; max-width: min(760px, calc(100% - 2 * var(--gl))); padding: 8px 12px 9px; background: var(--plate-solid); border-left: 2px solid var(--signal); pointer-events: auto; text-shadow: none; }
#coop .co-spec-head { display: flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: .08em; color: var(--bone-dim); }
#coop .co-spec-head b { color: var(--signal); letter-spacing: .2em; }
#coop-spec-room { color: var(--bone); }
#coop-spec-exit { margin-left: auto; padding: 3px 10px; font: 600 12px var(--f-label); letter-spacing: .1em; color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop-spec-exit:hover { border-color: var(--bone-dim); }
#coop-spec-targets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
#coop-spec-targets button { padding: 4px 10px; font: 600 13px var(--f-label); letter-spacing: .06em; color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop-spec-targets button:hover:not(:disabled) { border-color: var(--bone-dim); }
#coop-spec-targets button.on { color: var(--ink); background: var(--signal); border-color: var(--signal); }
#coop-spec-targets button:disabled { color: var(--bone-dim); opacity: .55; cursor: default; }
#coop .co-spec-help { margin-top: 7px; font-size: 11px; line-height: 1.5; letter-spacing: .04em; color: var(--bone-dim); }
.coop-spectating #coop-status { top: calc(124px + var(--sat)); }

/* ---- 手机排版：竖屏太窄、横屏太矮，房间面板都放不下 ----
   房间面板默认收起，右上角一个按钮；点开后是占满宽度、可滚动的面板，进房间后自动收起。 */
#coop-lobby-toggle { display: none; }
@media (max-width: 720px), (max-height: 520px) {
  #coop-credit { top: calc(10px + var(--sat)); padding: 5px 9px; font-size: 12px; letter-spacing: .08em; }
#coop-credit .co-wide { display: none; }

/* ---- 作战档案（排行榜）入口：署名旁边的小按钮，新标签页打开，不打断当前对局 ---- */
#coop-credit a.co-rank { margin-left: 10px; padding: 2px 9px; font: 600 12px var(--f-label); letter-spacing: .1em; color: var(--signal); box-shadow: inset 0 0 0 1px rgba(111, 215, 255, .5); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--signal) 50%, transparent); text-decoration: none; }
#coop-credit a.co-rank:hover { background: var(--signal); color: var(--ink); }
#coop-credit.small a.co-rank { display: none; }
  #coop-qr-btn { margin-left: 8px; padding: 3px 9px; }
  #coop-qr { top: calc(46px + var(--sat)); }
  #coop-qr-img { width: 150px; height: 150px; }
  #coop-lobby-toggle { display: block; position: absolute; top: calc(10px + var(--sat)); right: var(--gr); padding: 6px 12px; font: 700 13px var(--f-label); letter-spacing: .1em; color: var(--ink); background: var(--signal); border: 0; border-radius: 0; pointer-events: auto; text-shadow: none; }
  #coop-lobby-toggle[aria-expanded="true"] { color: var(--signal); background: var(--plate-solid); box-shadow: inset 0 0 0 1px var(--signal); }
  #coop-lobby { display: none; top: calc(46px + var(--sat)); left: var(--gl); right: var(--gr); width: auto; max-height: calc(100% - 58px - var(--sat) - var(--sab)); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 12px 14px 14px; }
  #coop-lobby.open { display: block; }
  #coop-lobby input { font-size: 16px; }                 /* 小于 16px 时 iPhone 聚焦输入框会自动放大页面 */
  #coop-lobby .co-k span { display: none; }
  #coop-look-preview { display: none; }
  #coop-looks { max-width: 420px; }
  #coop-hud { top: calc(112px + var(--sat)); }
  #coop-chat.title { display: none; }
}
/* ---- 触屏（手机、平板）任务中的排版 ----
   原作在触屏上把任务目标放左上、弹药和暂停键放右上、开火等按钮放右下，左手拇指在左下角拖动走路。
   联机的小地图、队员名单和「语音」「聊天」按钮都收到左侧中间那块空处，不压原作的任何东西。
   html 上的 is-touch 是原作在第一次触摸时加的。 */
#coop .co-touch { display: none; }
.is-touch #coop .co-touch { display: inline; }
.is-touch #coop .co-desk { display: none; }
#coop-chat-send { display: none; }
#coop-touch { position: absolute; left: var(--gl); top: calc(372px + var(--sat)); display: flex; gap: 8px; pointer-events: auto; }
#coop-touch button { min-width: 56px; height: 40px; padding: 0 12px; font: 600 13px var(--f-label); letter-spacing: .1em; color: var(--bone); background: rgba(11, 13, 15, .42); border: 1px solid rgba(232, 228, 218, .45); border-radius: 20px; text-shadow: none; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
#coop-touch button.on { color: var(--ink); background: var(--signal); border-color: var(--signal); }
.is-touch #coop-map { top: calc(268px + var(--sat)); right: auto; left: var(--gl); width: 96px; height: 96px; }
.is-touch #coop-hud { top: calc(268px + var(--sat)); left: calc(var(--gl) + 104px); padding-left: 8px; }
.is-touch #coop .co-net { font-size: 10px; }
.is-touch #coop-hud .co-roster { margin-top: 4px; font-size: 13px; line-height: 1.6; }
.is-touch #coop-voice:not(.err) { display: none; }                 /* 讲话状态显示在「语音」按钮上 */
.is-touch #coop-chat { width: min(300px, 62vw); }
/* 打字时输入框挪到屏幕最上面：手机键盘从下面弹出来，放在下面会被挡住 */
.is-touch #coop-chat.open #coop-chat-input { position: fixed; z-index: 60; top: calc(8px + var(--sat)); left: var(--gl); width: calc(100% - var(--gl) - var(--gr) - 76px); margin: 0; font-size: 16px; }
.is-touch #coop-chat.open #coop-chat-send { display: block; position: fixed; z-index: 60; top: calc(8px + var(--sat)); right: var(--gr); width: 68px; height: 39px; font: 700 14px var(--f-label); letter-spacing: .1em; color: var(--ink); background: var(--signal); border: 0; border-radius: 0; pointer-events: auto; text-shadow: none; }
@media (max-height: 520px) {                                        /* 横屏：屏幕矮，整块上移，聊天记录放到底部中间 */
  .is-touch #coop-map, .is-touch #coop-hud { top: calc(180px + var(--sat)); }
  #coop-touch { top: calc(284px + var(--sat)); }
  .is-touch #coop-chat { left: calc(var(--gl) + 250px); bottom: calc(22px + var(--sab)); width: min(300px, 36vw); }
  .is-touch #coop-chat-log div:nth-last-child(n+4) { display: none; }
}

/* 触屏设备没有键盘快捷键的问题，不显示全屏锁键的开关 */
@media (pointer: coarse) {
  #coop-lobby label.co-check { display: none; }
}

/* ---- 标题页重新排版 ----
   原作的标题页是给单人闯关做的（大标题 + 任务简介 + 一排大按钮）。联机版在大屏上改成：
   左边是联机大厅（名字、角色、玩法、房间），右上是选中角色的大图，右下是缩小了的原作标题和按钮。
   这里只是用样式覆盖原作的排版，原作文件不动。 */
/* 任务简介是闯关专用的文字，换成两种玩法通用的一句 */
body.coop-on .menu .m-title .m-premise { font-size: 0 !important; }
body.coop-on .menu .m-title .m-premise::after { content: '联机射击 · 合作闯关 / 团队对战'; font-size: 14px; letter-spacing: .14em; }
#coop .co-joined-acts { display: flex; gap: 8px; }
#coop-lobby #coop-start { flex: 2; color: var(--ink); background: var(--signal); border: 0; }
#coop-lobby #coop-start:hover { background: var(--signal-hot); }
#coop-lobby #coop-leave { flex: 1; }
#coop-lobby input:disabled { color: var(--bone-dim); border-style: dashed; }

@media (min-width: 721px) and (min-height: 521px) {
  /* 左：联机大厅，分「我」和「房间」两栏 */
  #coop-lobby { left: var(--gl); right: auto; top: calc(58px + var(--sat)); bottom: calc(58px + var(--sab)); width: min(900px, 66vw); display: grid; grid-template-columns: 228px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); column-gap: 18px; padding: 14px 16px; }
  #coop .co-col { min-height: 0; overflow-y: auto; scrollbar-width: thin; }
  #coop .co-col-me { padding-right: 16px; border-right: 1px solid var(--line); }
  #coop .co-col-me .co-name { margin-top: 0; }
  #coop .co-col-rooms { display: flex; flex-direction: column; }
  #coop-join { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  #coop-join > .co-sub-gap:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
  #coop-pane-join { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  /* 房间排成多列，一屏能看到几十间 */
  #coop-rooms { flex: 1; min-height: 70px; max-height: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(166px, 1fr)); gap: 5px; align-content: start; padding-right: 2px; }
  #coop-lobby .co-room { margin: 0; }
  #coop .co-rooms-empty { grid-column: 1 / -1; }
  #coop-pane-create { max-width: 360px; }
  #coop-joined { max-width: 460px; }
  /* 右上：选中角色的大图 */
  #coop-look-preview { right: var(--gr); top: calc(58px + var(--sat)); width: min(236px, 20vw, 30vh); }
  /* 右下：原作的标题和按钮，缩小 */
  body.coop-on .menu .m-title .m-title-main { position: absolute !important; left: auto !important; top: auto !important; right: var(--gr); bottom: calc(60px + var(--sab)); width: calc(100vw - min(900px, 66vw) - var(--gl) - var(--gr) - 22px); max-width: 430px; margin: 0 !important; padding: 0 !important; }
  body.coop-on .menu .m-title .m-eyebrow { font-size: 11px; margin-bottom: 4px; }
  body.coop-on .menu .m-title .m-eyebrow .m-tag { font-size: 12px; }
  body.coop-on .menu .m-title .m-word { font-size: clamp(38px, 4.6vw, 68px) !important; line-height: 1.05 !important; margin: 0 !important; }
  body.coop-on .menu .m-title .m-subtitle { font-size: clamp(15px, 1.7vw, 24px) !important; }
  body.coop-on .menu .m-title .m-premise { margin: 8px 0 12px !important; max-width: none !important; }
  body.coop-on .menu .m-title .m-premise::after { font-size: 12px; }
  body.coop-on .menu .m-title .m-actions { display: flex; flex-wrap: wrap; gap: 6px !important; margin: 0 !important; }
  body.coop-on .menu .m-title .m-actions .btn { min-width: 0 !important; min-height: 0 !important; height: auto !important; padding: 7px 12px !important; font-size: 12px !important; letter-spacing: .1em !important; }
  body.coop-on .menu .m-title .m-actions .btn.primary { padding: 7px 16px !important; font-size: 13px !important; }
  body.coop-on .menu .m-title .m-note { margin-top: 8px !important; font-size: 10px !important; }
  /* 标题页上的聊天记录挪到最下面一条，不压大厅 */
  #coop-chat.title { left: var(--gl); bottom: calc(6px + var(--sab)); width: min(900px, 66vw); }
  #coop-chat.title:not(.open) #coop-chat-log div:nth-last-child(n+3) { display: none; }
}
@media (min-width: 721px) and (min-height: 521px) and (max-height: 700px) {
  #coop-look-preview { display: none; }               /* 屏幕矮时右边放不下大图，只留缩略图 */
}
@media (min-width: 721px) and (max-width: 980px) and (min-height: 521px) {
  #coop-lobby { grid-template-columns: 200px minmax(0, 1fr); width: min(900px, 68vw); }
  #coop-look-preview { display: none; }
}

/* ---- 身份：临时用户 / 游戏账号 ---- */
#coop-lobby .co-ident-tabs { margin: 0 0 10px; }
#coop-lobby .co-ident-tabs button:disabled { opacity: .35; cursor: default; }
#coop .co-ident-note { margin: 6px 0 0; font-size: 11px; line-height: 1.6; letter-spacing: .04em; color: var(--bone-dim); }
#coop-ident-guest .co-name, #coop-acct-form label:first-child { margin-top: 0; }
#coop .co-acct-acts { display: flex; gap: 6px; margin-top: 10px; }
#coop-lobby .co-acct-acts button { flex: 1; margin: 0; padding: 8px 0; font-size: 13px; letter-spacing: .14em; }
#coop-lobby #coop-login { color: var(--ink); background: var(--signal); border: 0; }
#coop-lobby #coop-login:hover { background: var(--signal-hot); }
#coop-lobby #coop-register { color: var(--bone); background: transparent; border: 1px solid var(--line); }
#coop-lobby #coop-register:hover { border-color: var(--bone-dim); }
/* 个人资料：等级、经验条、战绩、徽章、最近的比赛 */
#coop .co-pf-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
#coop .co-pf-head b { font: 700 17px var(--f-label); letter-spacing: .04em; color: var(--bone); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#coop .co-pf-head span { flex: none; font: 700 12px var(--f-label); letter-spacing: .08em; color: var(--signal); }
#coop .co-pf-xp { height: 4px; margin-top: 7px; background: rgba(232, 228, 218, .12); }
#coop .co-pf-xp i { display: block; height: 100%; background: var(--signal); }
#coop .co-pf-xpnote { margin-top: 3px; font: 500 10px var(--f-mono); color: var(--bone-dim); }
#coop .co-pf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin-top: 9px; }
#coop .co-pf-grid div { padding: 5px 4px; text-align: center; background: rgba(232, 228, 218, .05); }
#coop .co-pf-grid b { display: block; font: 700 15px var(--f-mono); color: var(--bone); }
#coop .co-pf-grid span { display: block; margin-top: 1px; font-size: 10px; letter-spacing: .06em; color: var(--bone-dim); }
#coop .co-pf-sub { margin: 10px 0 5px; }
#coop .co-pf-badges { display: flex; flex-wrap: wrap; gap: 4px; }
#coop .co-pf-badges i { padding: 2px 6px; font: 600 11px var(--f-label); font-style: normal; letter-spacing: .04em; color: var(--bone-dim); border: 1px dashed var(--line); opacity: .55; cursor: help; }
#coop .co-pf-badges i.on { color: var(--ink); background: var(--signal); border: 1px solid var(--signal); opacity: 1; }
#coop .co-pf-hist div { display: flex; align-items: baseline; gap: 6px; padding: 2px 0; font-size: 11px; color: var(--bone-dim); }
#coop .co-pf-hist span { flex: none; font-family: var(--f-mono); font-size: 10px; }
#coop .co-pf-hist b { flex: 1; font-weight: 600; color: var(--bone); }
#coop .co-pf-hist .win b { color: #9be36d; }
#coop .co-pf-hist .lose b { color: var(--alarm); }
#coop .co-pf-hist em { flex: none; font-style: normal; font-family: var(--f-mono); }
#coop-lobby .co-pf-out { margin-top: 10px; padding: 6px; font-size: 12px; letter-spacing: .1em; color: var(--bone-dim); background: transparent; border: 1px solid var(--line); }
#coop-lobby .co-pf-out:hover:not(:disabled) { color: var(--bone); border-color: var(--bone-dim); }
#coop-lobby .co-pf-out:disabled { opacity: .35; cursor: default; }
/* 名单里的身份标记：注册用户显示等级，临时用户标「临时」 */
#coop .co-roster em.lv, #coop .co-team em.lv, #coop .co-res-row em.lv { color: var(--signal); }
#coop .co-roster em.guest, #coop .co-team em.guest, #coop .co-res-row em.guest { color: var(--bone-dim); opacity: .8; }
#coop .co-res-row em { margin-left: 7px; font-style: normal; font-size: 11px; letter-spacing: .04em; }

/* ---- 团队对战的选队板：左红右蓝，中间 VS ---- */
#coop-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 0; margin-top: 6px; }
#coop .co-team { display: flex; flex-direction: column; min-width: 0; padding: 0 0 10px; background: rgba(232, 228, 218, .04); border: 1px solid var(--line); }
#coop .co-team.t0 { border-top: 3px solid #ff6a55; background: linear-gradient(180deg, rgba(255, 106, 85, .16), rgba(255, 106, 85, .03) 46%); }
#coop .co-team.t1 { border-top: 3px solid #55a8ff; background: linear-gradient(180deg, rgba(85, 168, 255, .16), rgba(85, 168, 255, .03) 46%); }
#coop .co-team-head { display: flex; align-items: baseline; justify-content: space-between; padding: 9px 12px 7px; }
#coop .co-team-head b { font: 800 20px var(--f-display); letter-spacing: .22em; }
#coop .co-team.t0 .co-team-head b { color: #ff6a55; }
#coop .co-team.t1 .co-team-head b { color: #55a8ff; }
#coop .co-team-head span { font: 600 12px var(--f-mono); color: var(--bone-dim); }
#coop .co-team ul { flex: 1; list-style: none; margin: 0; padding: 0 8px; }
#coop .co-team li { display: flex; align-items: center; gap: 6px; height: 30px; margin-top: 4px; padding: 0 8px; font-size: 14px; color: var(--bone); background: rgba(11, 13, 15, .45); border-left: 2px solid transparent; white-space: nowrap; overflow: hidden; }
#coop .co-team li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
#coop .co-team li em { flex: none; font-style: normal; font-size: 11px; letter-spacing: .04em; color: var(--bone-dim); }
#coop .co-team li em.talk { color: var(--signal); }
#coop .co-team.t0 li.me { border-left-color: #ff6a55; background: rgba(255, 106, 85, .2); }
#coop .co-team.t1 li.me { border-left-color: #55a8ff; background: rgba(85, 168, 255, .2); }
#coop .co-team li.empty { justify-content: center; font-size: 11px; letter-spacing: .2em; color: var(--bone-dim); background: transparent; border: 1px dashed var(--line); opacity: .5; }
#coop-lobby .co-team button { width: auto; margin: 10px 8px 0; padding: 8px 0; font: 700 13px var(--f-label); letter-spacing: .16em; border: 0; border-radius: 0; cursor: pointer; }
#coop-lobby .co-team.t0 button { color: #fff; background: #c8463a; }
#coop-lobby .co-team.t1 button { color: #fff; background: #2f78c8; }
#coop-lobby .co-team button:hover:not(:disabled) { filter: brightness(1.15); }
#coop-lobby .co-team button:disabled { color: var(--bone-dim); background: transparent; box-shadow: inset 0 0 0 1px var(--line); cursor: default; }
#coop-lobby .co-team button.here { color: var(--bone); }
#coop .co-vs { display: flex; align-items: center; padding: 0 10px; font: 800 22px var(--f-display); letter-spacing: .08em; color: var(--bone-dim); }
@media (min-width: 721px) and (min-height: 521px) {
  #coop-joined { max-width: 620px; }
}
@media (max-width: 720px), (max-height: 520px) {
  #coop .co-vs { padding: 0 5px; font-size: 15px; }
  #coop .co-team-head { padding: 7px 8px 5px; }
  #coop .co-team-head b { font-size: 16px; letter-spacing: .14em; }
  #coop .co-team ul { padding: 0 5px; }
  #coop .co-team li { padding: 0 6px; font-size: 13px; }
}

/* 标题页底部那行说明文字不显示 */
body.coop-on .menu .m-title .m-note { display: none !important; }

/* ---- 结算：领奖台（前三名）和奖牌，让大家一眼看到谁打得最好 ---- */
#coop-result { width: min(640px, 94vw); }
#coop-result-top { display: flex; align-items: flex-end; justify-content: center; gap: 10px; margin-top: 14px; }
#coop .co-pod { flex: 1; max-width: 190px; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 10px 8px 10px; background: rgba(232, 228, 218, .05); border-top: 3px solid var(--line); animation: co-rise .5s cubic-bezier(.2, .9, .2, 1) both; }
#coop .co-pod.r1 { padding-top: 16px; padding-bottom: 20px; border-top-color: #ffd76a; background: linear-gradient(180deg, rgba(255, 215, 106, .2), rgba(255, 215, 106, .03) 70%); animation-delay: .35s; }
#coop .co-pod.r2 { border-top-color: #cfd6dc; animation-delay: .2s; }
#coop .co-pod.r3 { border-top-color: #c98850; animation-delay: .05s; }
#coop .co-pod.me { box-shadow: inset 0 0 0 1px var(--signal); }
#coop .co-pod b { max-width: 100%; font: 700 16px var(--f-label); letter-spacing: .03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#coop .co-pod.r1 b { font-size: 20px; }
#coop .co-pod-rank { font: 800 12px var(--f-display); letter-spacing: .24em; margin-right: -.24em; color: var(--bone-dim); }
#coop .co-pod.r1 .co-pod-rank { font-size: 20px; color: #ffd76a; text-shadow: 0 0 16px rgba(255, 215, 106, .7); }
#coop .co-pod-kd { font: 600 12px var(--f-mono); color: var(--bone); }
#coop .co-pod em { font-style: normal; font-size: 11px; letter-spacing: .04em; }
#coop .co-pod em.lv { color: var(--signal); }
#coop .co-pod em.guest { color: var(--bone-dim); }
#coop .co-medal { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; flex: none; border-radius: 50%; font: 800 12px var(--f-mono); font-style: normal; color: #1a1408; }
#coop .co-medal.m1 { background: radial-gradient(circle at 35% 30%, #fff3c0, #ffd76a 55%, #c9962a); box-shadow: 0 0 10px rgba(255, 215, 106, .6); }
#coop .co-medal.m2 { background: radial-gradient(circle at 35% 30%, #ffffff, #cfd6dc 55%, #8f9aa3); }
#coop .co-medal.m3 { background: radial-gradient(circle at 35% 30%, #f3c79e, #c98850 55%, #8a5326); }
#coop .co-pod .co-medal { width: 30px; height: 30px; font-size: 16px; }
#coop .co-pod.r1 .co-medal { width: 40px; height: 40px; font-size: 21px; }
#coop .co-res-row .co-medal { margin-right: 6px; vertical-align: -4px; }
#coop .co-res-row em.ace { padding: 0 5px; font-weight: 800; letter-spacing: .1em; color: #1a1408; background: #ffd76a; }
#coop-result-me { margin-top: 10px; font-size: 13px; letter-spacing: .06em; color: var(--bone-dim); }
#coop-result-me:empty { display: none; }
#coop-result-me.top { font: 700 15px var(--f-label); letter-spacing: .12em; color: #ffd76a; }
@keyframes co-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 720px), (max-height: 520px) {
  #coop-result-top { gap: 6px; margin-top: 8px; }
  #coop .co-pod { padding: 6px 4px; }
  #coop .co-pod.r1 { padding-top: 8px; padding-bottom: 10px; }
  #coop .co-pod b, #coop .co-pod.r1 b { font-size: 14px; }
  #coop .co-pod-kd { font-size: 10px; }
}

/* ---- 准备 / 开始游戏 ---- */
#coop-lobby #coop-start.ready { color: var(--bone); background: transparent; box-shadow: inset 0 0 0 1px #9be36d; }
#coop-lobby #coop-vote-open { flex: 1; color: var(--bone-dim); background: transparent; border: 1px solid var(--line); }
#coop-lobby #coop-vote-open:hover { color: var(--bone); border-color: var(--bone-dim); }
#coop .co-roster em.ready, #coop .co-team em.ready { color: #9be36d; }

/* ---- 投票踢人 ---- */
#coop-vote { position: absolute; left: 50%; top: calc(66px + var(--sat)); transform: translateX(-50%); display: flex; align-items: center; gap: 12px; max-width: calc(100% - 2 * var(--gl)); padding: 8px 12px; background: var(--plate-solid); border-left: 3px solid var(--alarm); font-size: 13px; letter-spacing: .04em; pointer-events: auto; text-shadow: none; z-index: 7; }
#coop-vote-acts { display: flex; gap: 6px; flex: none; }
#coop-vote button { padding: 4px 12px; font: 700 12px var(--f-label); letter-spacing: .1em; border-radius: 0; cursor: pointer; }
#coop-vote-yes { color: var(--ink); background: var(--signal); border: 0; }
#coop-vote-no { color: var(--bone); background: transparent; border: 1px solid var(--line); }
#coop-votepick { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(320px, 86vw); max-height: 80%; overflow-y: auto; padding: 18px 20px 20px; background: var(--plate-solid); border-left: 2px solid var(--alarm); pointer-events: auto; text-shadow: none; z-index: 8; }
#coop-votepick .co-note { margin: 0 0 10px; }
#coop-votepick button { display: block; width: 100%; margin-top: 8px; padding: 10px; font: 700 14px var(--f-label); letter-spacing: .1em; color: var(--bone); background: transparent; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
#coop-votepick-list button:hover { color: var(--alarm); border-color: var(--alarm); }
#coop-votepick-close { color: var(--bone-dim) !important; }
.coop-tdm #coop-vote { top: calc(70px + var(--sat)); }

/* 通用文案那一行：原作按字号算宽度，字号被清零后会挤成竖排，这里放开宽度 */
body.coop-on .menu .m-title .m-premise { max-width: none !important; width: auto !important; }
#coop-lobby .co-pf-more { display: none; }

/* ---- 手机上的大厅：默认展开占满屏幕，顺序是 身份 → 玩法和房间 → 角色 ---- */
@media (max-width: 720px), (max-height: 520px) {
  #coop-lobby.open { display: flex; flex-direction: column; top: calc(46px + var(--sat)); bottom: calc(8px + var(--sab)); max-height: none; }
  #coop .co-col { display: contents; }
  #coop-lobby.open > .co-col > * { flex: none; }
  #coop-lobby > .co-col > .co-k { order: 0; }
  #coop-ident-tabs { order: 1; }
  #coop-ident-guest, #coop-ident-acct { order: 2; }
  #coop-join, #coop-joined { order: 3; margin-top: 12px; }
  #coop-err { order: 4; }
  #coop-lobby > .co-col-me > .co-sub-gap { order: 5; }
  #coop-looks { order: 6; }
  #coop-look-note { order: 7; }
  #coop-lobby label.co-check { order: 8; }
  #coop-join > .co-sub-gap:first-child { margin-top: 0; }
  #coop-rooms { max-height: 46vh; }
  #coop-lobby .co-room { padding: 10px 10px; }
  #coop .co-ident-note { display: none; }
  /* 资料卡在手机上收成两行，战绩和徽章点开再看 */
  #coop-lobby .co-pf-more { display: block; margin-top: 8px; padding: 6px; font-size: 12px; letter-spacing: .08em; color: var(--bone-dim); background: transparent; border: 1px solid var(--line); }
  #coop-profile:not(.open) .co-pf-grid, #coop-profile:not(.open) .co-pf-sub, #coop-profile:not(.open) .co-pf-badges, #coop-profile:not(.open) .co-pf-hist { display: none; }
  #coop-lobby-toggle { z-index: 3; }
}
@media (max-width: 720px), (max-height: 520px) {
  /* 手机上大厅盖在原作标题页上面，底色用不透明的，免得后面的字透出来 */
  #coop-lobby.open { background: #12161a; }
}
#coop-lobby label.co-music { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
@media (max-width: 720px), (max-height: 520px) {
  #coop-lobby label.co-music { order: 8; }
  #coop .co-joined-acts { gap: 6px; }
  #coop-lobby .co-joined-acts button { padding: 10px 2px; font-size: 13px; letter-spacing: .06em; }
}

/* ---- 房间里的聊天框 ---- */
#coop-chat.title { display: none !important; }          /* 在房间大厅里用下面这个聊天框，不再用左下角飘字 */
#coop-room-chat { margin-top: 10px; border: 1px solid var(--line); background: rgba(11, 13, 15, .35); }
#coop-room-chat-log { height: 132px; overflow-y: auto; padding: 6px 9px; font-size: 13px; line-height: 1.6; overscroll-behavior: contain; scrollbar-width: thin; -webkit-user-select: text; user-select: text; }
#coop-room-chat-log:empty::before { content: '还没有人说话。可以在下面打字，或者点一句常用的话。'; font-size: 12px; color: var(--bone-dim); }
#coop-room-chat-log div { overflow-wrap: anywhere; opacity: 1 !important; }
#coop-room-chat-log div.sys { font-size: 12px; color: var(--bone-dim); }
#coop-room-chat-log b { font-weight: 600; margin-right: 8px; }
#coop-room-chat-quick { display: flex; flex-wrap: wrap; gap: 5px; padding: 6px 8px 0; border-top: 1px solid var(--line); }
#coop-lobby #coop-room-chat-quick button { width: auto; margin: 0; padding: 3px 9px; font: 500 12px var(--f-label); letter-spacing: .04em; color: var(--bone-dim); background: transparent; border: 1px solid var(--line); }
#coop-lobby #coop-room-chat-quick button:hover { color: var(--bone); border-color: var(--bone-dim); }
#coop .co-room-chat-in { display: flex; gap: 6px; padding: 6px 8px 8px; }
#coop-lobby .co-room-chat-in input { flex: 1; min-width: 0; margin: 0; padding: 7px 9px; font-size: 13px; }
#coop-lobby #coop-room-chat-send { flex: none; width: auto; margin: 0; padding: 0 14px; font-size: 13px; letter-spacing: .1em; color: var(--ink); background: var(--signal); border: 0; }
#coop-lobby #coop-room-chat-send:hover { background: var(--signal-hot); }
@media (max-width: 720px), (max-height: 520px) {
  #coop-room-chat-log { height: 108px; }
  #coop-lobby .co-room-chat-in input { font-size: 16px; }
  #coop-lobby #coop-room-chat-quick button { padding: 6px 10px; font-size: 13px; }
}
@media (min-width: 721px) and (min-height: 521px) {
  /* 房间面板：聊天记录占用剩下的高度，「开始 / 准备」那排按钮始终留在面板底部看得见 */
  #coop-joined { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  #coop-joined > * { flex: none; }
  #coop-room-chat { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 96px; }
  #coop-room-chat-log { flex: 1 1 auto; height: auto; min-height: 30px; }
  #coop-room-chat-quick, #coop .co-room-chat-in { flex: none; }
}
@media (min-width: 721px) and (min-height: 521px) and (max-height: 760px) {
  #coop-joined .co-note .co-desk { display: none; }     /* 屏幕矮时省掉按键说明，把地方让给聊天 */
}

/* ---- 手机对战时别挡视线：小地图缩小，团队对战时放到左上角；名单和网速默认收起，点「战绩」再展开 ---- */
.is-touch #coop { --mt: 268px; }
@media (max-height: 520px) { .is-touch #coop { --mt: 180px; } }
.is-touch .coop-tdm #coop { --mt: 8px; }                       /* 团队对战没有任务目标，左上角是空的 */
.is-touch #coop-map { top: calc(var(--mt) + var(--sat)); left: var(--gl); right: auto; width: 84px; height: 84px; }
.is-touch #coop-touch { top: calc(var(--mt) + 92px + var(--sat)); gap: 6px; }
.is-touch #coop-touch button { min-width: 0; height: 34px; padding: 0 11px; font-size: 12px; letter-spacing: .06em; }
.is-touch #coop-hud { display: none; }
.is-touch #coop.board-open #coop-hud { display: block; top: calc(var(--mt) + 134px + var(--sat)); left: var(--gl); padding: 8px 12px 9px; background: rgba(11, 13, 15, .8); border-left: 2px solid var(--signal); text-shadow: none; }
/* 小地图边长：团队对战时再小一点，免得碰到顶部的比分条 */
.is-touch #coop { --ms: 84px; }
.is-touch .coop-tdm #coop { --ms: 74px; }
.is-touch #coop-map { width: var(--ms); height: var(--ms); }
.is-touch #coop-touch { top: calc(var(--mt) + var(--ms) + 8px + var(--sat)); }
.is-touch #coop.board-open #coop-hud { top: calc(var(--mt) + var(--ms) + 50px + var(--sat)); }

/* ---- 弹药补给的提示（走到弹药箱旁边才出现；手机上直接点它）---- */
#coop-hint { position: absolute; left: 50%; top: 62%; transform: translateX(-50%); padding: 8px 16px; font: 700 14px var(--f-label); letter-spacing: .12em; color: var(--ink); background: var(--signal); border: 0; border-radius: 0; pointer-events: auto; text-shadow: none; cursor: pointer; }
/* ---- 选队板：每队最多 16 人，名单多了在各自的栏里滚动 ---- */
#coop .co-team ul { max-height: 190px; overflow-y: auto; scrollbar-width: thin; }

/* ---- 房间列表里的难度标记（强化/硬核才显示）---- */
#coop .co-room i.co-room-diff { flex: none; margin-left: 8px; padding: 1px 6px; font: 600 10px var(--f-label); font-style: normal; letter-spacing: .1em; color: var(--signal); box-shadow: inset 0 0 0 1px currentColor; }

/* ---- 主色选择：三颗色点，点一下整站换色 ---- */
#coop .co-accent { display: flex; align-items: center; gap: 8px; margin: 12px 0 2px; }
#coop .co-accent-label { font: 600 11px var(--f-label); letter-spacing: .16em; color: var(--bone-dim); }
#coop .co-accent button { width: 17px; height: 17px; flex: none; margin: 0; padding: 0; border: 0; border-radius: 50%; cursor: pointer; }
#coop .co-accent button[data-accent="amber"] { background: #ffb347; }
#coop .co-accent button[data-accent="ice"] { background: #6fd7ff; }
#coop .co-accent button[data-accent="moss"] { background: #9be36d; }
#coop .co-accent button.on { box-shadow: 0 0 0 2px var(--ink), 0 0 0 3px var(--bone); }
#coop .co-accent-note { font: 500 10px var(--f-label); letter-spacing: .06em; color: var(--bone-faint); }

/* ---- 资料卡里的今日任务一行 ---- */
#coop .co-pf-tasks { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 7px 10px; font: 600 12px var(--f-label); letter-spacing: .06em; color: var(--bone); background: rgba(111, 215, 255, .1); background: color-mix(in srgb, var(--signal) 11%, transparent); box-shadow: inset 2px 0 0 var(--signal); }
#coop .co-pf-tasks a { margin-left: auto; font-size: 11px; letter-spacing: .1em; color: var(--signal); text-decoration: none; border: 0; }
@media (max-width: 720px), (max-height: 520px) { #coop .co-team ul { max-height: 150px; } }
