/* ============================================================
   团队大脑 · 公共样式（外壳 + brain.js 公共组件）
   类名统一 ds-bn- 前缀；只用 design-system.css 的设计令牌（var(--xxx)），深色模式自动跟随。
   各子页自己的样式在 css/brain_<子页>.css（ds-bn-<子页>- 前缀），不要往这里塞。
   ============================================================ */

.ds-bn-shell { display: flex; flex-direction: column; gap: .9em; min-width: 0; }
.ds-bn-top { display: flex; align-items: center; gap: .8em; }
.ds-bn-title { font-size: 18px; font-weight: 700; color: var(--text); white-space: nowrap; }
.ds-bn-top-acts { margin-left: auto; display: flex; align-items: center; gap: .6em; }
.ds-bn-body { min-width: 0; }
.ds-bn-ai-warn {
  background: var(--warning-bg); color: var(--warning); border-radius: var(--radius-sm);
  padding: .5em .9em; font-size: 12.5px;
}

/* 通用布局小件 */
.ds-bn-row { display: flex; align-items: center; gap: .6em; flex-wrap: wrap; }
.ds-bn-col { display: flex; flex-direction: column; gap: .5em; }
.ds-bn-mb { margin-bottom: .8em; }
.ds-bn-mt { margin-top: .8em; }
.ds-bn-w100 { width: 100%; box-sizing: border-box; }
.ds-bn-pre { white-space: pre-wrap; word-break: break-word; }
.ds-bn-muted { color: var(--muted); font-size: 12.5px; }
.ds-bn-split { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1em; align-items: start; }
.ds-bn-split > * { min-width: 0; }
@media (max-width: 900px) { .ds-bn-split { grid-template-columns: minmax(0, 1fr); } }

/* 弹窗尺寸 */
.ds-bn-modal-sm { width: min(420px, 94vw); }
.ds-bn-modal-md { width: min(720px, 94vw); }
.ds-bn-modal-lg { width: min(1000px, 96vw); }
.ds-bn-modal-xl { width: min(1300px, 97vw); }
.ds-bn-confirm { padding: .4em 0 1em; line-height: 1.7; white-space: pre-wrap; }
.ds-bn-help { line-height: 1.9; font-size: 13.5px; color: var(--text-2); }
.ds-bn-help b { color: var(--text); }
.ds-bn-help ul, .ds-bn-help ol { padding-left: 1.3em; margin: .3em 0; }

/* 铃铛 */
.ds-bn-bell {
  position: relative; border: 1px solid var(--border); background: var(--card-bg);
  border-radius: 999px; width: 34px; height: 34px; cursor: pointer; font-size: 15px;
}
.ds-bn-bell:hover { background: var(--hover); }
.ds-bn-bell-n {
  position: absolute; top: -4px; right: -6px; min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 999px; background: var(--accent); color: var(--on-accent);
  font-size: 10.5px; line-height: 16px; text-align: center;
}
.ds-bn-notice { padding: .65em .8em; border-radius: var(--radius-sm); cursor: pointer; border-bottom: 1px solid var(--border-2); }
.ds-bn-notice:hover { background: var(--hover); }
.ds-bn-notice.unread .ds-bn-notice-title::before {
  content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); margin-right: .45em; vertical-align: middle;
}
.ds-bn-notice-title { font-weight: 600; color: var(--text); }
.ds-bn-notice-body { color: var(--text-2); font-size: 12.5px; margin-top: .2em; white-space: pre-wrap; }
.ds-bn-notice-time { font-size: 11.5px; margin-top: .2em; }

/* 选人器 */
.ds-bn-pick-list { max-height: 52vh; overflow: auto; margin-top: .6em; }
.ds-bn-pick-sec { font-size: 11.5px; color: var(--muted); font-weight: 600; margin: .8em 0 .3em; }
.ds-bn-pick-row {
  display: grid; grid-template-columns: 20px 28px auto 1fr; align-items: center; gap: .5em;
  padding: .35em .4em; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap;
}
.ds-bn-pick-row:hover { background: var(--hover); }
.ds-bn-pick-row .ds-text-muted { overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.ds-bn-pick-batches, .ds-bn-pick-chips { display: flex; flex-wrap: wrap; gap: .35em; }
.ds-bn-pick-chips:not(:empty) { margin-top: .6em; }
.ds-bn-chip {
  display: inline-flex; align-items: center; gap: .3em; white-space: nowrap;
  border: 1px solid var(--border); background: var(--card-bg); color: var(--text-2);
  border-radius: 999px; padding: .2em .7em; font-size: 12px; cursor: pointer;
}
.ds-bn-chip.on { border-color: var(--primary); background: var(--info-bg); color: var(--primary); }
.ds-bn-avatar {
  display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  border-radius: 50%; background: var(--info-bg); color: var(--info); font-size: 10.5px; font-weight: 600;
  white-space: nowrap; overflow: hidden;
}

/* 点评区 */
.ds-bn-cmts { display: flex; flex-direction: column; gap: .5em; }
.ds-bn-cmt { padding: .5em .7em; border-radius: var(--radius-sm); background: var(--hover); }
.ds-bn-cmt.kid { margin-left: 1.6em; background: transparent; border-left: 2px solid var(--border); border-radius: 0; }
.ds-bn-cmt.resolved { opacity: .6; }
.ds-bn-cmt-head { display: flex; align-items: center; gap: .6em; font-size: 12.5px; }
.ds-bn-cmt-acts { margin-left: auto; display: flex; gap: .6em; }
.ds-bn-cmt-body { margin-top: .25em; white-space: pre-wrap; word-break: break-word; color: var(--text); }
.ds-bn-cmt-empty { font-size: 12.5px; padding: .3em 0; }
.ds-bn-cmt-ta { min-height: 56px; }
.ds-bn-cmt-bar { font-size: 12px; color: var(--muted); }

/* Markdown 渲染（AI 回答、点评等） */
.ds-bn-md { line-height: 1.75; word-break: break-word; }
.ds-bn-md p { margin: .35em 0; }
.ds-bn-md ul, .ds-bn-md ol { padding-left: 1.4em; margin: .35em 0; }
.ds-bn-md pre { background: var(--hover); padding: .6em .8em; border-radius: var(--radius-sm); overflow-x: auto; }
.ds-bn-md code { background: var(--hover); padding: 0 .3em; border-radius: 4px; font-size: .92em; }
.ds-bn-md table { border-collapse: collapse; margin: .5em 0; display: block; overflow-x: auto; }
.ds-bn-md th, .ds-bn-md td { border: 1px solid var(--border); padding: .3em .6em; }
.ds-bn-md blockquote { border-left: 3px solid var(--border); margin: .4em 0; padding-left: .8em; color: var(--text-2); }
.ds-bn-md img { max-width: 100%; }

/* design-system 里 .ds-btn / .ds-card 等写了 display，会盖掉 hidden 属性（协作表截图发现）。团队大脑范围内统一兜住 */
.ds-bn-shell [hidden], .ds-modal-overlay [hidden] { display: none !important; }
