.project-view.is-project-flow .project-body { display:block; }
.project-view.is-project-flow .project-sidebar { display:none; }
.project-view.is-project-flow .project-main { max-width:1260px;margin:0 auto;padding:26px 28px 48px; }
.project-flow-page,.project-flow-dialog { --flow-line:#60656d;--flow-green:#19865a;--flow-green-bg:#f2faf5;--flow-green-border:#82bda0;--flow-paper:var(--surface); }
:root:not([data-theme=light]) :is(.project-flow-page,.project-flow-dialog) { --flow-line:#abb1b9;--flow-green:#65d9a0;--flow-green-bg:#192a21;--flow-green-border:#477a60; }
.project-flow-heading { display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:16px; }
.project-flow-eyebrow { color:var(--muted);font-size:11px; }
.project-flow-heading h2 { font-size:25px;font-weight:650;letter-spacing:-.6px;margin:7px 0 8px; }
.project-flow-heading p { margin:0;max-width:800px;color:var(--muted);font-size:13px;line-height:1.7; }
.project-flow-summary { min-width:140px;display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted); }
.project-flow-summary strong { font-size:28px;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums; }
.project-flow-summary strong span { font-size:16px;color:var(--muted);font-weight:400; }
.project-flow-summary progress { width:100%;height:4px;accent-color:var(--flow-green); }
.project-flow-tools { display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:13px;border-bottom:1px solid var(--border); }
.project-flow-legend { display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted); }
.project-flow-legend span::before { content:'';display:inline-block;width:6px;height:6px;margin-right:6px;background:#a1a8b1;border-radius:50%; }
.project-flow-legend [data-status=edited]::before { background:#3985d8; }
.project-flow-legend [data-status=failed]::before { background:#d86861; }
.project-flow-legend [data-status=passed]::before { background:var(--flow-green); }
.project-flow-continue { font-size:12px;font-weight:500; }
.project-flow-controller { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:14px 0;padding:12px 16px;border:1px solid var(--border);border-radius:5px;background:var(--surface);cursor:pointer; }
.project-flow-controller .project-flow-node-top { gap:12px; }
.project-flow-controller strong { font-size:13px;font-weight:600; }
.project-flow-controller p { font-size:12px;line-height:1.6;color:var(--muted);margin:0; }
.project-flow-controller-file { font:11px var(--mono);white-space:nowrap; }
.project-flow-node-top { display:flex;align-items:center;justify-content:space-between;gap:6px; }
.project-flow-node-top>a { color:var(--text);min-width:0; }
.project-flow-status { display:flex;align-items:center;gap:5px;flex:none;font-size:10px;color:var(--muted); }
.project-flow-status i { display:grid;place-items:center;width:14px;height:14px;border:1px solid var(--border);border-radius:50%;font-style:normal;font-size:10px; }
.project-flow-status>span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
[data-flow-node][data-status=passed] .project-flow-status { color:var(--flow-green); }
[data-flow-node][data-status=passed] .project-flow-status i { border-color:var(--flow-green);background:var(--flow-green-bg); }
[data-flow-node][data-status=edited] .project-flow-status i { background:var(--blue);border-color:var(--blue);box-shadow:inset 0 0 0 3px var(--surface); }
[data-flow-node][data-status=failed] .project-flow-status i { color:var(--red);border-color:var(--red); }
.project-flow-map-help { display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;line-height:1.8;color:var(--muted);margin:12px 0; }
.flow-line-sample { display:inline-block;vertical-align:middle;width:26px;border-top:1.5px solid var(--flow-line);margin-right:7px; }
.flow-line-sample.update { border-top-style:dashed;margin-left:18px; }
.project-flow-scroll { overflow:auto;border:1px solid var(--border);border-radius:7px;background:var(--flow-paper); }
.project-flow-scroll:focus-visible { outline:2px solid var(--blue);outline-offset:3px; }
.project-flow-map { position:relative;isolation:isolate;margin:0 auto; }
.project-flow-band { position:absolute;z-index:-1;border:1px dashed var(--border);border-radius:6px;pointer-events:none; }
.project-flow-band>span { position:absolute;left:16px;top:-10px;padding:0 7px;background:var(--flow-paper);font-size:11px;line-height:18px;color:var(--muted);letter-spacing:.15px; }
.project-flow-band b { font:600 11px var(--mono);color:var(--text);margin-right:8px; }
.project-flow-map>.project-flow-edges { position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible; }
.project-flow-edges g path { fill:none;stroke:var(--flow-line);stroke-width:1.3;stroke-linejoin:round; }
.project-flow-edges marker path { fill:var(--flow-line); }
.project-flow-edges [data-kind=update]>path { stroke-dasharray:5 4; }
.project-flow-edges text { font:11px var(--sans);fill:var(--flow-line);paint-order:stroke;stroke:var(--flow-paper);stroke-width:5px;stroke-linejoin:round; }
.project-view .project-flow-node { position:absolute;display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:none; }
.project-flow-node strong { font-size:14px;line-height:22px;font-weight:600; }
.project-flow-node p { font-size:12px;line-height:18px;color:var(--muted);margin:3px 0 5px; }
.project-flow-node[data-status=passed] { border-color:var(--flow-green-border);background:var(--flow-green-bg); }
.project-flow-node[data-status=failed] { border-color:#d78e89; }
.project-flow-node:hover,.project-flow-node:focus-within { border-color:var(--text); }
.project-flow-object { display:block;width:100%;height:52px;flex:none;margin:3px 0 1px;color:var(--text); }
.project-flow-object path,.project-flow-object rect,.project-flow-object circle { fill:none;stroke:currentColor;stroke-width:1.1;stroke-linejoin:round; }
.project-flow-object rect,.project-flow-object circle { fill:var(--surface); }
.project-flow-object .filled { fill:currentColor; }
.project-flow-object text { font:13px var(--sans);fill:currentColor; }
.project-flow-object .secondary { font-size:11px;fill:var(--muted); }
.project-flow-node .project-flow-file-button { display:flex;justify-content:space-between;gap:6px;align-items:center;width:100%;border:0;border-top:1px solid var(--border);border-radius:0;padding:7px 0 0;margin-top:auto;background:none;color:var(--muted);font:10px var(--mono);text-align:left;cursor:pointer; }
.project-flow-file-button span { font:10px var(--sans);white-space:nowrap; }
.project-flow-file-button:hover { color:var(--text); }
.project-flow-file-button:focus-visible,.project-flow-node a:focus-visible { outline:2px solid var(--blue);outline-offset:3px; }
.has-flow-focus [data-flow-edge] { opacity:.62; }
.has-flow-focus [data-flow-edge].flow-related { opacity:1; }
.has-flow-focus [data-flow-edge].flow-related path { stroke:var(--text);stroke-width:2; }
.has-flow-focus .project-flow-node.flow-related { border-color:var(--text); }
.project-flow-caption { margin:10px 0 22px;color:var(--muted);font-size:11px;line-height:1.8; }
.project-view .project-flow-run { display:flex;align-items:center;gap:16px;padding:17px 20px;border:1px solid var(--border);border-radius:7px;color:var(--text);background:var(--surface); }
.project-flow-run>span:last-child { margin-left:auto; }
.project-flow-run strong { font-size:14px;font-weight:550; }
.project-flow-run p { font-size:12px;color:var(--muted);line-height:1.7;margin:5px 0 0; }
.project-flow-run-icon { font-size:25px; }
.project-flow-run[data-ready=true] { background:var(--flow-green-bg);border-color:var(--flow-green-border); }
.project-flow-run[data-ready=true] .project-flow-run-icon { color:var(--flow-green); }
.project-top [data-project-map-link] { white-space:nowrap; }
.project-footer .project-footer-map { margin:0 auto; }
.project-flow-dialog { width:600px;max-width:calc(100vw - 32px);max-height:80vh;box-sizing:border-box;padding:22px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 20px 80px #0003; }
.project-flow-dialog::backdrop { background:#0005; }
.project-flow-dialog header { display:flex;align-items:center;justify-content:space-between;gap:20px; }
.project-flow-dialog h3 { margin:0;font-size:18px; }
.project-flow-dialog header button { font-size:22px;background:none;border:0;color:var(--text);cursor:pointer; }
.project-flow-dialog p { color:var(--muted);font-size:13px;line-height:1.7; }
.project-flow-files { display:flex;flex-direction:column; }
.project-flow-files a { display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;padding:12px 2px;border-top:1px solid var(--border);color:var(--text); }
.project-flow-files code { font:12px var(--mono);overflow-wrap:anywhere; }
.project-flow-files a>span { grid-column:1;grid-row:2;font-size:12px;color:var(--muted); }
.project-flow-files small { grid-column:1;font-size:11px;color:var(--muted); }
.project-flow-files b { grid-column:2;grid-row:1 / 4;font-weight:400; }
.project-flow-files a[data-status=passed] small { color:var(--flow-green); }
.project-flow-files a[data-status=failed] small { color:var(--red); }
.project-flow-files a:hover code { text-decoration:underline; }
@media(max-width:850px) { .project-flow-controller { grid-template-columns:1fr auto; }.project-flow-controller p { grid-column:1 / 3;grid-row:2; } }
@media(max-width:650px) { .project-view.is-project-flow .project-main { padding:22px 16px 36px; }.project-flow-heading { align-items:flex-start;gap:15px; }.project-flow-heading h2 { font-size:21px; }.project-flow-heading p { font-size:12px; }.project-flow-summary { min-width:88px; }.project-flow-summary strong { font-size:25px; }.project-flow-legend { gap:12px; }.project-flow-controller { gap:10px; }.project-flow-controller strong { font-size:12px; } }
