.people-shell { min-height: 100vh; padding: 16px; background: #f5f7fa; }
.people-topbar { margin-bottom: 12px; }
.people-page { min-height: calc(100vh - 108px); overflow: hidden; border: 1px solid #dde5ef; border-radius: 15px; background: #f7f9fc; box-shadow: 0 12px 34px rgba(29, 45, 78, .06); }
.people-overview { display: grid; grid-template-columns: minmax(280px, 1.7fr) repeat(4, minmax(120px, .65fr)); gap: 1px; color: white; background: #34415d; }
.people-overview-intro { min-height: 144px; padding: 28px 32px; background: #243252; }
.people-kicker, .people-side-head p, .people-section-kicker { margin: 0; color: #7fa1ff; font: 14px "DM Mono", monospace; letter-spacing: .12em; }
.people-overview-intro h1 { margin: 8px 0 9px; font-size: 31px; letter-spacing: -.04em; }
.people-overview-intro span { display: block; max-width: 580px; color: #bec9dc; font-size: 14px; line-height: 1.75; }
.people-overview-stat { display: flex; min-height: 144px; flex-direction: column; justify-content: center; padding: 20px; background: #2c3a58; }
.people-overview-stat span { color: #aebbd0; font-size: 14px; }
.people-overview-stat b { margin: 6px 0 3px; font: 500 27px "DM Mono", monospace; }
.people-overview-stat small { color: #7f91ad; font-size: 14px; }
.people-overview-stat.is-risk b { color: #ffb38c; }
.people-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); min-height: calc(100vh - 252px); }
.people-sidebar { border-right: 1px solid #e0e6ef; background: #fff; }
.people-side-head { display: flex; align-items: center; justify-content: space-between; padding: 21px 18px 13px; }
.people-side-head h2 { margin: 4px 0 0; font-size: 15px; }
.people-side-head button { width: 29px; height: 29px; padding: 0; color: #62708a; border: 1px solid #dce3ed; border-radius: 7px; background: #f7f9fc; cursor: pointer; }
.people-search { display: flex; align-items: center; gap: 8px; margin: 0 14px 14px; padding: 8px 10px; color: #8995a8; border: 1px solid #dce3ed; border-radius: 8px; background: #f7f9fc; }
.people-search input { min-width: 0; flex: 1; color: #26334d; border: 0; outline: 0; background: transparent; font-size: 14px; }
.people-tree { max-height: calc(100vh - 390px); overflow: auto; padding: 0 10px 20px; }
.people-principal { margin: 0 4px 10px; padding: 8px; border: 1px solid #d8e3ff; border-radius: 9px; background: #f1f5ff; }
.people-tree-caption { margin: 3px 5px 6px; color: #8b96a9; font: 14px "DM Mono", monospace; letter-spacing: .08em; }
.people-tree-group { margin: 0 4px 8px; border-left: 1px solid #dce3ed; }
.people-tree-group-head { display: flex; align-items: center; gap: 6px; width: 100%; padding: 6px 7px; color: #66738a; border: 0; background: transparent; cursor: pointer; text-align: left; font-size: 14px; font-weight: 700; }
.people-tree-group-head span:first-child { flex: 1; }
.people-tree-count { padding: 2px 5px; color: #73829b; border-radius: 5px; background: #edf1f6; font: 14px "DM Mono", monospace; }
.people-tree-items { display: grid; gap: 3px; padding: 2px 0 4px 10px; }
.people-tree-person { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; padding: 7px 8px; color: #33415b; border: 0; border-radius: 8px; background: transparent; cursor: pointer; text-align: left; }
.people-tree-person:hover { background: #f3f6fa; }
.people-tree-person.is-active { color: #2f62da; background: #edf3ff; }
.people-tree-avatar { width: 28px; height: 28px; display: grid; place-items: center; color: #fff; border-radius: 8px; background: #6079b8; font-size: 14px; font-weight: 700; }
.people-tree-person b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.people-tree-person small { display: block; margin-top: 1px; overflow: hidden; color: #929daf; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.people-tree-tag { padding: 2px 5px; color: #5f78b7; border-radius: 5px; background: #e9efff; font-size: 14px; }
.people-content { min-width: 0; padding: 24px; }
.people-person-card { overflow: hidden; border: 1px solid #dce4ee; border-radius: 14px; background: #fff; box-shadow: 0 10px 28px rgba(35, 54, 87, .05); }
.people-profile-head { display: flex; align-items: flex-start; gap: 15px; padding: 23px 25px; border-bottom: 1px solid #e4e9f0; }
.people-profile-avatar { width: 52px; height: 52px; display: grid; flex: 0 0 auto; place-items: center; color: white; border-radius: 14px; background: #477cff; font-size: 20px; font-weight: 700; box-shadow: inset 0 -10px 20px rgba(31, 55, 111, .16); }
.people-profile-copy { min-width: 0; flex: 1; }
.people-profile-title { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.people-profile-title h1 { margin: 0; font-size: 21px; }
.people-badge { padding: 3px 7px; color: #5270b7; border-radius: 5px; background: #edf3ff; font-size: 14px; }
.people-badge.principal { color: #8a5a17; background: #fff0cf; }
.people-profile-role { max-width: 880px; margin: 7px 0 0; color: #6e7a8e; font-size: 14px; line-height: 1.75; }
.people-profile-actions { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.people-button { display: inline-flex; align-items: center; justify-content: center; padding: 8px 10px; color: #55647d; border: 1px solid #d8e0ea; border-radius: 8px; background: white; cursor: pointer; font-size: 14px; text-decoration: none; }
.people-button:hover { color: #3568df; border-color: #91aceb; background: #f4f7ff; }
.people-button.primary { color: white; border-color: #477cff; background: #477cff; }
.people-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; padding: 17px 20px; background: #f9fafc; }
.people-metric { padding: 12px; border: 1px solid #e2e7ee; border-radius: 9px; background: #fff; }
.people-metric span { display: block; color: #8a95a7; font-size: 14px; }
.people-metric b { display: block; margin-top: 6px; color: #2d3a54; font: 500 19px "DM Mono", monospace; }
.people-metric.risk b { color: #d36a45; }
.people-body { display: grid; gap: 16px; padding: 20px; }
.people-risk-strip { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.people-risk-label { color: #78859a; font-size: 14px; font-weight: 700; }
.people-risk-chip { padding: 5px 8px; color: #715728; border: 1px solid #eadcb9; border-radius: 6px; background: #fff9e9; font-size: 14px; }
.people-risk-chip.danger { color: #a44f3b; border-color: #efd1c8; background: #fff2ee; }
.people-risk-chip.ok { color: #3b7c5a; border-color: #cae6d6; background: #eff9f3; }
.people-section { border: 1px solid #e0e6ee; border-radius: 11px; background: #fff; }
.people-section-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid #e7ebf1; }
.people-section-head h2 { margin: 3px 0 0; font-size: 14px; }
.people-workspaces { display: grid; gap: 10px; padding: 12px; }
.people-workspace { overflow: hidden; border: 1px solid #e1e7ef; border-radius: 9px; background: #fbfcfe; }
.people-workspace-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid #e6ebf1; }
.people-workspace-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--workspace-color, #477cff); }
.people-workspace-head b { flex: 1; font-size: 14px; }
.people-workspace-head span { color: #8792a4; font-size: 14px; }
.people-projects { display: grid; }
.people-project { display: grid; grid-template-columns: minmax(180px, 1fr) 76px 120px auto; align-items: center; gap: 10px; padding: 10px 12px; border-top: 1px solid #edf0f4; font-size: 14px; }
.people-project:first-child { border-top: 0; }
.people-project-name b { display: block; margin-bottom: 3px; color: #37445d; font-size: 14px; }
.people-project-name span { color: #929cad; font-size: 14px; }
.people-status { width: max-content; padding: 3px 6px; color: #5e6f8d; border-radius: 5px; background: #edf1f6; font-size: 14px; }
.people-status.running { color: #456dc6; background: #edf3ff; }
.people-status.done { color: #3c7b59; background: #eaf7ef; }
.people-project-date { color: #738198; font: 14px "DM Mono", monospace; }
.people-project-links { display: flex; gap: 4px; }
.people-project-links a { padding: 3px 6px; color: #4771d2; border: 1px solid #d8e1f7; border-radius: 5px; background: white; font-size: 14px; text-decoration: none; white-space: nowrap; }
.people-empty-project { padding: 15px; color: #9aa4b4; font-size: 14px; text-align: center; }
.people-management-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.people-management-card { min-height: 118px; padding: 14px; border: 1px solid #e1e7ef; border-radius: 9px; background: #fbfcfe; }
.people-management-card.wide { grid-column: 1 / -1; }
.people-management-card h3 { margin: 0 0 8px; color: #53617a; font-size: 14px; }
.people-management-card p { margin: 0; color: #6f7c90; font-size: 14px; line-height: 1.75; white-space: pre-wrap; }
.people-management-card .empty { color: #a1aab8; }
.people-skill-tags { display: flex; gap: 5px; flex-wrap: wrap; }
.people-skill-tags span { padding: 4px 7px; color: #596eaa; border-radius: 6px; background: #edf2ff; font-size: 14px; }
.people-one-list { display: grid; gap: 8px; padding: 12px; }
.people-one-record { display: grid; grid-template-columns: 88px minmax(0, 1fr) minmax(0, .7fr) auto; align-items: start; gap: 12px; padding: 12px; border: 1px solid #e2e7ef; border-radius: 9px; background: #fbfcfe; }
.people-one-record time { color: #4e6fb6; font: 14px "DM Mono", monospace; }
.people-one-record b { display: block; margin-bottom: 3px; color: #657289; font-size: 14px; }
.people-one-record p { margin: 0; color: #768297; font-size: 14px; line-height: 1.65; white-space: pre-wrap; }
.people-one-actions { display: flex; gap: 4px; }
.people-one-actions button { padding: 4px 6px; color: #65738b; border: 1px solid #dae1ea; border-radius: 5px; background: white; cursor: pointer; font-size: 14px; }
.people-loading, .people-error { padding: 38px; color: #8591a4; text-align: center; font-size: 14px; }
.people-error { color: #a65348; }
.people-profile-modal { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; }
.one-on-one-modal { width: min(600px, calc(100vw - 32px)); }
.people-profile-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; padding: 18px 22px; }
.people-profile-form .people-form-wide { grid-column: 1 / -1; }
.people-profile-form label { display: grid; gap: 6px; color: #5d6a80; font-size: 14px; font-weight: 600; }
.people-profile-form input, .people-profile-form select, .people-profile-form textarea { width: 100%; padding: 9px 10px; color: #29364f; border: 1px solid #d8e0ea; border-radius: 7px; outline: 0; background: white; font: 14px "Noto Sans SC", sans-serif; }
.people-profile-form textarea { min-height: 86px; resize: vertical; line-height: 1.65; }
.people-profile-form input:focus, .people-profile-form select:focus, .people-profile-form textarea:focus { border-color: #477cff; box-shadow: 0 0 0 3px rgba(71, 124, 255, .1); }
.people-checkboxes { display: flex; align-items: center; gap: 16px; }
.people-checkboxes label { display: flex; align-items: center; gap: 6px; }
.people-checkboxes input { width: auto; }

body.workspace-people-view { background: #f5f7fa; }

@media (max-width: 1100px) {
  .people-overview { grid-template-columns: 1fr repeat(2, minmax(120px, .4fr)); }
  .people-overview-stat:nth-of-type(4), .people-overview-stat:nth-of-type(5) { display: none; }
  .people-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .people-project { grid-template-columns: minmax(160px, 1fr) 70px auto; }
  .people-project-links { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .people-shell { padding: 10px; }
  .people-overview { grid-template-columns: repeat(2, 1fr); }
  .people-overview-intro { grid-column: 1 / -1; }
  .people-overview-stat:nth-of-type(4), .people-overview-stat:nth-of-type(5) { display: flex; }
  .people-layout { grid-template-columns: 1fr; }
  .people-sidebar { border-right: 0; border-bottom: 1px solid #e0e6ef; }
  .people-tree { max-height: 320px; }
  .people-content { padding: 12px; }
  .people-profile-head { flex-wrap: wrap; padding: 17px; }
  .people-profile-actions { width: 100%; margin-left: 67px; }
  .people-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .people-body { padding: 12px; }
  .people-workspace-head { display: grid; grid-template-columns: 7px minmax(0, 1fr); }
  .people-workspace-head > span:last-child { grid-column: 2; min-width: 0; line-height: 1.55; overflow-wrap: anywhere; }
  .people-project { grid-template-columns: minmax(0, 1fr) auto; }
  .people-project-date, .people-project-links { grid-column: 1 / -1; }
  .people-management-grid { grid-template-columns: 1fr; }
  .people-management-card.wide { grid-column: auto; }
  .people-one-record { grid-template-columns: 1fr; }
  .people-profile-form { grid-template-columns: 1fr; padding: 15px; }
  .people-profile-form .people-form-wide { grid-column: auto; }
}

/* 字号舒展：扩大人员树的可读宽度与节点间距，内容仍保持原有树形层级。 */
.people-layout { grid-template-columns: 330px minmax(0, 1fr); }
.people-side-head { padding: 24px 20px 15px; }
.people-side-head h2 { font-size: 17px; }
.people-search { margin: 0 16px 16px; padding: 10px 12px; }
.people-search input { font-size: 15px; }
.people-tree { padding: 0 13px 24px; }
.people-tree-group-head { min-height: 42px; padding: 9px 9px; font-size: 15px; }
.people-tree-count { padding: 3px 7px; font-size: 14px; }
.people-tree-items { gap: 5px; padding-left: 13px; }
.people-tree-person { min-height: 48px; padding: 9px 10px; }
.people-tree-avatar { width: 32px; height: 32px; font-size: 15px; }
.people-tree-person b { font-size: 15px; }
.people-tree-person small, .people-tree-tag { font-size: 14px; }
.people-content { padding: 30px; }
.people-profile-head { gap: 18px; padding: 28px 30px; }
.people-profile-title h1 { font-size: 24px; }
.people-profile-role { font-size: 15px; }
.people-button { min-height: 42px; padding: 9px 13px; font-size: 15px; }
.people-metrics { gap: 11px; padding: 20px 24px; }
.people-metric { min-height: 78px; padding: 14px; }
.people-metric span, .people-risk-label, .people-risk-chip { font-size: 15px; }
.people-body { gap: 20px; padding: 24px; }
.people-section-head { padding: 17px 19px; }
.people-section-head h2 { font-size: 16px; }
.people-workspaces, .people-management-grid, .people-one-list { gap: 12px; padding: 15px; }
.people-workspace-head { min-height: 48px; padding: 12px 14px; }
.people-workspace-head b, .people-project, .people-project-name b, .people-management-card h3, .people-one-record b { font-size: 15px; }
.people-project { min-height: 58px; padding: 13px 14px; }
.people-project-name span, .people-project-date, .people-project-links a, .people-management-card p, .people-one-record p { font-size: 15px; }
.people-management-card { min-height: 135px; padding: 17px; }
.people-one-record { padding: 15px; }
@media (max-width: 1100px) {
  .people-layout { grid-template-columns: 300px minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .people-layout { grid-template-columns: 1fr; }
  .people-content { padding: 15px; }
  .people-profile-head { padding: 20px; }
  .people-metrics { padding: 16px; }
  .people-body { padding: 15px; }
}
