/* projects.css —— 项目跟进页面样式（配合 app.css 的变量） */

.pj-body main{padding:14px 16px 60px;max-width:100%}
.view{display:none}
.view.active{display:block}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.inp{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;max-width:220px}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}
.pill{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--gray-bg);color:var(--gray);font-size:11px;text-align:center}
.user-box{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.user-box b{color:var(--text);font-weight:500}

/* ---------------- 导图 ---------------- */
.map-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fbfcfe}
.map-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:#fff;font-size:12px;color:var(--muted)}
.lg{display:inline-flex;align-items:center;gap:5px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.d-blue{background:var(--brand)} .d-green{background:#6fae3c} .d-amber{background:#e8a33d}
.d-gray{background:#b6bec8} .d-red{background:#d9534f}
.map-tip{margin-left:auto;color:#9aa5b1}
.map-host{width:100%;height:640px;overflow:hidden;cursor:grab;position:relative}
.map-host.dragging{cursor:grabbing}
.map-host svg{display:block;user-select:none}
.mnode{cursor:pointer}
.mnode rect{transition:filter .12s}
.mnode:hover rect{filter:brightness(.96)}
.mnode text{font:13px -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;pointer-events:none}
.mnode .t-detail{font-size:12px}
.mlink{fill:none;stroke:#c8d3df;stroke-width:1.4px}
.mlink.risk{stroke:#e3a6a4;stroke-dasharray:4 3}
.collapse-badge{font-size:11px;fill:#fff}

/* ---------------- 表格 ---------------- */
.tbl .c-cli{font-weight:500;white-space:nowrap}
.tbl .t-sub{color:var(--muted);font-size:12px}
.row-acts{display:flex;gap:6px;flex-wrap:wrap}
tr.hidden-row td{opacity:.55;background:#fafafa;font-style:italic}
tr.hidden-row td:first-child{box-shadow:inset 3px 0 0 #c9d2dc}
tr.expanded td{background:#f7fafd}
.sub-wrap{padding:6px 0 10px}
.sub-table{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sub-table th{background:#f5f8fb;color:var(--muted);font-weight:500;text-align:left;padding:6px 8px;font-size:12px;border-bottom:1px solid var(--line)}
.sub-table td{padding:6px 8px;border-bottom:1px solid #eef1f5}
.mono{font-family:ui-monospace,Consolas,"Courier New",monospace;font-size:12.5px}
.empty{color:var(--muted);font-size:13px;padding:14px;text-align:center}
.tag-list{display:flex;flex-direction:column;gap:4px}
.tag-line{font-size:12.5px}
.tag-line .d{color:var(--muted);margin-right:6px}

/* ---------------- 弹窗表单 ---------------- */
.modal{max-width:820px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.form-grid label.full{grid-column:1 / -1}
.form-grid input,.form-grid select,.form-grid textarea{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13.5px;color:var(--text);background:#fff;width:100%}
.form-grid textarea{min-height:64px;resize:vertical}
.row-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.sec-title{margin:16px 0 8px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}
.sec-title .hint{margin:0}
.rec-item{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:6px;background:#fff;display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.rec-item .txt{flex:1;font-size:13px}
.rec-item .meta{color:var(--muted);font-size:11.5px;margin-top:2px}
.rec-form{display:grid;grid-template-columns:130px 1fr 92px 80px;gap:8px;align-items:start}
.rec-form input,.rec-form select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:#fff;width:100%}
.bulk-area{width:100%;min-height:140px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.login-box{max-width:420px}
.login-box h3{margin:0 0 4px}
.warn{background:var(--amber-bg);color:var(--amber);border-radius:8px;padding:8px 10px;font-size:12.5px;margin-top:10px}
@media (max-width:820px){
  .form-grid{grid-template-columns:1fr}
  .rec-form{grid-template-columns:1fr 1fr}
  .map-host{height:520px}
}

/* 框颜色选择 */
#pColorRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.cswatch{width:46px;height:24px;border-radius:5px;border:2px solid #d6dee8;cursor:pointer;font-size:11px;color:#51606f;padding:0}
.cswatch.on{border-color:#1c2733;box-shadow:0 0 0 2px rgba(28,39,51,.15)}

/* 快速记录弹窗 */
.qbtn.on{background:var(--brand);border-color:var(--brand);color:#fff}
#recSupport .rec-form{grid-template-columns:120px 132px 1fr 84px 72px}
#recTodo .rec-form{grid-template-columns:120px 1fr 84px 72px}

/* 统计条 */
.stat-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:10px 2px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.scell{background:#f7f9fb;border:1px solid var(--line);border-radius:9px;padding:6px 12px;min-width:96px}
.scell b{display:block;font-size:17px;line-height:1.2}
.scell span{font-size:11.5px;color:var(--muted)}
.scell.sc-blue b{color:var(--blue)}
.scell.sc-amber b{color:var(--amber)}
.scell.sc-red b{color:var(--red)}
.stypes{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-left:6px}
.stypes .slabel{font-size:11.5px;color:var(--muted)}
.sstat{background:var(--gray-bg);border-radius:10px;padding:2px 10px;font-size:12px;color:var(--gray)}
