/* ============================================
 * 迭代 5 新组件样式
 * ============================================ */

/* --- PR 详情页 --- */
.pr-detail-view { 
  padding: 0; 
}
.pr-detail-header { 
  padding: 20px; border-bottom: 1px solid var(--border, #e5e7eb); background: var(--bg-nav, #f8f9fa); 
}
.pr-detail-title { 
  margin: 8px 0 12px; font-size: 20px; font-weight: 600; 
}
.pr-number { 
  color: var(--text-muted, #999); font-weight: 400; 
}
.pr-detail-meta { 
  display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--text-muted, #888); 
}
.pr-meta-item { 
  display: inline-flex; align-items: center; gap: 4px; 
}
.pr-state-badge { 
  padding: 3px 12px; border-radius: 14px; font-size: 12px; font-weight: 600; 
}
.pr-state-badge.draft { 
  background: #fff3cd; color: #856404; 
}
.pr-state-badge.merged { 
  background: #8250df20; color: #8250df; 
}
.pr-state-badge.closed { 
  background: #dc354520; color: #dc3545; 
}
.pr-state-badge.is-draft { 
  opacity: .7; 
}
.pr-branches { 
  margin-top: 12px; padding: 10px 14px; background: var(--bg-card, #fff); border: 1px solid var(--border, #e5e7eb); border-radius: 8px; 
}
.pr-branch-row { 
  display: flex; align-items: center; gap: 6px; font-size: 13px; 
}
.pr-branch-name { 
  font-family: monospace; font-weight: 600; 
}
.pr-branch-name.source { 
  color: #8250df; 
}
.pr-branch-name.target { 
  color: #1a7f37; 
}
.pr-labels { 
  display: inline-flex; gap: 4px; 
}
.pr-label-chip { 
  padding: 2px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; 
}
.pr-merge-bar { 
  display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding: 12px 16px; background: #f0fdf4; border: 1px solid #86efac; border-radius: 8px; 
}
.pr-mergeable { 
  font-size: 13px; font-weight: 600; 
}
.pr-mergeable.can-merge { 
  color: #16a34a; 
}
.pr-mergeable.has-conflict { 
  color: #dc2626; 
}
.pr-merged-bar { 
  margin-top: 12px; padding: 12px 16px; background: #faf5ff; border: 1px solid #d8b4fe; border-radius: 8px; font-size: 13px; color: #7c3aed; 
}
.btn-merge-pr { 
  padding: 6px 18px; border: none; border-radius: 6px; background: #8250df; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; transition: all .2s; 
}
.btn-merge-pr:hover { 
  background: #6b40c9; 
}
.pr-back-btn { 
  background: none; border: none; color: var(--accent, #0071E3); cursor: pointer; font-size: 13px; padding: 0; margin-bottom: 8px; 
}
.pr-back-btn:hover { 
  text-decoration: underline; 
}

/* PR 内部标签页 */
.pr-detail-tabs { 
  display: flex; border-bottom: 1px solid var(--border, #e5e7eb); padding: 0 20px; background: var(--bg-card, #fff); 
}
.pr-detail-tab { 
  padding: 10px 16px; border: none; border-bottom: 2px solid transparent; background: none; cursor: pointer; font-size: 13px; color: var(--text-muted, #888); transition: all .2s; 
}
.pr-detail-tab:hover { 
  color: var(--text, #333); 
}
.pr-detail-tab.active { 
  color: var(--accent, #0071E3); border-bottom-color: var(--accent, #0071E3); font-weight: 600; 
}
.pr-detail-content { 
  padding: 0; 
}

/* PR 讨论 */
.pr-conversation-section { 
  padding: 20px; 
}
.pr-body-card { 
  border: 1px solid var(--border, #e5e7eb); border-radius: 8px; overflow: hidden; margin-bottom: 16px; 
}
.pr-body-author { 
  padding: 8px 16px; background: var(--bg-nav, #f6f8fa); font-size: 13px; font-weight: 600; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.pr-body-content { 
  padding: 16px; font-size: 14px; line-height: 1.7; 
}
.pr-comment-card { 
  border: 1px solid var(--border, #e5e7eb); border-radius: 8px; margin-bottom: 12px; overflow: hidden; 
}
.pr-comment-header { 
  display: flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--bg-nav, #f6f8fa); font-size: 12px; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.pr-comment-avatar { 
  width: 24px; height: 24px; border-radius: 50%; 
}
.pr-comment-author { 
  font-weight: 600; 
}
.pr-comment-time { 
  color: var(--text-muted, #999); margin-left: auto; 
}
.pr-comment-body { 
  padding: 14px; font-size: 14px; line-height: 1.6; 
}
.pr-no-comments { 
  text-align: center; padding: 30px; color: var(--text-muted, #999); font-size: 14px; 
}

/* PR 添加评论 */
.pr-add-comment { 
  border: 1px solid var(--border, #e5e7eb); border-radius: 8px; overflow: hidden; margin-top: 16px; 
}
.pr-comment-input { 
  width: 100%; padding: 12px 16px; border: none; border-bottom: 1px solid var(--border, #e5e7eb); font-size: 14px; background: var(--bg-card, #fff); color: var(--text, #333); resize: vertical; box-sizing: border-box; 
}
.pr-comment-input:focus { 
  outline: none; 
}
.pr-comment-actions { 
  padding: 8px 14px; display: flex; justify-content: flex-end; 
}
.btn-pr-comment { 
  padding: 6px 18px; border: none; border-radius: 6px; background: var(--accent, #0071E3); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; 
}
.btn-pr-comment:hover { 
  filter: brightness(1.1); 
}

/* PR 提交列表 */
.pr-commits-list { 
  padding: 0; 
}
.pr-commit-item { 
  display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.pr-commit-item:hover { 
  background: var(--accent-bg, #f8faff); 
}
.pr-commit-sha code { 
  font-size: 12px; background: var(--code-bg, #f0f0f0); padding: 2px 6px; border-radius: 4px; 
}
.pr-commit-info { 
  flex: 1; min-width: 0; 
}
.pr-commit-msg { 
  font-size: 14px; font-weight: 500; 
}
.pr-commit-meta { 
  font-size: 11px; color: var(--text-muted, #999); margin-top: 2px; 
}

/* PR 文件变更 */
.pr-files-section { 
  padding: 0; 
}
.pr-diff-stats { 
  display: flex; gap: 12px; padding: 12px 20px; font-size: 13px; background: var(--bg-nav, #f6f8fa); border-bottom: 1px solid var(--border, #e5e7eb); 
}
.pr-diff-stat { 
  font-weight: 600; 
}
.pr-diff-stat.added { 
  color: #16a34a; 
}
.pr-diff-stat.removed { 
  color: #dc2626; 
}
.pr-file-diff { 
  border-bottom: 1px solid var(--border, #e5e7eb); 
}
.pr-file-diff-header { 
  display: flex; align-items: center; gap: 10px; padding: 10px 20px; cursor: pointer; font-size: 13px; background: var(--bg-card, #fff); transition: background .15s; 
}
.pr-file-diff-header:hover { 
  background: var(--accent-bg, #f8faff); 
}
.pr-file-toggle { 
  font-size: 11px; width: 16px; text-align: center; color: var(--text-muted, #999); 
}
.pr-file-name { 
  font-family: monospace; flex: 1; 
}
.pr-file-status { 
  padding: 1px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; 
}
.pr-file-status.added { 
  background: #16a34a20; color: #16a34a; 
}
.pr-file-status.removed { 
  background: #dc262620; color: #dc2626; 
}
.pr-file-status.modified { 
  background: #f59e0b20; color: #d97706; 
}
.pr-file-status.renamed { 
  background: #8b5cf620; color: #7c3aed; 
}
.pr-file-changes { 
  font-size: 12px; display: flex; gap: 4px; 
}
.pr-file-changes .add { 
  color: #16a34a; 
}
.pr-file-changes .del { 
  color: #dc2626; 
}
.pr-file-diff-body { 
  overflow-x: auto; 
}
.pr-diff-empty { 
  padding: 30px; text-align: center; color: var(--text-muted, #999); font-size: 13px; 
}

/* PR Diff 表格 */
.pr-diff-table { 
  width: 100%; border-collapse: collapse; font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace; font-size: 12px; line-height: 1.5; 
}
.pr-diff-table td { 
  padding: 1px 8px; vertical-align: top; 
}
.diff-hunk-header { 
  background: #e8f0fe; color: #174ea6; font-weight: 600; 
}
.diff-line-add { 
  background: #e6ffec; 
}
.diff-line-add .diff-code { 
  color: #16a34a; 
}
.diff-line-del { 
  background: #ffebe9; 
}
.diff-line-del .diff-code { 
  color: #dc2626; 
}
.diff-ln { 
  width: 40px; text-align: right; color: var(--text-muted, #ccc); user-select: none; background: var(--bg-nav, #f6f8fa); border-right: 1px solid var(--border, #e5e7eb); 
}
.diff-code { 
  white-space: pre-wrap; word-break: break-all; 
}

/* --- 提交历史 --- */
.commits-header { 
  padding: 12px 20px; border-bottom: 1px solid var(--border, #e5e7eb); background: var(--bg-nav, #f6f8fa); 
}
.commits-controls { 
  display: flex; align-items: center; gap: 12px; 
}
.commits-branch-select { 
  padding: 5px 10px; border: 1px solid var(--border, #d1d5db); border-radius: 6px; font-size: 13px; background: var(--bg-card, #fff); color: var(--text, #333); cursor: pointer; 
}
.commits-count { 
  font-size: 12px; color: var(--text-muted, #999); 
}
.commits-list { 
  padding: 0; 
}
.commit-item { 
  display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--border, #e5e7eb); cursor: pointer; transition: background .15s; 
}
.commit-item:hover { 
  background: var(--accent-bg, #f8faff); 
}
.commit-main { 
  flex: 1; min-width: 0; 
}
.commit-msg { 
  font-size: 14px; font-weight: 500; 
}
.commit-sub { 
  display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-muted, #888); margin-top: 4px; 
}
.commit-avatar { 
  width: 20px; height: 20px; border-radius: 50%; 
}
.commit-author { 
  font-weight: 500; 
}
.commit-sha code { 
  font-size: 11px; background: var(--code-bg, #f0f0f0); padding: 2px 6px; border-radius: 4px; 
}

/* 提交分页 */
.commits-pagination { 
  display: flex; justify-content: center; align-items: center; gap: 12px; padding: 16px 20px; border-top: 1px solid var(--border, #e5e7eb); 
}
.btn-page { 
  padding: 6px 14px; border: 1px solid var(--border, #d1d5db); border-radius: 6px; background: var(--bg-card, #fff); color: var(--text, #333); font-size: 13px; cursor: pointer; 
}
.btn-page:hover:not(:disabled) { 
  background: var(--accent-bg, #f0f5ff); border-color: var(--accent, #0071E3); 
}
.btn-page:disabled { 
  opacity: .4; cursor: not-allowed; 
}
.page-info { 
  font-size: 13px; color: var(--text-muted, #888); 
}

/* 提交详情 */
.commit-detail { 
  padding: 20px; 
}
.commit-detail-header { 
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px; 
}
.btn-back { 
  background: none; border: none; color: var(--accent, #0071E3); cursor: pointer; font-size: 13px; 
}
.btn-back:hover { 
  text-decoration: underline; 
}
.ext-link { 
  color: var(--text-muted, #999); text-decoration: none; 
}
.ext-link:hover { 
  color: var(--accent, #0071E3); 
}
.commit-detail-meta { 
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px; 
}
.commit-detail-avatar { 
  width: 40px; height: 40px; border-radius: 50%; 
}
.commit-detail-author { 
  font-size: 15px; 
}
.commit-detail-time { 
  font-size: 12px; color: var(--text-muted, #999); 
}
.commit-detail-stats { 
  margin-left: auto; font-size: 13px; font-weight: 600; display: flex; gap: 8px; 
}
.commit-detail-stats .add { 
  color: #16a34a; 
}
.commit-detail-stats .del { 
  color: #dc2626; 
}
.commit-detail-stats .total { 
  color: var(--text-muted, #888); font-weight: 400; 
}
.commit-detail-msg pre { 
  background: var(--code-bg, #f0f0f0); padding: 16px; border-radius: 8px; font-size: 13px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; max-height: 300px; overflow-y: auto; 
}
.commit-files-list { 
  margin-top: 12px; 
}
.commit-file-item { 
  display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-bottom: 1px solid var(--border, #e5e7eb); font-size: 13px; 
}
.commit-file-status { 
  width: 22px; height: 22px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; 
}
.commit-file-status.added { 
  background: #16a34a20; color: #16a34a; 
}
.commit-file-status.removed { 
  background: #dc262620; color: #dc2626; 
}
.commit-file-status.renamed { 
  background: #8b5cf620; color: #7c3aed; 
}
.commit-file-status.modified { 
  background: #f59e0b20; color: #d97706; 
}
.commit-file-name { 
  font-family: monospace; flex: 1; 
}
.commit-file-changes { 
  font-size: 12px; display: flex; gap: 4px; 
}
.commit-file-changes .add { 
  color: #16a34a; 
}
.commit-file-changes .del { 
  color: #dc2626; 
}

/* --- 分支管理 --- */
.branches-header { 
  display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.btn-create-branch { 
  padding: 6px 16px; border: none; border-radius: 6px; background: var(--accent, #0071E3); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; 
}
.branches-list { 
  padding: 0; 
}
.branch-item { 
  display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; border-bottom: 1px solid var(--border, #e5e7eb); transition: background .15s; 
}
.branch-item:hover { 
  background: var(--accent-bg, #f8faff); 
}
.branch-info { 
  display: flex; align-items: center; gap: 10px; 
}
.branch-text { 
  display: flex; align-items: center; gap: 8px; 
}
.branch-name { 
  font-family: monospace; font-weight: 600; font-size: 14px; 
}
.branch-badge { 
  padding: 1px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; 
}
.branch-badge.protected { 
  background: #dc262620; color: #dc2626; 
}
.branch-badge.default { 
  background: #f59e0b20; color: #d97706; 
}
.branch-actions { 
  display: flex; gap: 4px; 
}
.branch-action-btn { 
  background: none; border: 1px solid var(--border, #ddd); border-radius: 4px; padding: 4px 8px; text-decoration: none; color: var(--text, #333); cursor: pointer; font-size: 14px; 
}
.branch-action-btn:hover { 
  background: var(--accent-bg, #f0f5ff); 
}
.branch-action-btn.danger { 
  color: #dc3545; 
}
.branch-action-btn.danger:hover { 
  background: #fee; 
}

/* 通用模态框（用于创建分支、创建 Release） */
.modal-overlay { 
  position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); z-index: 99999; display: flex; align-items: center; justify-content: center; 
}
.modal-box { 
  background: var(--bg-card, #fff); border-radius: 12px; width: 90%; max-width: 520px; max-height: 85vh; overflow-y: auto; box-shadow: 0 8px 40px rgba(0,0,0,.25); 
}
.modal-header { 
  display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.modal-header h3 { 
  margin: 0; font-size: 16px; 
}
.modal-close { 
  background: none; border: none; font-size: 20px; cursor: pointer; color: var(--text-muted, #999); 
}
.modal-body { 
  padding: 20px; 
}
.modal-body label { 
  display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; margin-top: 12px; color: var(--text, #333); 
}
.modal-body label:first-child { 
  margin-top: 0; 
}
.modal-input, .modal-textarea { 
  width: 100%; padding: 8px 12px; border: 1px solid var(--border, #d1d5db); border-radius: 6px; font-size: 14px; background: var(--bg, #fff); color: var(--text, #333); box-sizing: border-box; 
}
.modal-input:focus, .modal-textarea:focus { 
  outline: none; border-color: var(--accent, #0071E3); box-shadow: 0 0 0 3px rgba(0,113,227,.1); 
}
.modal-textarea { 
  resize: vertical; min-height: 100px; 
}
.modal-footer { 
  display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--border, #e5e7eb); 
}
.btn-cancel { 
  padding: 8px 18px; border: 1px solid var(--border, #d1d5db); border-radius: 6px; background: var(--bg, #fff); color: var(--text, #333); cursor: pointer; font-size: 13px; 
}
.btn-cancel:hover { 
  background: var(--accent-bg, #f0f5ff); 
}
.btn-primary { 
  padding: 8px 18px; border: none; border-radius: 6px; background: var(--accent, #0071E3); color: #fff; cursor: pointer; font-size: 13px; font-weight: 600; 
}
.btn-primary:hover { 
  filter: brightness(1.1); 
}
.btn-primary:disabled { 
  opacity: .5; cursor: not-allowed; 
}
.modal-status { 
  margin-top: 8px; font-size: 13px; 
}
.modal-status.success { 
  color: #16a34a; font-weight: 600; 
}
.modal-status.error { 
  color: #dc2626; font-weight: 600; 
}
.modal-status.info { 
  color: var(--accent, #0071E3); 
}

/* --- Releases 管理 --- */
.releases-header { 
  display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--border, #e5e7eb); 
}
.btn-create-release { 
  padding: 6px 16px; border: none; border-radius: 6px; background: #16a34a; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; 
}
.btn-create-release:hover { 
  background: #15803d; 
}
.releases-list { 
  padding: 0; 
}
.release-item { 
  padding: 16px 20px; border-bottom: 1px solid var(--border, #e5e7eb); transition: background .15s; 
}
.release-item:hover { 
  background: var(--accent-bg, #f8faff); 
}
.release-item-header { 
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; 
}
.release-tag-area { 
  display: flex; align-items: center; gap: 8px; font-size: 15px; 
}
.release-tag-link { 
  font-family: monospace; font-weight: 700; color: var(--accent, #0071E3); text-decoration: none; 
}
.release-tag-link:hover { 
  text-decoration: underline; 
}
.release-badge { 
  padding: 1px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; 
}
.release-badge.latest { 
  background: #16a34a20; color: #16a34a; 
}
.release-badge.prerelease { 
  background: #f59e0b20; color: #d97706; 
}
.release-badge.draft { 
  background: #6b728020; color: #6b7280; 
}
.release-time { 
  font-size: 12px; color: var(--text-muted, #999); 
}
.release-name { 
  font-size: 16px; font-weight: 600; margin-bottom: 8px; 
}
.release-body { 
  font-size: 14px; line-height: 1.6; margin-bottom: 10px; padding: 12px; background: var(--code-bg, #fafafa); border-radius: 8px; border: 1px solid var(--border, #e5e7eb); 
}
.release-meta { 
  display: flex; gap: 16px; font-size: 12px; color: var(--text-muted, #999); 
}
.release-actions { 
  margin-top: 8px; display: flex; gap: 4px; 
}
.release-action-btn { 
  background: none; border: 1px solid var(--border, #ddd); border-radius: 4px; padding: 3px 8px; cursor: pointer; font-size: 14px; 
}
.release-action-btn:hover { 
  background: var(--accent-bg, #f0f5ff); border-color: var(--accent, #0071E3); 
}
.release-action-btn.danger:hover { 
  background: #fee; border-color: #dc3545; 
}

/* Tags 云 */
.tags-cloud { 
  display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0; 
}
.tag-chip { 
  display: inline-flex; padding: 3px 12px; border: 1px solid var(--border, #e5e7eb); border-radius: 16px; font-size: 12px; text-decoration: none; color: var(--text, #333); transition: all .15s; 
}
.tag-chip code { 
  background: none; padding: 0; 
}
.tag-chip:hover { 
  background: var(--accent-bg, #f0f5ff); border-color: var(--accent, #0071E3); color: var(--accent, #0071E3); 
}

/* --- Insights 数据面板 --- */
.insights-dashboard { 
  padding: 20px; 
}
.insights-stats-grid { 
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 20px; 
}
.insight-stat-card { 
  padding: 16px; background: var(--bg-nav, #f6f8fa); border: 1px solid var(--border, #e5e7eb); border-radius: 8px; text-align: center; 
}
.insight-stat-num { 
  font-size: 28px; font-weight: 700; color: var(--accent, #0071E3); 
}
.insight-stat-label { 
  font-size: 12px; color: var(--text-muted, #888); margin-top: 4px; 
}
.insights-two-col { 
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; 
}
@media (max-width: 768px) { 
  .insights-two-col { grid-template-columns: 1fr; } 
}
.insight-section { 
  padding: 16px; border: 1px solid var(--border, #e5e7eb); border-radius: 8px; 
}
.insight-section h4 { 
  margin: 0 0 12px; font-size: 15px; 
}

/* 协作者排行 */
.insight-contrib-list { 
  display: flex; flex-direction: column; gap: 6px; 
}
.insight-contrib-row { 
  display: flex; align-items: center; gap: 10px; font-size: 13px; 
}
.insight-rank { 
  width: 22px; height: 22px; border-radius: 50%; background: var(--accent-bg, #e8f0fe); color: var(--accent, #0071E3); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; 
}
.insight-avatar { 
  width: 28px; height: 28px; border-radius: 50%; 
}
.insight-contrib-name { 
  flex: 0 0 auto; width: 90px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 
}
.insight-contrib-bar-wrap { 
  flex: 1; height: 8px; background: var(--border, #e5e7eb); border-radius: 4px; overflow: hidden; 
}
.insight-contrib-bar { 
  height: 100%; background: var(--accent, #0071E3); border-radius: 4px; transition: width .5s ease; 
}
.insight-contrib-count { 
  font-size: 12px; font-weight: 600; color: var(--text-muted, #888); width: 40px; text-align: right; 
}

/* PR 状态饼图 */
.insight-pie-chart { 
  width: 120px; height: 120px; border-radius: 50%; background: conic-gradient( #16a34a 0deg calc(var(--val,0) * 3.6deg), #8250df calc(var(--val,0) * 3.6deg) calc((var(--val,0) + var(--val2,0)) * 3.6deg), #dc2626 calc((var(--val,0) + var(--val2,0)) * 3.6deg) 360deg ); margin: 0 auto 12px; 
}
.insight-pie-legend { 
  display: flex; gap: 16px; justify-content: center; font-size: 12px; 
}
.legend-open { 
  color: #16a34a; font-weight: 600; 
}
.legend-merged { 
  color: #8250df; font-weight: 600; 
}
.legend-closed { 
  color: #dc2626; font-weight: 600; 
}

/* 标签分布 */
.insight-labels-cloud { 
  display: flex; flex-wrap: wrap; gap: 6px; 
}
.insight-label-chip { 
  padding: 3px 10px; border-radius: 12px; font-size: 12px; background: var(--accent-bg, #e8f0fe); 
}
.insight-label-count { 
  font-weight: 700; color: var(--accent, #0071E3); margin-left: 4px; 
}

/* 提交趋势图 */
.chart-stats { 
  display: flex; gap: 20px; font-size: 13px; color: var(--text-muted, #888); margin-bottom: 16px; 
}
.chart-bars { 
  display: flex; align-items: flex-end; gap: 4px; height: 140px; padding: 0 10px; 
}
.chart-bar-col { 
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; 
}
.chart-bar { 
  width: 80%; max-width: 40px; background: linear-gradient(to top, var(--accent, #0071E3), #60a5fa); border-radius: 4px 4px 0 0; min-height: 2px; transition: height .5s ease; 
}
.chart-bar-val { 
  font-size: 10px; color: var(--text-muted, #999); margin-bottom: 2px; 
}
.chart-bar-label { 
  font-size: 9px; color: var(--text-muted, #aaa); margin-top: 4px; writing-mode: vertical-rl; 
}
