/* 启微分子设计平台 V4 增补样式 */
.v4r-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;align-items:start}
@media (max-width:860px){.v4r-grid{grid-template-columns:1fr}}
.v4r .doi{font-weight:400;font-size:12px;margin-left:6px;color:var(--w6a-ink-500)}
.v4r figure{margin:0}
.egg{width:100%;height:auto;display:block}
.egg-bg{fill:#9aa3ad;opacity:.16}
.egg-w{fill:#fbfbf7;stroke:var(--w6a-ink-300);stroke-width:1.2}
.egg-y{fill:#f4c542;stroke:#d7a21c;stroke-width:1.2;opacity:.9}
.egg-t{stroke:var(--w6a-ink-500)}
.egg-l{font-size:11px;fill:var(--w6a-ink-500);font-variant-numeric:tabular-nums}
.egg-ax{font-size:12px;fill:var(--w6a-ink-700)}
.egg-lib{fill:var(--w6a-ink-500);opacity:.45}
.egg-lib:hover{opacity:1;fill:var(--w6a-brand)}
.egg-cur circle{fill:var(--w6a-brand);stroke:#fff;stroke-width:2}
.egg-cur.out circle{fill:var(--w6a-danger)}
.egg-cur .egg-pulse{fill:none;stroke:var(--w6a-brand);stroke-width:2;animation:eggp 1.6s ease-out infinite}
.egg-cur.out .egg-pulse{stroke:var(--w6a-danger)}
@keyframes eggp{from{r:6;opacity:.9}to{r:22;opacity:0}}
.egg-w,.egg-y{animation:eggin .9s cubic-bezier(.2,.7,.2,1) both;transform-box:fill-box;transform-origin:center}
.egg-y{animation-delay:.25s}
@keyframes eggin{from{transform:scale(.2);opacity:0}}
/* 本地 SDF */
.v4-sdf{margin-top:18px;padding-top:12px;border-top:1px solid var(--w6a-hairline)}
.v4-sdf h2{font-size:18px}
.file input[type=file]{position:absolute;opacity:0;width:1px;height:1px}
.file{position:relative;overflow:hidden}
/* 任务与交付 */
.tk-prog{list-style:none;padding:0;margin:8px 0 14px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.tk-prog li{border:1px solid var(--w6a-hairline);border-radius:6px;padding:6px 8px;font-size:13px;display:grid;gap:4px}
.tk-prog i{display:block;height:5px;background:var(--w6a-sunk);border-radius:3px;position:relative;overflow:hidden}
.tk-prog i::after{content:"";position:absolute;inset:0;width:var(--w);background:var(--w6a-brand);transition:width .6s}
.tk-prog span{font-variant-numeric:tabular-nums;color:var(--w6a-ink-500)}
.tk-new{display:flex;flex-wrap:wrap;gap:6px}
.tk-new #tk-title{flex:2 1 240px}.tk-new #tk-note{flex:1 1 140px}.tk-new #tk-who{width:90px}
.tk-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 16px}
@media (max-width:860px){.tk-board{grid-template-columns:1fr 1fr}.tk-prog{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.tk-board{grid-template-columns:1fr}}
.tk-col{background:var(--w6a-sunk);border-radius:8px;padding:8px;min-height:90px}
.tk-col h3{font-size:14px;margin:2px 4px 8px}
.tk-card{background:var(--w6a-paper);border:1px solid var(--w6a-hairline);border-radius:6px;padding:8px;margin-bottom:8px;animation:tkin .35s ease-out}
@keyframes tkin{from{transform:translateY(6px);opacity:0}}
.tk-st{font-size:12px;color:var(--w6a-brand);margin:0}.tk-t{margin:4px 0;font-size:14px}
.tk-card .row{gap:4px;flex-wrap:wrap}
/* 一键演示 */
.dm-steps{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px;counter-reset:none}
.dm-step{border:1px solid var(--w6a-hairline);border-left:4px solid var(--w6a-brand);border-radius:8px;padding:10px 14px;opacity:0;transform:translateX(-18px);transition:opacity .5s,transform .5s}
.dm-step.on{opacity:1;transform:none}
.dm-h{display:flex;gap:10px;align-items:center;margin:0 0 6px;flex-wrap:wrap}
.tag.t-ok{background:#e3f1e6;color:#1f6b35;border-radius:4px;padding:1px 8px;font-size:12px}
.tag.t-demo{background:#fdf0d5;color:#8a5a00;border-radius:4px;padding:1px 8px;font-size:12px}
.dm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:760px){.dm-grid{grid-template-columns:repeat(2,1fr)}}
.dm-grid figure{margin:0;border:1px solid var(--w6a-hairline);border-radius:6px;padding:4px;text-align:center;font-size:13px}
.dm-grid figure.best{border-color:var(--w6a-brand);box-shadow:0 0 0 2px var(--w6a-brand-tint)}
.dm-grid svg{width:100%;height:auto}
.dm-egg{max-width:420px}
.dm-list{margin:4px 0;padding-left:20px}
#chain li.dm-hot{outline:2px solid var(--w6a-brand);outline-offset:2px;border-radius:6px;transition:outline-color .3s}
/* W4 演示之后的两个出口 */
.dm-next{margin-top:18px;opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.dm-next.on{opacity:1;transform:none}
.dm-next-h{margin:0 0 10px;font-size:18px}
.dm-exits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:760px){.dm-exits{grid-template-columns:1fr}}
.dm-exit{border:1px solid var(--w6a-hairline);border-top:4px solid var(--w6a-brand);border-radius:10px;padding:14px 16px;background:var(--w6a-paper)}
.dm-exit h4{margin:6px 0 6px;font-size:17px}
.dm-exit p{margin:6px 0}
.dm-exit input{width:100%;box-sizing:border-box;margin:6px 0}
.dm-ico{width:150px;height:70px;fill:none;stroke:var(--w6a-brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-ico .dx-a{opacity:.45}
.dm-ico .dx-arr{stroke-dasharray:6 6;animation:dxflow 1.2s linear infinite}
.dm-ico .dx-b{animation:dxpop 2.4s ease-in-out infinite;transform-origin:95px 34px}
@keyframes dxflow{to{stroke-dashoffset:-12}}
@keyframes dxpop{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.dm-todo{margin:8px 0 0;padding-left:22px;display:grid;gap:6px}
/* W4 帮助页：靶点页实操 */
.th-flow{width:100%;max-width:860px;height:auto;display:block;margin:6px 0 14px}
.th-flow rect{fill:var(--w6a-paper);stroke:var(--w6a-brand);stroke-width:1.5}
.th-flow text{font-size:13px;fill:var(--w6a-ink-700);text-anchor:middle}
.th-flow .th-sub{font-size:11px;fill:var(--w6a-ink-500)}
.th-flow .th-ln{fill:none;stroke:var(--w6a-brand);stroke-width:2;stroke-dasharray:6 6;animation:dxflow 1.2s linear infinite}
.th-flow .th-off{stroke-dasharray:3 4;opacity:.75}
.th-flow .th-dot{fill:var(--w6a-brand);animation:thrun 6s linear infinite}
.th-flow .th-guide{fill:none;stroke:var(--w6a-hairline);stroke-width:1}
@keyframes thrun{0%{transform:translateX(0)}100%{transform:translateX(710px)}}
.th-do{display:inline-block;padding:0 6px;border:1px solid var(--w6a-hairline);border-radius:5px;background:var(--w6a-paper);font-size:13px;white-space:nowrap}
/* 平台家族 */
.family{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--w6a-hairline);font-size:13px}
.family b{font-weight:600;color:var(--w6a-ink-700)}
.family a[aria-current]{color:var(--w6a-ink-500);pointer-events:none}
@media (prefers-reduced-motion:reduce){.egg-cur .egg-pulse,.egg-w,.egg-y,.tk-card{animation:none}.dm-step{transition:none}}
