:root{
  --primary:#7c3aed; --primary-d:#5b21b6; --accent:#f59e0b;
  --ink:#1f2937; --ink2:#4b5563; --muted:#6b7280;
  --bg:#eef2f7; --line:#e6ebf2; --radius:12px;
  --shadow:0 4px 14px rgba(91,33,182,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",system-ui,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.55;
  -webkit-font-smoothing:antialiased;
  max-width:680px; margin:0 auto; padding:8px 8px 14px;
}
a{color:var(--primary);text-decoration:none}
img{display:block}

/* 名片主体 */
.card{background:linear-gradient(135deg,#5b21b6,#7c3aed 55%,#a78bfa);color:#fff;border-radius:var(--radius);padding:14px 15px 12px;box-shadow:var(--shadow)}
.card-top{display:flex;align-items:center;gap:12px}
.card-avatar{width:78px;height:78px;border-radius:50%;object-fit:cover;object-position:50% 12%;border:3px solid rgba(255,255,255,.6);flex:0 0 auto;background:rgba(255,255,255,.15)}
.card-head h1{font-size:23px;font-weight:800;letter-spacing:1px}
.card-sub{font-size:12.5px;opacity:.95;margin-top:3px}
.card-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.card-chips span{font-size:11.5px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:2px 9px}
.card-contact{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.22);display:flex;flex-direction:column;gap:3px;font-size:13px}
.card-contact a{color:#ffd98a;font-weight:600}
.card-contact span{opacity:.95;font-size:12px}

/* 数字速览 */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:7px 0}
.stats .stat{background:#fff;border-radius:9px;padding:8px 6px;text-align:center;box-shadow:var(--shadow)}
.stats b{font-size:18px;font-weight:800;color:var(--primary);display:block;line-height:1.1}
.stats b span{font-size:10.5px;font-weight:500;color:var(--muted);margin-left:1px}
.stats i{font-style:normal;font-size:10.5px;color:var(--muted)}

/* 区块（间距收紧） */
.sec{margin-top:9px}
.h2{font-size:14px;font-weight:800;color:var(--ink);margin:0 0 6px;padding-left:9px;position:relative;line-height:1.3}
.h2::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;border-radius:2px;background:linear-gradient(var(--primary),var(--accent))}

/* 现任职务 */
.roles{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.role{background:#fff;border-radius:9px;padding:9px 11px;box-shadow:var(--shadow)}
.role b{font-size:13px;font-weight:700;display:block;line-height:1.3}
.role span{font-size:11px;color:var(--primary);font-weight:600;display:block;margin-top:2px}

/* 主要平台 */
.plist{display:flex;flex-direction:column;gap:4px}
.plist a,.plink-static{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border-radius:9px;padding:8px 11px;box-shadow:var(--shadow);font-size:13px;font-weight:600;color:var(--ink)}
.plist a span,.plink-static span{font-size:10.5px;color:var(--muted);font-weight:400;flex:0 0 auto;text-align:right}
.plist a:hover{color:var(--primary)}

.subt{font-size:12px;font-weight:800;color:var(--primary);margin:8px 0 4px}
.subt:first-child{margin-top:0}

/* 时间线 */
.tl{border-left:2px solid var(--line);padding-left:11px;margin:0 0 4px}
.tl-i{padding:2.5px 0}
.tl-i b{display:block;font-size:11px;color:var(--accent)}
.tl-i span{font-size:12.5px;color:var(--ink2)}

/* 列表 */
.bul{list-style:none;display:flex;flex-direction:column;gap:4px}
.bul li{font-size:12px;color:var(--ink2);padding-left:13px;position:relative;line-height:1.55}
.bul li::before{content:"";position:absolute;left:2px;top:7px;width:4px;height:4px;border-radius:50%;background:var(--primary)}
.bul em{font-style:normal;color:var(--accent);font-weight:700}
.bul b{color:var(--ink)}
.exp{list-style:none;display:flex;flex-direction:column;gap:4px;margin-top:7px}
.exp li{font-size:12px;color:var(--ink2);padding-left:16px;position:relative}
.exp li::before{content:"✓";position:absolute;left:0;top:0;color:#16a34a;font-weight:800}

.ft{text-align:center;color:var(--muted);font-size:11px;margin-top:14px}

@media (max-width:340px){ .roles{grid-template-columns:1fr} }

/* ===== 张孟琛版追加 ===== */
.card-avatar-ph{width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:#fff;background:rgba(255,255,255,.16);border:3px solid rgba(255,255,255,.6);flex:0 0 auto}
.pj{background:#fff;border-radius:9px;padding:9px 11px;box-shadow:var(--shadow);margin-bottom:5px}
.pj:last-child{margin-bottom:0}
.pj-h{font-size:13px;font-weight:700;display:flex;justify-content:space-between;gap:8px;align-items:baseline;line-height:1.35}
.pj-h b{font-weight:800}
.pj-h span{font-size:10.5px;color:var(--primary);font-weight:600;flex:0 0 auto}
.pj-d{font-size:12px;color:var(--ink2);margin-top:4px;line-height:1.55}
.pj-d em{font-style:normal;color:var(--accent);font-weight:700}

.pj-h b a{color:inherit}
.pj-h b a:hover{color:var(--primary)}
.bul a{color:var(--ink);font-weight:700}
.bul a:hover{color:var(--primary)}


.card-btn{display:block;margin-top:11px;background:#fff;color:var(--primary);text-align:center;font-weight:800;font-size:13.5px;padding:9px 10px;border-radius:9px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.card-btn:hover{background:#f5f0ff}


.pj .bul{margin-top:5px}


.card-btns{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.card-btns.one{grid-template-columns:1fr}
.card-btns .card-btn{margin-top:0;font-size:12.5px;padding:9px 6px}

.bul a.link{color:var(--primary);font-weight:700}
.bul a.link:hover{color:var(--primary-d);text-decoration:underline}

.papers-note{font-size:11.5px;color:var(--muted);margin:-3px 0 7px}
.paper-shots{display:flex;gap:7px;margin-top:9px}
.paper-shots img{height:104px;width:auto;display:block;border-radius:6px;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff}

.cert-shots{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.cert-shots a{display:block;line-height:0}
.cert-shots img{height:104px;width:auto;display:block;border-radius:5px;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff}
@media(max-width:560px){.cert-shots{gap:5px}.cert-shots img{height:80px}}