/* 使用工作台样式变量；默认值使 portal 宿主也可单独加载。 */
.pv{color:var(--ink,#101828);font:14px/1.6 var(--sans,system-ui,sans-serif);min-width:0;overflow-wrap:anywhere}
.pv h3,.pv h4,.pv p{margin:0}.pv h3{font-size:17px}.pv h4{font-size:14px}.pv p{margin:10px 0}
.pv small{display:block;color:var(--mut,#667085);font-size:12px}.pv code{font-size:12px;white-space:normal}
.pv-head,.pv-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pv-status{display:inline-block;border-radius:5px;padding:2px 7px;font-size:12px;background:var(--nonebg,#F2F4F7);color:var(--none,#667085);white-space:nowrap}
.pv-running,.pv-retrying{color:var(--run,#3056D3);background:var(--runbg,#EEF2FE)}
.pv-done,.pv-passed,.pv-completed{color:var(--pass,#0E7C5A);background:var(--passbg,#E7F6F0)}
.pv-paused,.pv-waiting_quota,.pv-blocked{color:var(--wait,#B25E09);background:var(--waitbg,#FEF4E6)}
.pv-waiting_human,.pv-stalled,.pv-failed,.pv-stopped{color:var(--fail,#C0362C);background:var(--failbg,#FDEEEC)}
.pv-alert,.pv .pv-alert small{color:var(--fail,#C0362C)}
.pv-attention{color:var(--fail,#C0362C);border:1px solid var(--fail,#C0362C);border-radius:7px;padding:10px;margin:10px 0;background:var(--failbg,#FDEEEC)}
.pv-timing{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin:14px 0;padding:12px;background:var(--sunk,#F9FAFB);border-radius:7px}
.pv-timing span,.pv-timing b{display:block}.pv-timing span{font-size:12px;color:var(--mut,#667085)}.pv-timing b{font-size:13px;font-variant-numeric:tabular-nums}
.pv-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:10px;margin:10px 0}
.pv-widget,.pv-step{border:1px solid var(--line,#E4E7EC);background:var(--panel,#FFF);border-radius:7px;padding:12px;min-width:0}
.pv-blocked-widget{border-color:var(--wait,#B25E09)}.pv-steps{display:grid;gap:10px}.pv-step.pv-attention{border-color:var(--fail,#C0362C);margin:0}
.pv-step-detail{margin-top:4px}
.pv-stages,.pv-frontier,.pv-blocked,.pv-timeline,.pv-outputs{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.pv-stages li,.pv-timeline li{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.pv-frontier li{padding:6px 0;border-bottom:1px solid var(--line,#E4E7EC)}.pv-timeline time{font-size:12px;color:var(--mut,#667085)}
.pv-count b{display:block;font-size:20px;font-variant-numeric:tabular-nums}.pv-count progress{display:block;width:100%;height:8px;margin:8px 0;accent-color:var(--acc,#3056D3)}
.pv-outputs code{display:block;color:var(--mut,#667085)}.pv-resources{font-size:12px;color:var(--mut,#667085);margin:10px 0}.pv-resources>span{display:block}
.pv-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 0}.pv-control-label{color:var(--acc,#3056D3);font-size:12px;font-weight:600}
.pv-control button,.pv-control input{font:inherit;font-size:12px;background:var(--panel,#FFF);border:1px solid var(--line,#E4E7EC);border-radius:5px;padding:5px 10px;color:var(--ink,#101828);max-width:100%}
.pv-control button{cursor:pointer;min-height:34px}.pv-control button:disabled{opacity:.45;cursor:default}.pv-control label{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.pv-control input{width:160px;min-width:0}.pv-control>small{flex-basis:100%}
.plan-run{margin:12px 0;border:1px solid var(--line,#E4E7EC);border-radius:var(--r,10px);background:var(--panel,#FFF);min-width:0}
.plan-run>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;padding:14px;list-style:none}.plan-run>summary:before{content:'▸';color:var(--mut,#667085)}.plan-run[open]>summary:before{content:'▾'}
.plan-run>summary strong{flex:1;min-width:120px;overflow-wrap:anywhere}.plan-run>summary small{color:var(--mut,#667085)}.plan-run>.pv{padding:0 14px 14px}.plan-run-human{border-color:var(--fail,#C0362C)}
@media(max-width:600px){.pv-timing,.pv-widgets{grid-template-columns:1fr}.pv-control button{min-height:40px}.plan-run>summary{padding:10px}.plan-run>.pv{padding:0 10px 10px}.plan-run>summary small{width:100%}}
