/* 個人資料頁 */
.pr-wrap{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--sp-4);align-items:start}
@media (max-width:900px){.pr-wrap{grid-template-columns:1fr}}
.pr-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-4) var(--sp-5)}
.pr-card+.pr-card{margin-top:var(--sp-4)}
.pr-card h2{font-size:var(--fs-md);font-weight:700;margin:0 0 var(--sp-1);display:flex;align-items:center;gap:var(--sp-2h)}
.pr-card h2 small{font-weight:400;font-size:var(--fs-xs);color:var(--muted)}
.pr-card h2 .btn{margin-left:auto}
.pr-card p.sub{margin:0 0 var(--sp-3h);font-size:var(--fs-xs);color:var(--muted)}
.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3h) var(--sp-4)}
.pr-grid .full{grid-column:1/-1}
@media (max-width:640px){.pr-grid{grid-template-columns:1fr}}
.pr-f{display:flex;flex-direction:column;gap:var(--sp-1h);min-width:0}
.pr-f label{font-size:var(--fs-xs);font-weight:500;color:var(--ink2)}
.pr-f input,.pr-f select,.pr-f textarea{height:40px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:0 12px;font-size:var(--fs-md);width:100%;font-family:inherit}
.pr-f textarea{height:auto;min-height:72px;padding:10px 12px;resize:vertical}
.pr-f input:focus,.pr-f select:focus,.pr-f textarea:focus{border-color:var(--brand-green-deep);outline:none;box-shadow:0 0 0 3px var(--focus)}
.pr-f .hint{font-size:var(--fs-2xs);color:var(--muted)}
.pr-f .hint.err{color:#B3261E}
.pr-f.locked input{background:var(--bg2);color:var(--ink2);cursor:not-allowed}
.pr-f .cnt{font-size:var(--fs-2xs);color:var(--muted);text-align:right}
.pr-lock{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);padding:var(--sp-2h) var(--sp-3);background:var(--bg2);border-radius:var(--r-md);margin-top:var(--sp-3)}
.pr-lock svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.pr-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.pr-chips label{display:inline-flex;align-items:center;gap:var(--sp-1h);border:1px solid var(--line);border-radius:var(--r-pill);padding:var(--sp-1h) var(--sp-3);font-size:var(--fs-sm);cursor:pointer;user-select:none}
.pr-chips label:has(input:checked){border-color:var(--brand-green-deep);background:rgba(0,112,60,.10);color:var(--brand-green-deep);font-weight:500}
.pr-chips input{position:absolute;opacity:0;width:0;height:0}
.pr-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-3h);border-top:1px solid var(--line)}
.pr-actions .msg{font-size:var(--fs-xs);color:var(--muted)}
.pr-actions .msg.err{color:#B3261E}
.pr-actions .btn.primary{padding:9px 18px;font-size:var(--fs-md)}
.pr-actions .btn[disabled]{opacity:.5;cursor:default}

/* 頭像 */
.pr-avatar{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3h);text-align:center}
.pr-avatar .big{width:140px;height:140px;border-radius:50%;object-fit:cover;background:var(--bg2);border:1px solid var(--line)}
.pr-avatar .initials{width:140px;height:140px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:700;color:#fff;background:var(--brand-green-deep)}
.pr-avatar .name{font-size:var(--fs-lg);font-weight:700}
.pr-avatar .title{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}
.pr-avatar .row{display:flex;gap:var(--sp-2)}
.pr-avatar .note{font-size:var(--fs-2xs);color:var(--muted);line-height:1.5}

/* 裁剪工具 */
.pr-crop{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}
.pr-crop .stage{position:relative;width:260px;height:260px;overflow:hidden;border-radius:var(--r-lg);background:#222;touch-action:none;cursor:grab;user-select:none}
.pr-crop .stage.drag{cursor:grabbing}
.pr-crop .stage canvas{display:block;width:260px;height:260px}
.pr-crop .mask{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 129px,rgba(0,0,0,.55) 130px);border-radius:var(--r-lg)}
.pr-crop .ring{position:absolute;inset:0;pointer-events:none;border:2px solid rgba(255,255,255,.85);border-radius:50%}
.pr-crop .zoom{display:flex;align-items:center;gap:var(--sp-2h);width:260px;font-size:var(--fs-xs);color:var(--muted)}
.pr-crop .zoom input{flex:1;accent-color:var(--brand-green-deep)}
.pr-crop .tip{font-size:var(--fs-2xs);color:var(--muted)}
.pr-crop .row{display:flex;gap:var(--sp-2)}

/* 跟進期限：每來源覆寫 */
.st-chan{border-top:1px dashed var(--line);padding-top:10px;margin-top:6px}
.st-chan .ck{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);cursor:pointer}
.st-chan .st-chan-fields{margin-top:8px}
