/* Diagram language: graphite paper, fine rules, evidence nodes, lime human gates. */
.public-flow{--pf-ink:#eef2ed;--pf-muted:#a2afa8;--pf-rule:#ffffff18;width:100%;border:1px solid #8aa49630;background:#0d1211;color:var(--pf-ink);box-shadow:0 24px 70px #0003;font-size:13px}
.pf-heading{padding:22px 24px 0;display:flex;gap:18px;justify-content:space-between;align-items:center}
.pf-kicker{font-size:9px;letter-spacing:.18em;color:var(--pf-muted);font-family:Consolas,monospace}
.pf-heading h3{font-size:17px;line-height:1.4;font-weight:500;margin:7px 0 0;letter-spacing:-.02em}
.pf-human-key{font-size:9px;letter-spacing:.08em;display:flex;gap:7px;align-items:center;white-space:nowrap;color:var(--lime)}
.pf-human-key i{width:8px;height:8px;border:1px solid var(--lime);border-radius:50%;box-shadow:0 0 0 3px #a3e63513}
.pf-map{padding:24px 24px 14px;background-image:linear-gradient(#93b5a305 1px,transparent 1px),linear-gradient(90deg,#93b5a305 1px,transparent 1px);background-size:24px 24px}
.pf-map-caption{font:9px/1.6 Consolas,monospace;letter-spacing:.09em;color:var(--pf-muted);margin-bottom:24px}
.pf-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:30px}
.pf-phases>div{border-bottom:1px solid #e2ebe64a;display:flex;align-items:baseline;gap:9px;padding-bottom:7px}
.pf-phases b{font:30px/1 Consolas,monospace;color:#92a39968;font-weight:400}
.pf-phases span{font-size:10px;letter-spacing:.03em}
.pf-phases>div{min-width:0;flex-wrap:wrap}.pf-phases span{overflow-wrap:anywhere}
.pf-nodes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative;isolation:isolate}
.pf-nodes:before{content:'';position:absolute;z-index:-1;left:8.333%;right:8.333%;height:1px;top:45px;background:#9bada57a}
.pf-node{display:flex;flex-direction:column;align-items:center;gap:0;padding:0 2px 12px;min-width:0;font-size:11px;line-height:1.4;position:relative}
.pf-node-number{font:9px/1.4 Consolas,monospace;color:var(--pf-muted);margin-bottom:17px}
.pf-orbit{display:grid;place-items:center;width:28px;height:28px;border:1px solid #d8e4dd99;border-radius:50%;background:#0d1211;margin-bottom:17px;transition:box-shadow 220ms,border-color 220ms}
.pf-orbit i{width:6px;height:6px;border-radius:50%;background:#c6d0ca}
.pf-node strong{font-size:11px;font-weight:500;min-height:30px;text-align:center;overflow-wrap:anywhere}
.pf-node small{font-size:8px;letter-spacing:.025em;color:var(--pf-muted);text-align:center}
.pf-gate .pf-orbit{border-color:var(--lime);box-shadow:0 0 0 5px #a3e63510}
.pf-gate .pf-orbit i{background:var(--lime)}
.pf-node:hover .pf-orbit{border-color:var(--lime)}
.pf-node[aria-pressed=true] .pf-orbit{border-color:var(--lime);box-shadow:0 0 0 6px #a3e63516,0 0 28px #a3e63522;animation:pf-select 420ms ease-out}
.pf-node[aria-pressed=true] .pf-orbit i{background:var(--lime)}
.pf-node[aria-pressed=true] strong{color:var(--lime)}
.pf-route{display:flex;align-items:center;gap:10px;border-top:1px solid #8caa9836;margin:10px 8% 0;padding:12px 0;color:var(--pf-muted);font-size:10px;min-height:45px}
.pf-route-return{border-top-style:dashed;color:var(--lime)}
.pf-route-end{margin-left:auto}
.pf-detail{border-block:1px solid var(--pf-rule);padding:15px 0;display:flex;gap:16px;min-height:104px;align-items:start}
.pf-detail-index{font:28px/1.2 Consolas,monospace;color:#8ba1956b}
.pf-detail strong{font-size:12px;font-weight:500;color:#e4eee7}
.pf-detail p{color:var(--pf-muted);font-size:11px;line-height:1.8;margin-top:4px}
.pf-disclosure{font-size:8px;letter-spacing:.05em;text-align:right;color:var(--pf-muted);margin-top:14px}
.pf-footer{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid var(--pf-rule);padding:10px 12px}
.pf-scenarios{display:flex;gap:5px;flex-wrap:wrap}
.pf-scenarios button{font-size:10px;padding:7px 10px;border:1px solid #ffffff22;border-radius:20px;min-height:36px;transition:background 180ms,border-color 180ms}
.pf-scenarios button[aria-pressed=true]{color:#d3f8a1;background:#a3e63512;border-color:#a3e63575}
.pf-expand{display:flex;align-items:center;gap:5px;padding:8px;min-height:40px;font-size:11px;white-space:nowrap;color:#d2ded6}
.pf-expand:hover{color:var(--lime)}
.pf-scenario-note{padding:0 14px 12px;font-size:10px;line-height:1.7;color:var(--pf-muted);min-height:30px}
#flow-dialog{width:min(1100px,calc(100% - 32px));max-width:1100px;max-height:90dvh;padding:30px;background:#0b100e;border:1px solid #71877a5e;overflow:auto}
#flow-dialog h2{font-size:22px;padding-right:35px;margin:0 0 22px}
#flow-dialog .public-flow{box-shadow:none}
#flow-dialog .pf-map{padding:30px 40px 20px}
#flow-dialog .pf-heading{padding:24px 40px 0}
#flow-dialog .pf-node strong{font-size:14px}
#flow-dialog .pf-detail p{font-size:14px}
#flow-dialog .pf-detail strong{font-size:15px}
#flow-dialog .pf-disclosure{font-size:10px}
#flow-dialog .pf-scenarios button,#flow-dialog .pf-scenario-note{font-size:12px}
@keyframes pf-select{from{box-shadow:0 0 0 14px #a3e63500}to{box-shadow:0 0 0 6px #a3e63516,0 0 28px #a3e63522}}
@media(min-width:1024px) and (max-width:1250px){.pf-heading{padding-inline:16px}.pf-map{padding-inline:16px}.pf-human-key{display:none}.pf-scenarios button{padding-inline:8px;font-size:9px}.pf-expand span{display:none}}
@media(max-width:600px){.pf-heading{padding:20px 16px 0}.pf-heading h3{font-size:16px}.pf-human-key{font-size:8px}.pf-map,#flow-dialog .pf-map{padding:22px 16px 14px}.pf-phases{gap:10px;margin-bottom:18px}.pf-phases b{font-size:24px}.pf-phases span{font-size:9px}.pf-nodes{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:22px}.pf-nodes:before{display:none}.pf-node:before{content:'';position:absolute;z-index:-1;height:1px;background:#9bada57a;top:45px;left:50%;width:100%}.pf-node:nth-child(3n):before{display:none}.pf-node strong,#flow-dialog .pf-node strong{font-size:12px}.pf-node small{font-size:9px}.pf-node strong{min-height:24px}.pf-detail{min-height:126px}.pf-detail p,#flow-dialog .pf-detail p{font-size:12px}.pf-footer{flex-wrap:wrap;gap:4px}.pf-scenarios{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.pf-scenarios button,#flow-dialog .pf-scenarios button{font-size:10px;padding:8px 5px;min-height:44px}.pf-expand{margin-left:auto;min-height:44px}.pf-disclosure{text-align:left;line-height:1.7;font-size:9px}#flow-dialog{padding:42px 12px 14px;width:calc(100% - 20px)}#flow-dialog h2{font-size:18px}#flow-dialog .pf-heading{padding:18px 16px 0}#flow-dialog .pf-disclosure{font-size:9px}.pf-scenario-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){.pf-node[aria-pressed=true] .pf-orbit{animation:none}.public-flow *{transition:none}}
