/* ============================================================
 * business.css — 纪要中心（融合层新增视图）
 * 只做增量样式，全部选择器以 tw- 前缀命名，绝不覆盖工作台原有视觉。
 * 颜色沿用工作台的 --tm-* 设计变量，保证同一套观感。
 * ============================================================ */

.tw-tabs {
  display: flex;
  gap: 4px;
  padding: 0 28px;
  background: var(--tm-card);
  border-bottom: 1px solid var(--tm-border);
  position: sticky;
  top: 60px;
  z-index: 9;
}
.tw-tab {
  appearance: none;
  border: none;
  background: transparent;
  padding: 12px 18px 11px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--tm-text-sub);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  font-family: inherit;
}
.tw-tab:hover { color: var(--tm-blue); }
.tw-tab.active { color: var(--tm-blue); border-bottom-color: var(--tm-blue); }
.tw-tab .tw-badge {
  display: inline-block;
  min-width: 18px;
  padding: 0 5px;
  margin-left: 6px;
  height: 18px;
  line-height: 18px;
  border-radius: 9px;
  background: var(--tm-blue);
  color: #fff;
  font-size: 11px;
  text-align: center;
}
.tw-tab .tw-badge:empty { display: none; }

.tw-panel {
  padding: 18px 28px 40px;
  max-width: 1560px;
  margin: 0 auto;
}
.tw-panel[hidden] { display: none !important; }

/* ---------- 工具栏 ---------- */
.tw-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  background: var(--tm-card);
  border: 1px solid var(--tm-border);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin-bottom: 14px;
}
.tw-range {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: var(--tm-text-sub);
}
.tw-range input[type="date"] {
  border: 1px solid var(--tm-border);
  border-radius: 7px;
  padding: 6px 8px;
  font-size: 12.5px;
  color: var(--tm-text);
  background: #fff;
  font-family: inherit;
}
.tw-preset {
  border: 1px solid var(--tm-border);
  background: #fff;
  color: var(--tm-text-sub);
  border-radius: 7px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.tw-preset:hover { border-color: var(--tm-blue); color: var(--tm-blue); }
.tw-preset.active { background: var(--tm-blue-light); border-color: var(--tm-blue); color: var(--tm-blue); }

.tw-actions { display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.tw-btn {
  border: 1px solid var(--tm-border);
  background: #fff;
  color: var(--tm-text);
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, border-color .15s, opacity .15s;
}
.tw-btn:hover { border-color: var(--tm-blue); color: var(--tm-blue); }
.tw-btn.primary { background: var(--tm-blue); border-color: var(--tm-blue); color: #fff; }
.tw-btn.primary:hover { background: var(--tm-blue-hover); color: #fff; }
.tw-btn:disabled { opacity: .55; cursor: not-allowed; }
.tw-btn.ghost { background: transparent; }

/* ---------- 状态条 ---------- */
.tw-status {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--tm-text-sub);
  margin-bottom: 12px;
  min-height: 20px;
}
.tw-status.err { color: #B02A32; }
.tw-status.ok { color: var(--tm-green); }
.tw-status .tw-chip {
  display: inline-block;
  background: var(--tm-blue-light);
  color: var(--tm-blue);
  border-radius: 6px;
  padding: 1px 7px;
  margin-right: 6px;
  font-variant-numeric: tabular-nums;
}

/* ---------- 主体两栏 ---------- */
.tw-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(420px, 1.35fr);
  gap: 14px;
  align-items: start;
}
@media (max-width: 1080px) { .tw-grid { grid-template-columns: 1fr; } }

.tw-col {
  background: var(--tm-card);
  border: 1px solid var(--tm-border);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 260px;
}
.tw-colhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--tm-text);
  border-bottom: 1px solid var(--tm-border);
  background: #FAFBFE;
}
.tw-colhead .cnt { color: var(--tm-gray); font-weight: 500; font-variant-numeric: tabular-nums; }

.tw-list { max-height: 320px; overflow: auto; }
.tw-list.muted { max-height: 300px; color: var(--tm-text-sub); }

.tw-item {
  padding: 11px 14px;
  border-bottom: 1px solid #F0F3F8;
  cursor: pointer;
  transition: background .12s;
}
.tw-item:last-child { border-bottom: none; }
.tw-item:hover { background: #F7F9FE; }
.tw-item.selected { background: var(--tm-blue-light); box-shadow: inset 3px 0 0 var(--tm-blue); }
.tw-item .row1 { display: flex; align-items: center; gap: 8px; }
.tw-item .subj {
  font-size: 13px;
  font-weight: 600;
  color: var(--tm-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.tw-item .meta {
  margin-top: 4px;
  font-size: 11.5px;
  color: var(--tm-gray);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tw-item .reason { margin-top: 5px; font-size: 11.5px; color: var(--tm-text-sub); }
.tw-item .reason.partial { color: #B26B00; }
.tw-item .acts { margin-top: 8px; display: flex; gap: 6px; }
.tw-item .acts button {
  border: 1px solid var(--tm-border);
  background: #fff;
  border-radius: 6px;
  padding: 3px 9px;
  font-size: 11.5px;
  cursor: pointer;
  color: var(--tm-text-sub);
  font-family: inherit;
}
.tw-item .acts button:hover { border-color: var(--tm-blue); color: var(--tm-blue); }
.tw-item .acts button.primary { background: var(--tm-blue); color: #fff; border-color: var(--tm-blue); }

.tw-tag {
  flex: none;
  font-size: 11px;
  padding: 1px 7px;
  border-radius: 5px;
  background: #EFF2F7;
  color: var(--tm-text-sub);
}
.tw-tag.record { background: #E8F7F0; color: #05754A; }
.tw-tag.yuanbao { background: #EAF1FF; color: #1C4FD6; }
.tw-tag.none { background: #F2F3F6; color: #6B7280; }
.tw-tag.apply { background: #FFF4E0; color: #9A6200; }
.tw-tag.unknown { background: #FDF0F1; color: #B02A32; }

/* ---------- 文档区 ---------- */
.tw-dochead {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--tm-border);
  background: #FAFBFE;
}
.tw-dochead .t { font-size: 12.5px; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tw-dochead .btns { display: flex; gap: 6px; }
.tw-doc-head { font-size: 12.5px; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tw-docbody {
  padding: 16px 18px;
  overflow: auto;
  max-height: 560px;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--tm-text);
}
.tw-empty { color: var(--tm-gray); font-size: 13px; text-align: center; padding: 48px 12px; line-height: 2; }

/* markdown 渲染 */
.tw-md h1, .tw-md h2 { font-size: 17px; margin: 4px 0 10px; line-height: 1.45; }
.tw-md h3 {
  font-size: 13.5px;
  margin: 20px 0 8px;
  padding-left: 9px;
  border-left: 3px solid var(--tm-blue);
  line-height: 1.4;
}
.tw-md h4 { font-size: 13px; margin: 14px 0 6px; }
.tw-md p { margin: 6px 0; }
.tw-md strong { font-weight: 600; }
.tw-md ul { margin: 6px 0 6px 20px; }
.tw-md li { margin: 3px 0; }
.tw-md hr { border: none; border-top: 1px dashed var(--tm-border); margin: 16px 0; }
.tw-md blockquote {
  margin: 10px 0;
  padding: 8px 12px;
  background: #F7F9FE;
  border-left: 3px solid #C9D6F5;
  color: var(--tm-text-sub);
  border-radius: 0 6px 6px 0;
}
.tw-md table { border-collapse: collapse; margin: 10px 0; width: 100%; font-size: 12.5px; }
.tw-md th, .tw-md td { border: 1px solid var(--tm-border); padding: 6px 9px; text-align: left; vertical-align: top; }
.tw-md th { background: #F5F7FB; font-weight: 600; }
.tw-md code { background: #F1F3F8; border-radius: 4px; padding: 1px 5px; font-size: 12px; }
.tw-md .tw-callout { color: #8A6D1A; background: #FFF8E6; border-radius: 6px; padding: 6px 10px; }

/* ---------- 底部卡片 ---------- */
.tw-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 14px;
}
@media (max-width: 1080px) { .tw-bottom { grid-template-columns: 1fr; } }
.tw-card {
  background: var(--tm-card);
  border: 1px solid var(--tm-border);
  border-radius: var(--radius);
  padding: 13px 16px;
}
.tw-card h4 {
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 9px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tw-statrow { display: flex; gap: 18px; margin-bottom: 10px; font-size: 12px; color: var(--tm-text-sub); }
.tw-statrow b { color: var(--tm-text); font-size: 16px; font-variant-numeric: tabular-nums; }
.tw-report-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px dashed #EEF1F6;
  font-size: 12px;
}
.tw-report-item:last-child { border-bottom: none; }
.tw-report-item a { color: var(--tm-blue); cursor: pointer; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0; }
.tw-report-item a:hover { text-decoration: underline; }
.tw-report-item .sz { color: var(--tm-gray); font-variant-numeric: tabular-nums; flex: none; }

.tw-spin { display: inline-block; width: 12px; height: 12px; border: 2px solid rgba(0,82,217,.25); border-top-color: var(--tm-blue); border-radius: 50%; animation: twspin .8s linear infinite; vertical-align: -2px; margin-right: 6px; }
@keyframes twspin { to { transform: rotate(360deg); } }

.tw-loading { padding: 26px 12px; text-align: center; color: var(--tm-gray); font-size: 12.5px; }

/* 顶部连接态下的禁用提示 */
.tw-disabled-note {
  background: #FFF8E6;
  border: 1px solid #F0DFA8;
  color: #8A6D1A;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 12.5px;
  margin-bottom: 12px;
  line-height: 1.7;
}

/* ---------- 账户条（多租户） ---------- */
.tw-userbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  background: var(--tm-card);
  border: 1px solid var(--tm-border);
  border-radius: var(--radius);
  padding: 9px 14px;
  margin-bottom: 12px;
  font-size: 12.5px;
  color: var(--tm-text-sub);
}
.tw-userbar .tw-who { color: var(--tm-text); }
.tw-userbar .tw-who b { font-weight: 600; }
.tw-role {
  display: inline-block;
  margin-left: 4px;
  padding: 0 6px;
  border-radius: 5px;
  background: #EEF2FA;
  color: #40506E;
  font-size: 11px;
}
.tw-bind { display: inline-flex; align-items: center; gap: 5px; }
.tw-bind::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--tm-gray); }
.tw-bind.ok { color: #05754A; }
.tw-bind.ok::before { background: #00B368; }
.tw-bind.off { color: #B02A32; }
.tw-bind.off::before { background: #D9333F; }
.tw-mini {
  margin-left: auto;
  border: 1px solid var(--tm-blue);
  background: var(--tm-blue);
  color: #fff;
  border-radius: 7px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
}
.tw-mini.ghost { background: #fff; color: var(--tm-text-sub); border-color: var(--tm-border); margin-left: 0; }
.tw-mini.ghost:hover { border-color: var(--tm-blue); color: var(--tm-blue); }
.tw-mini:disabled { opacity: .6; cursor: wait; }

/* ---------- 成员管理 ---------- */
.tw-users { margin-bottom: 10px; }
.tw-user-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px dashed #EEF1F6;
  font-size: 12.5px;
}
.tw-user-row:last-child { border-bottom: none; }
.tw-user-row .u { color: var(--tm-text); }
.tw-user-row .u i { color: var(--tm-gray); font-style: normal; margin-left: 6px; font-size: 11.5px; }
.tw-user-row .sp { flex: 1; }
.tw-create { display: flex; gap: 8px; flex-wrap: wrap; }
.tw-create input {
  flex: 1;
  min-width: 150px;
  border: 1px solid var(--tm-border);
  border-radius: 7px;
  padding: 7px 10px;
  font-size: 12.5px;
  font-family: inherit;
}
.tw-create input:focus { outline: none; border-color: var(--tm-blue); }

/* ---------- 弹窗（改密码） ---------- */
.tw-modal-mask {
  position: fixed;
  inset: 0;
  background: rgba(16, 24, 40, .42);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 60;
  padding: 20px;
}
.tw-modal-mask.open { display: flex; }
.tw-modal {
  width: 100%;
  max-width: 380px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(10, 25, 60, .25);
}
.tw-modal-h { padding: 15px 18px; font-size: 14px; font-weight: 600; border-bottom: 1px solid var(--tm-border); }
.tw-modal-b { padding: 16px 18px; }
.tw-modal-b label { display: block; font-size: 12.5px; color: var(--tm-text-sub); margin-bottom: 12px; }
.tw-modal-b input {
  display: block;
  width: 100%;
  margin-top: 6px;
  border: 1px solid var(--tm-border);
  border-radius: 8px;
  padding: 9px 11px;
  font-size: 13px;
  font-family: inherit;
}
.tw-modal-b input:focus { outline: none; border-color: var(--tm-blue); }
.tw-modal-f { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px 16px; }
.tw-modal-msg { font-size: 12px; color: #B02A32; min-height: 18px; line-height: 1.6; }
.tw-modal-msg:empty { min-height: 0; }
.tw-modal-msg.ok { color: #05754A; }
.tw-modal-msg.err { color: #B02A32; }
.tw-modal-msg a { color: var(--tm-blue); word-break: break-all; }
.tw-modal.wide { max-width: 520px; }

/* ---------- 顶栏账号入口（常驻，不随标签页消失） ---------- */
.tw-userchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  max-width: 190px;
  padding: 0 12px;
  margin-right: 8px;
  border-radius: 999px;
  border: 1px solid var(--tm-border);
  background: var(--tm-card);
  color: var(--tm-text-sub);
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: border-color .15s, color .15s;
}
.tw-userchip:hover { border-color: var(--tm-blue); color: var(--tm-blue); }
.tw-userchip .dot { width: 8px; height: 8px; border-radius: 50%; background: #D9333F; flex: none; }
.tw-userchip.bound .dot { background: #00B368; }

/* ---------- 账号弹窗内容 ---------- */
.tw-acct {
  border: 1px solid var(--tm-border);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 12px;
  background: #FAFBFE;
}
.tw-acct-row { display: flex; gap: 10px; font-size: 12.5px; padding: 4px 0; line-height: 1.6; }
.tw-acct-row .k { width: 62px; flex: none; color: var(--tm-gray); }
.tw-acct-row .v { color: var(--tm-text); min-width: 0; word-break: break-all; }

.tw-sec {
  border: 1px solid var(--tm-border);
  border-radius: 10px;
  margin-bottom: 10px;
  overflow: hidden;
}
.tw-sec > summary {
  cursor: pointer;
  padding: 10px 12px;
  font-size: 12.5px;
  font-weight: 600;
  background: #FAFBFE;
  list-style: none;
  color: var(--tm-text);
}
.tw-sec > summary::-webkit-details-marker { display: none; }
.tw-sec > summary::before { content: "▸"; color: var(--tm-gray); margin-right: 6px; }
.tw-sec[open] > summary::before { content: "▾"; }
.tw-sec-body { padding: 12px; }
.tw-sec-body label { display: block; font-size: 12px; color: var(--tm-text-sub); margin-bottom: 10px; }
.tw-sec-body input {
  display: block;
  width: 100%;
  margin-top: 5px;
  border: 1px solid var(--tm-border);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  font-family: inherit;
}
.tw-sec-body input:focus { outline: none; border-color: var(--tm-blue); }
.tw-hint { font-weight: 400; color: var(--tm-gray); font-size: 11px; margin-left: 4px; }


