/* Diagram grammar: paths, gates, handoffs, parallel work, cycles and time. */
.reading-page .article-body .work-flow{margin:30px 0 40px;padding:24px;border:1px solid #dce1e6;border-radius:5px;background:#fbfcfd;break-inside:avoid}
.work-flow figcaption{margin:0 0 24px}.work-flow .flow-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#626c77;font:700 10px/1.5 var(--sans);letter-spacing:.05em;margin-bottom:9px}.flow-kind{border:1px solid #d7dde3;border-radius:20px;padding:3px 8px;letter-spacing:0;background:#fff}
.work-flow figcaption>strong{display:block;font:750 20px/1.45 var(--sans);color:#181a20;word-break:keep-all}
.work-flow .diagram-node{position:relative;display:flex;align-items:flex-start;gap:10px;padding:15px;background:#fff;border:1px solid #c7cfd8;border-radius:5px;min-width:0;color:#181a20}.diagram-node>div{min-width:0}.diagram-node strong{display:block;font:750 14px/1.5 var(--sans);word-break:keep-all;overflow-wrap:anywhere}.diagram-detail{display:block;margin-top:5px;color:#52606d;font:400 12px/1.7 var(--sans);word-break:keep-all;overflow-wrap:anywhere}.diagram-number{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#181a20;color:#fcd535;font:750 10px/1 var(--sans)}
.reading-page .article-body .work-flow ol,.reading-page .article-body .work-flow ul{list-style:none;padding:0;margin:0}.reading-page .article-body .work-flow li{margin:0;padding:0;min-width:0}.reading-page .article-body .work-flow p.flow-note{border-top:1px solid #dce1e6;padding-top:14px;margin:20px 0 0;color:#59636f;font:400 12px/1.75 var(--sans);word-break:keep-all}
.reading-page .article-body p.diagram-key{font:400 11px/1.7 var(--sans);color:#6a7480;margin:13px 0 0}.work-flow section{margin:0}.reading-page .article-body .work-flow h3{font:750 12px/1.5 var(--sans);margin:0 0 10px}
.reading-page .article-body .diagram-path{display:grid;gap:24px}.diagram-path>li{position:relative}.diagram-path>li:not(:last-child)::after{content:'↓';display:block;position:absolute;left:calc(50% - 7px);bottom:-23px;font:600 20px/23px var(--sans);color:#778491}
.reading-page .article-body .diagram-sequence{display:grid;gap:22px}.reading-page .article-body .diagram-sequence>.flow-step{position:relative;background:transparent;border:0}.diagram-sequence>.flow-step:not(:last-child)::after{content:'↓';position:absolute;left:calc(50% - 7px);bottom:-22px;color:#7a8591;font:600 20px/22px var(--sans)}.diagram-sequence .diagram-node{border-left:4px solid #d1b120}
/* Decision: the two labelled branches are alternatives, never concurrent tasks. */
.reading-page .article-body .work-flow[data-flow-type=decision]{background:#fffdf5;border-top:3px solid #c9a82d}.diagram-decision>.diagram-path{max-width:390px;margin-inline:auto!important}.decision-stem{text-align:center;height:27px;color:#7a8591}.decision-gate{position:relative;display:grid;place-items:center;width:min(260px,100%);height:140px;margin:auto}.decision-gate svg{position:absolute;inset:0;width:100%;height:100%;fill:#fff0ae;stroke:#ad8c20;stroke-width:1.5}.decision-gate>strong{position:relative;width:150px;text-align:center;font:750 14px/1.55 var(--sans);word-break:keep-all}.decision-branches{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;position:relative}.decision-branches::before{content:'';position:absolute;top:-22px;left:25%;right:25%;height:18px;border-top:1px solid #9ca7b3;border-left:1px solid #9ca7b3;border-right:1px solid #9ca7b3}.decision-branches h3{text-align:center}.decision-no h3{color:#8c4e3d}.decision-yes h3{color:#52633e}.diagram-hold{border-style:dashed!important;background:#fff9f5!important}.decision-branches .diagram-node{display:block}.decision-branches .diagram-number{display:inline-grid;margin-bottom:8px}
/* Swimlanes: columns remain roles, arrows cross lanes at handoffs. */
.reading-page .article-body .work-flow[data-flow-type=swimlane]{background:#f6f9fc;border-top:3px solid #697f93}.swim-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid #cbd5df;border-radius:4px;background:#fff;scrollbar-width:thin}.swim-scroll:focus-visible{outline:2px solid #796313;outline-offset:3px}.swim-canvas{position:relative;display:grid;grid-template-columns:.25fr repeat(var(--lanes),1fr);grid-template-rows:42px repeat(var(--rows),var(--lane-row))}.swim-corner,.swim-header{grid-row:1;display:grid;place-items:center;z-index:2;background:#e9eff5;font:750 11px/1.4 var(--sans);border-bottom:1px solid #cbd5df;padding:5px;word-break:keep-all}.swim-corner{grid-column:1}.swim-header{border-left:1px solid #d8e1e9}.swim-lane{background:#f8fafc;border-left:1px solid #dfe6ed;z-index:0}.swim-lane:nth-of-type(even){background:#eff4f8}.swim-connectors{position:absolute;inset:0;width:100%;height:100%;z-index:1;fill:none;stroke:#7e92a4;stroke-width:1.4}.swim-connectors .swim-arrow{fill:#7e92a4;stroke:none}.swim-steps{display:contents}.swim-steps>li{position:relative;z-index:2;margin:12px 9px!important;display:flex;align-items:stretch}.swim-steps .diagram-node{padding:12px;width:100%;box-shadow:0 2px 0 #d6e0e955}.swim-steps .diagram-node strong{font-size:13px}.swim-steps .diagram-detail{font-size:11px;line-height:1.6}.swim-order{position:absolute;left:1px;top:-10px;background:#e9eff5;border:1px solid #cbd5df;border-radius:3px;padding:1px 5px;z-index:3;font:750 9px/1.5 var(--sans);color:#5f7385}.swim-steps .sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
/* Parallel work splits once, then joins before the final node. */
.reading-page .article-body .work-flow[data-flow-type=parallel]{background:#f7faf9;border-top:3px solid #6a8d80}.parallel-entry,.parallel-exit{max-width:390px;margin:auto}.parallel-fork,.parallel-join{height:32px;position:relative;margin-inline:calc(50% / var(--branches));border-left:1px solid #8ca59b;border-right:1px solid #8ca59b}.parallel-fork{border-top:2px solid #8ca59b;margin-top:30px}.parallel-fork::before{content:'';position:absolute;left:50%;top:-31px;height:29px;border-left:1px solid #8ca59b}.parallel-branches{display:grid;grid-template-columns:repeat(var(--branches),minmax(0,1fr));gap:20px}.parallel-branches .diagram-node{display:block;height:100%}.parallel-branches .diagram-number{display:inline-grid;margin-bottom:9px}.parallel-join{border-bottom:2px solid #8ca59b}.parallel-condition{display:block;text-align:center;color:#5d776b;font:700 11px/1.5 var(--sans);margin:12px 0}.parallel-exit .diagram-node{border-color:#809e91;background:#f1f7f3}
/* Cycles retain the return edge, including on narrow screens. */
.reading-page .article-body .work-flow[data-flow-type=cycle]{border:0;background:#f4f3ef;border-radius:12px}.diagram-cycle{position:relative;padding:6px 0}.cycle-steps{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:70px 30px}.cycle-steps>li{position:relative;display:flex}.cycle-steps>li[data-cycle-step="0"]{grid-area:1/1}.cycle-steps>li[data-cycle-step="1"]{grid-area:1/2}.cycle-steps>li[data-cycle-step="2"]{grid-area:2/2}.cycle-steps>li[data-cycle-step="3"]{grid-area:2/1}.cycle-steps .diagram-node{display:block;width:100%;border-radius:10px;border-color:#c9c4b5}.cycle-steps .diagram-number{display:inline-grid;margin-bottom:9px}.cycle-steps>li::after{position:absolute;color:#8d8265;font:600 23px/30px var(--sans)}.cycle-steps>li[data-cycle-step="0"]::after{content:'→';right:-27px;top:calc(50% - 15px)}.cycle-steps>li[data-cycle-step="1"]::after{content:'↓';bottom:-50px;left:calc(50% - 8px)}.cycle-steps>li[data-cycle-step="2"]::after{content:'←';left:-27px;top:calc(50% - 15px)}.cycle-steps>li[data-cycle-step="3"]::after{content:'↑';top:-50px;left:calc(50% - 8px)}.cycle-center{position:absolute;inset:calc(50% - 24px) 15% auto;display:flex;align-items:center;justify-content:center;gap:8px;background:#f4f3ef;color:#786d51;min-height:48px;text-align:center}.cycle-center>span{font-size:27px}.cycle-center strong{font:750 12px/1.5 var(--sans);word-break:keep-all}
/* Timelines show phases on one axis rather than boxed tasks. */
.reading-page .article-body .work-flow[data-flow-type=timeline]{background:#fff;border:0;border-top:2px solid #181a20;border-bottom:1px solid #cdd3d9;border-radius:0;padding-inline:6px!important}.diagram-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.diagram-timeline>li{position:relative;padding-top:29px!important}.diagram-timeline>li::before{content:'';position:absolute;left:5px;right:-25px;top:7px;border-top:2px solid #bec8d1}.diagram-timeline>li:last-child::before{right:0}.timeline-dot{position:absolute;top:1px;left:0;width:14px;height:14px;background:#fcd535;border:3px solid #181a20;border-radius:50%;z-index:1}.timeline-phase{display:block;color:#7d6841;font:750 10px/1.4 var(--sans);margin-bottom:10px}.diagram-timeline>li>strong{display:block;font:750 14px/1.5 var(--sans);word-break:keep-all}.diagram-timeline .diagram-detail{font-size:12px}
/* Multiple sources converge into a single record before downstream work. */
.reading-page .article-body .work-flow[data-flow-type=merge]{background:#f5f8fb;border-top:3px solid #66849e}.merge-inputs{display:grid;grid-template-columns:repeat(var(--inputs),minmax(0,1fr));gap:20px}.merge-inputs>li>.diagram-node{display:block;height:100%;border-color:#93a9bc;background:#fff}.merge-connector{height:30px;margin-inline:calc(50% / var(--inputs));border-left:1px solid #92a7b9;border-right:1px solid #92a7b9;border-bottom:2px solid #92a7b9;position:relative}.merge-connector::after{content:'↓';position:absolute;left:calc(50% - 8px);bottom:-25px;font-size:22px;color:#6e879d}.merge-label{text-align:center;font:750 10px/1.5 var(--sans);color:#668095;margin:28px 0 13px}.diagram-merge>.diagram-path{max-width:390px;margin-inline:auto!important}
@media(min-width:1000px){.reading-page .article-body .diagram-sequence{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.diagram-sequence .diagram-node{display:block;height:100%;border-left:0;border-top:4px solid #d1b120}.diagram-sequence .diagram-number{display:inline-grid;margin-bottom:9px}.diagram-sequence>.flow-step:not(:last-child)::after{content:'→';left:auto;right:-18px;top:calc(50% - 12px);bottom:auto;width:17px;font-size:17px}}
@media(max-width:760px){.reading-page .article-body .work-flow{padding:20px 16px;margin-block:25px 32px}.work-flow figcaption>strong{font-size:18px}.work-flow .diagram-node{padding:12px}.decision-branches{gap:16px}.parallel-branches{gap:14px}.diagram-timeline{grid-template-columns:1fr;gap:0}.diagram-timeline>li{padding:0 0 29px 30px!important}.diagram-timeline>li::before{top:5px;bottom:0;right:auto;left:6px;border-top:0;border-left:2px solid #bec8d1}.diagram-timeline>li:last-child::before{bottom:10px}.diagram-timeline>li:last-child{padding-bottom:0!important}.timeline-phase{margin-bottom:6px}.timeline-dot{top:3px}.cycle-steps{gap:70px 25px}.cycle-steps>li[data-cycle-step="0"]::after{right:-24px}.cycle-steps>li[data-cycle-step="2"]::after{left:-24px}.cycle-steps .diagram-detail{font-size:11px}.cycle-steps .diagram-node strong{font-size:13px}.parallel-branches .diagram-node strong,.decision-branches .diagram-node strong{font-size:13px}.parallel-branches .diagram-detail,.decision-branches .diagram-detail{font-size:11px}}


.parallel-branches>li,.merge-inputs>li{position:relative}.parallel-branches>li::before,.parallel-branches>li::after,.merge-inputs>li::after{content:"";position:absolute;left:50%;border-left:1px solid #8ca59b;height:32px}.parallel-branches>li::before{top:-32px}.parallel-branches>li::after{bottom:-32px}.merge-inputs>li::after{bottom:-30px;height:30px;border-color:#92a7b9}
.diagram-number{width:24px;min-width:24px}.parallel-fork,.parallel-join{border-left:0;border-right:0}.parallel-condition::after{content:'↓';display:block;color:#738d81;font:600 20px/23px var(--sans)}
.cycle-center{inset:calc(50% - 24px) auto auto calc(50% - 70px);width:140px}.parallel-fork,.parallel-join,.merge-connector{margin-inline:calc(var(--edge-percent) - var(--edge-inset));border-left:0;border-right:0}.parallel-branches{gap:20px}
.swim-time{display:grid;place-items:center;align-self:start;margin-top:16px;font:750 10px/1.5 var(--sans);color:#7a8b9a}.reading-page .article-body .swim-hint{display:none}@media(max-width:760px){.reading-page .article-body .swim-hint{display:block;font:600 11px/1.6 var(--sans);color:#667f96;margin:0 0 10px}}
