/* chat_flow.css — [2026-10-25] 聊天里 DAG / 嵌套子流程 / 子代理的过程树 (配合 chat_flow.js)
 * 颜色全走主题变量; 缩进靠嵌套容器, 手机上缩进收窄。 */
.lcf{margin:4px 0 6px;font-family:var(--sans);width:720px;max-width:100%}
.lcf-n{margin:3px 0;border-radius:10px;border:1px solid var(--bd);background:var(--tool-result-bg,var(--sf));overflow:hidden}
.lcf-n[data-kind="tool"]{border-color:transparent;background:transparent;border-radius:6px;margin:1px 0}
.lcf-n[data-kind="dag"]{border-color:var(--bd2)}
.lcf-n[data-st="failed"]{border-color:color-mix(in srgb,var(--dg) 45%,transparent)}
.lcf-n[data-st="running"]>.lcf-h .lcf-lb{color:var(--tx)}
.lcf-n[data-st="skipped"],.lcf-n[data-st="cancelled"]{opacity:.7}
.lcf-flash{animation:lcf-flash 1.8s ease-out}
@keyframes lcf-flash{0%,30%{box-shadow:0 0 0 3px color-mix(in srgb,var(--dg) 55%,transparent)}100%{box-shadow:0 0 0 0 transparent}}

.lcf-h{display:flex;align-items:center;gap:7px;padding:5px 9px;min-height:28px;cursor:default;font-size:12.5px;line-height:1.4}
.lcf-n.lcf-expandable>.lcf-h{cursor:pointer}
.lcf-n.lcf-expandable>.lcf-h:hover{background:var(--hover-tint,rgba(128,128,128,.08))}
.lcf-arr{flex-shrink:0;width:10px;font-size:10px;color:var(--tx3);display:inline-block;transition:transform .15s;visibility:hidden}
.lcf-n.lcf-expandable>.lcf-h>.lcf-arr{visibility:visible}
.lcf-n.open>.lcf-h>.lcf-arr{transform:rotate(90deg)}
.lcf-ic{flex-shrink:0;width:16px;text-align:center;font-size:12px;color:var(--tx3);font-family:var(--mono)}
.lcf-n[data-st="success"]>.lcf-h>.lcf-ic{color:var(--ac3)}
.lcf-n[data-st="failed"]>.lcf-h>.lcf-ic{color:var(--dg);font-weight:700}
.lcf-lb{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--tx2)}
.lcf-n[data-kind="tool"]>.lcf-h .lcf-lb{font-weight:400;font-size:12px}
.lcf-chip{flex-shrink:0;display:none;font-size:10.5px;padding:0 7px;border-radius:999px;border:1px solid var(--bd2);color:var(--tx3);line-height:17px;white-space:nowrap}
.lcf-chip.on{display:inline-block}
.lcf-chip.failed{color:var(--dg);border-color:var(--dg)}
.lcf-chip.running,.lcf-chip.retrying{color:var(--wn);border-color:var(--wn)}
.lcf-chip.restored{color:var(--ac2);border-color:var(--ac2)}
.lcf-tm{flex-shrink:0;font-size:11px;font-family:var(--mono);color:var(--tx3);min-width:34px;text-align:right}

.lcf-line{padding:0 9px 5px 42px;font-size:12px;line-height:1.5;color:var(--tx3);word-break:break-word}
.lcf-line:empty{display:none;padding:0}
.lcf-line.err{color:var(--dg)}
.lcf-b{display:none;padding:2px 9px 7px 42px}
.lcf-b:empty{display:none!important}
.lcf-n.open>.lcf-b{display:block}
.lcf-lbl{font-size:11px;color:var(--tx3);margin:3px 0 2px}
.lcf-pre{margin:0;padding:6px 8px;border-radius:6px;background:var(--bg);border:1px solid var(--bd);font-family:var(--mono);font-size:11.5px;line-height:1.5;color:var(--tx2);white-space:pre-wrap;word-break:break-all;max-height:220px;overflow:auto}

.lcf-c{display:none;margin:0 0 5px 18px;padding-left:8px;border-left:2px solid var(--bd)}
.lcf-n.open>.lcf-c{display:block}
.lcf-c:empty{display:none!important}

.lcf-out{padding:2px 9px 4px 9px}
.lcf-out:empty{display:none}
.lcf-outbox{font-size:13px;line-height:1.6;max-height:460px;overflow:auto;word-break:break-word}
.lcf-act{display:flex;flex-wrap:wrap;gap:6px;padding:0 9px 7px}
.lcf-act:empty{display:none}
.lcf-jump,.lcf-link{font:inherit;font-size:12px;padding:4px 11px;border-radius:999px;border:1px solid var(--bd2);background:var(--bg);color:var(--tx);cursor:pointer;line-height:1.4}
.lcf-jump{border-color:var(--dg);color:var(--dg)}
.lcf-jump:hover,.lcf-link:hover{background:var(--hover-tint,rgba(128,128,128,.1))}

@media(max-width:640px){
  .lcf-h{padding:7px 8px;min-height:34px;gap:5px;font-size:13px}
  .lcf-line,.lcf-b{padding-left:26px}
  .lcf-c{margin-left:8px;padding-left:5px}
  .lcf-tm{min-width:0;font-size:10.5px}
  .lcf-chip{font-size:10px;padding:0 5px}
  .lcf-jump,.lcf-link{padding:7px 12px}
}
