/* 团队状态：浮在页面底部中间的一颗胶囊，点成员头像从上面展开详情 */
.crew-team-dock{position:fixed;z-index:4;bottom:16px;left:232px;right:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 16px;pointer-events:none;font-size:12.5px;color:var(--ink)}
.crew-team-dock>*{pointer-events:auto}
.crew-dock-bar{display:flex;align-items:center;gap:6px;max-width:100%;height:46px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:var(--shadow-2)}
.crew-dock-members{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}
.crew-dock-member{display:flex;align-items:center;gap:7px;height:34px;padding:0 12px 0 6px;border:0;border-radius:999px;background:transparent;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap}
.crew-dock-member:hover,.crew-dock-member[aria-expanded=true]{background:var(--surface-2)}
.crew-dock-name{font-weight:600}
/* 平时只有头像和名字，状态靠头像表情；要人处理或出错时才把状态写出来 */
.crew-dock-state{display:none;font-size:12px}
.crew-dock-member[data-state=waiting_approval] .crew-dock-state,.crew-dock-member[data-state=waiting_input] .crew-dock-state{display:inline;color:var(--attn);font-weight:550}
.crew-dock-member[data-state=failed] .crew-dock-state{display:inline;color:var(--block)}
.crew-dock-summary{display:flex;align-items:center;gap:8px;padding:0 10px 0 12px;border-left:1px solid var(--rule);height:22px;color:var(--ink-3);white-space:nowrap}
.crew-dock-track{width:56px;height:4px;border-radius:2px;background:var(--rule);overflow:hidden}
.crew-dock-track span{display:block;height:100%;background:var(--done);border-radius:2px}
.crew-dock-link{display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:999px;background:var(--pri);color:var(--pri-ink);font-weight:600;flex:none}
.crew-dock-link:hover{background:color-mix(in srgb,var(--pri) 86%,var(--ground))}

.crew-dock-panel{width:min(680px,100%);max-height:min(560px,64vh);overflow:auto;padding:20px 22px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-2)}
.crew-dock-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.crew-dock-heading h3{margin:0;font-size:15px;font-weight:650}
.crew-dock-detail-status{margin:4px 0 12px;color:var(--ink-2);overflow-wrap:anywhere}
.crew-dock-task,.crew-dock-approval{padding:14px;border-radius:12px;background:var(--surface-2);margin:10px 0}
.crew-dock-task strong,.crew-dock-approval strong{font-size:13.5px}
.crew-dock-approval{background:color-mix(in srgb,var(--attn) 9%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--attn) 30%,transparent)}
.crew-dock-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11.5px/1.7 var(--mono);background:var(--ground);padding:10px 12px;border-radius:9px;max-height:210px;overflow:auto;margin:8px 0}
.crew-dock-panel p{line-height:1.65;overflow-wrap:anywhere;margin:6px 0}
.crew-dock-records{max-height:260px;overflow:auto}
.crew-dock-form label{display:block;font-size:12.5px;color:var(--ink-2)}
.crew-dock-form textarea{display:block;box-sizing:border-box;width:100%;margin:7px 0;min-height:64px}
.crew-dock-controls{display:flex;gap:8px;justify-content:flex-end}
.crew-dock-notice{color:var(--ink-3);font-size:12px}
.crew-dock-approval button{margin:8px 6px 0 0}
.crew-dock-inputs label{display:block;margin:10px 0;line-height:1.7}
.crew-dock-inputs input,.crew-dock-inputs select{display:block;width:100%;margin-top:5px}
.crew-team-dock[hidden],.crew-team-dock [hidden]{display:none!important}
body.crew-has-team-dock .main{padding-bottom:110px}
@media(max-width:820px){.crew-team-dock{left:0;bottom:10px;padding:0 10px}.crew-dock-summary{display:none}.crew-dock-member{padding:0 8px 0 6px}}
