/* Program flow uses the same warm field-notebook palette as the workbench. */
dialog.program-flowchart{--pf-ink:#26372f;--pf-line:#b9c7b7;--pf-paper:#f1f0e5;width:min(1120px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:min(900px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #9dad98;border-radius:13px;background:#f7f4e9;color:var(--pf-ink);overflow:hidden;font-family:var(--font)}
dialog.program-flowchart[open]{display:flex;flex-direction:column}
dialog.program-flowchart::backdrop{background:#20332bc4;backdrop-filter:blur(2px)}
.program-flowchart *{box-sizing:border-box}
.program-flowchart button{font:inherit;cursor:pointer}
.program-flowchart button:focus-visible,.program-flowchart [tabindex]:focus-visible,.program-flowchart summary:focus-visible{outline:3px solid #b95532;outline-offset:3px}
.program-flowchart .pf-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex:none;padding:19px 24px 17px;background:#e6ecda;border-bottom:1px solid #b8c9ab}
.program-flowchart .pf-kicker{margin:0 0 5px;font:10px var(--font);letter-spacing:1.4px;color:#865638}
.program-flowchart .pf-header h2{font-size:21px;line-height:1.5;margin:0;font-weight:750;color:#284533}
.program-flowchart .pf-lesson{font-size:11px;line-height:1.6;color:#52684e;margin:5px 0 0}
.program-flowchart .pf-close{display:inline-flex;align-items:center;gap:14px;border:1px solid #9ead90;border-radius:8px;background:#f7f5e8;color:#344d31;min-height:40px;padding:7px 12px;white-space:nowrap;font-size:12px;font-weight:600;flex:none}
.program-flowchart .pf-close:hover{background:#d7e5c9}
.program-flowchart .pf-close span{font-size:22px;font-weight:400;line-height:1}
.program-flowchart .pf-top{padding:12px 24px 10px;border-bottom:1px solid #c6cebb;background:#f1f1e3;flex:none}
.program-flowchart .pf-top>p{font-size:12px;line-height:1.7;margin:0 0 9px;color:#54644c}
.program-flowchart .pf-legend{display:flex;flex-wrap:wrap;gap:8px 21px;font-size:11px;color:#4d604b;align-items:center}
.program-flowchart .pf-legend>span{display:inline-flex;align-items:center;gap:8px}
.program-flowchart .pf-legend i{display:inline-block;width:21px;height:13px;background:#bdd5de;border:1.5px solid #5d8998;border-radius:4px}
.program-flowchart .pf-legend .pf-legend-decision{width:13px;height:13px;background:#d9cfa7;border-color:#977345;border-radius:1px;transform:rotate(45deg);margin:0 4px}
.program-flowchart .pf-legend .pf-legend-subprocess{background:#c8d7b4;border:3px double #648051;border-radius:3px}
.program-flowchart .pf-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:10px;font-size:11px;color:#8b927d}
.program-flowchart .pf-breadcrumbs button{border:1px solid transparent;border-radius:6px;padding:4px 9px;background:#e0e8d2;color:#345735;min-height:28px;max-width:240px;text-align:left;overflow-wrap:anywhere;line-height:1.5}
.program-flowchart .pf-breadcrumbs button:hover{border-color:#92ae7c;background:#d1e0bf}
.program-flowchart .pf-breadcrumbs [aria-current]{background:#314e39;color:#fbf8e9;border-color:#314e39}
.program-flowchart .pf-toolbar{display:flex;flex:none;align-items:center;justify-content:space-between;gap:10px;padding:9px 24px;border-bottom:1px solid #bdcbb4;background:#e7ecdc}
.program-flowchart .pf-scope-title{font-size:11px;line-height:1.5;margin:0;font-weight:600;color:#49633f}
.program-flowchart .pf-zoom{display:flex;align-items:center;gap:5px;flex:none}
.program-flowchart .pf-zoom button{font-size:11px;min-height:29px;min-width:29px;border:1px solid #b3c3a4;border-radius:5px;background:#f1f2e2;padding:3px 8px;color:#395331;white-space:nowrap}
.program-flowchart .pf-zoom button:hover{background:#d4e1bf}
.program-flowchart .pf-zoom output{font:11px var(--font);width:42px;text-align:center;color:#3f5937}
.program-flowchart .pf-viewport{flex:1;min-height:150px;overflow:auto;overscroll-behavior:contain;background-color:#edeedc;background-image:radial-gradient(#bec8b7 .8px,transparent .8px);background-size:18px 18px;scrollbar-width:thin;scrollbar-color:#a1b08e #e8edd9;position:relative}
.program-flowchart .pf-canvas{min-width:100%;width:max-content;padding:12px;display:flex;justify-content:center;align-items:flex-start}
.program-flowchart .pf-svg{display:block;max-width:none!important;flex:none;font-family:var(--font);overflow:visible}
.program-flowchart .pf-edge{fill:none;stroke:#64736b;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.program-flowchart .pf-edge-back,.program-flowchart .pf-edge-wait{stroke:#8d7751}
.program-flowchart .pf-edge-fault,.program-flowchart .pf-edge-terminal{stroke:#9f715b;stroke-dasharray:5 4}
.program-flowchart .pf-edge-label rect{fill:#f0efdd;stroke:#cbd1b8;stroke-width:.6}
.program-flowchart .pf-edge-label text{fill:#4b5b40;font-size:11px;font-weight:600}
.program-flowchart .pf-node>rect,.program-flowchart .pf-node>polygon{stroke-width:1.5;stroke:#5d8290;fill:#c9dee6}
.program-flowchart .pf-node>text{fill:#24434e;font-size:13px;font-weight:600;pointer-events:none}
.program-flowchart .pf-node-decision>polygon{fill:#e4d5ac;stroke:#a3864f}
.program-flowchart .pf-node-decision>text{fill:#614a25;font-size:12.5px}
.program-flowchart .pf-node-loop>rect{fill:#e7c7aa;stroke:#a8754f}
.program-flowchart .pf-node-loop>text{fill:#6e4529}
.program-flowchart .pf-node-start>rect{fill:#315e49;stroke:#244c39}
.program-flowchart .pf-node-start>text{fill:#fffdf0}
.program-flowchart .pf-node-end>rect{fill:#dddaca;stroke:#8a907b}
.program-flowchart .pf-node-end>text{fill:#485141}
.program-flowchart .pf-tone-memory>rect{fill:#dad0e7;stroke:#9681ac}
.program-flowchart .pf-tone-memory>text{fill:#5a456d}
.program-flowchart .pf-tone-wait>rect{fill:#e4d7b5;stroke:#a58a57}
.program-flowchart .pf-tone-wait>text{fill:#67512d}
.program-flowchart .pf-node-join>circle{fill:#647b59;stroke:#f0f0df;stroke-width:2}
.program-flowchart .pf-node-subprocess{cursor:pointer;outline:none}
.program-flowchart .pf-node-subprocess>rect{fill:#cedeb9;stroke:#739353;stroke-width:1.8}
.program-flowchart .pf-node-subprocess>text{fill:#35562d}
.program-flowchart .pf-subprocess-bars{stroke:#789458;fill:none;stroke-width:1.4;pointer-events:none}
.program-flowchart .pf-open-label{font-size:11px;font-weight:700;fill:#8b4c2e;text-decoration:underline;text-underline-offset:3px}
.program-flowchart .pf-node-subprocess:hover>rect{fill:#b8d59a;stroke:#4b7130;stroke-width:2.3}
.program-flowchart .pf-node-subprocess:focus-visible>rect{stroke:#b45431;stroke-width:4}
.program-flowchart .pf-footer{flex:none;max-height:180px;overflow:auto;padding:10px 24px 13px;border-top:1px solid #bcc9b0;background:#e9eddc;font-size:11px;line-height:1.7;color:#586b4b}
.program-flowchart .pf-scroll-hint{font-size:10px;color:#69785d;margin:0 0 5px}
.program-flowchart .pf-notices p{margin:3px 0}
.program-flowchart .pf-text-version{margin-top:7px;border-top:1px solid #c4d0b8;padding-top:6px}
.program-flowchart .pf-text-version summary{cursor:pointer;color:#3c5d31;font-weight:600}
.program-flowchart .pf-text-version>div{padding:8px 0 4px;color:#425e36}
.program-flowchart .pf-text-version ol{margin:0;padding-left:24px}
.program-flowchart .pf-text-version ul{margin:3px 0 8px;padding-left:18px;list-style:disc}
.program-flowchart .pf-text-version li>span{display:block;font-size:10px;color:#6e795d}
@media(max-width:650px){dialog.program-flowchart{width:calc(100vw - 12px);max-width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:10px}.program-flowchart .pf-header{padding:13px 14px;gap:9px}.program-flowchart .pf-header h2{font-size:17px}.program-flowchart .pf-lesson{font-size:10px}.program-flowchart .pf-close{padding:6px 9px;gap:8px;font-size:11px;min-height:38px}.program-flowchart .pf-top{padding:10px 14px 8px}.program-flowchart .pf-top>p{font-size:11px;margin-bottom:7px}.program-flowchart .pf-legend{gap:6px 13px;font-size:10px}.program-flowchart .pf-breadcrumbs button{max-width:185px;font-size:10px;padding:3px 7px}.program-flowchart .pf-toolbar{padding:8px 12px;flex-wrap:wrap;gap:6px}.program-flowchart .pf-scope-title{font-size:10px}.program-flowchart .pf-zoom{margin-left:auto}.program-flowchart .pf-zoom button{font-size:10px;padding:4px 6px;min-height:30px}.program-flowchart .pf-footer{padding:8px 14px 10px;max-height:150px;font-size:10px}.program-flowchart .pf-scroll-hint{font-size:9px}.program-flowchart .pf-canvas{padding:5px}}
@media(prefers-reduced-motion:reduce){.program-flowchart *{scroll-behavior:auto!important}}

/* Two views of the same program: readable cards first, diagram symbols on demand. */
.program-flowchart [hidden]{display:none!important}
.program-flowchart .pf-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 24px;background:#f7f4e9;border-bottom:1px solid #bdcbb4;flex:none}
.program-flowchart .pf-modes button{display:flex;align-items:center;gap:12px;text-align:left;min-width:0;min-height:62px;padding:10px 15px;border:1px solid #bac5b0;border-radius:10px;background:#ebeddf;color:#43593e}
.program-flowchart .pf-modes button:hover{background:#dfe7d3}
.program-flowchart .pf-modes button[aria-selected="true"]{background:#d4e4cb;border-color:#4f7750;box-shadow:inset 0 -3px #4f7750;color:#254c30}
.program-flowchart .pf-modes svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;flex:none}
.program-flowchart .pf-modes strong{display:block;font-size:15px;line-height:1.5;font-weight:750}
.program-flowchart .pf-modes small{display:block;font-size:11px;line-height:1.5;color:#607052;margin-top:1px}
.program-flowchart .pf-view{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.program-flowchart.pf-simple .pf-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.program-flowchart.pf-simple .pf-top>p{flex:1;min-width:200px;font-size:14px;line-height:1.65;margin-bottom:0;color:#3d5439}
.program-flowchart.pf-simple .pf-breadcrumbs{font-size:12px;margin-top:0}
.program-flowchart.pf-simple .pf-breadcrumbs button{min-height:32px;font-size:12px}
.program-flowchart.pf-simple .pf-toolbar{padding-top:7px;padding-bottom:7px}
.program-flowchart.pf-simple .pf-scope-title{font-size:12px}
.program-flowchart.pf-simple .pf-canvas{display:block;min-width:0;width:100%;padding:14px 18px}
.program-flowchart.pf-simple .pf-viewport{background-color:#f3f3e7;background-image:radial-gradient(#c6ceb9 .65px,transparent .65px);background-size:22px 22px}
.program-flowchart.pf-simple .pf-footer{max-height:108px;font-size:12px;line-height:1.6;padding-top:8px;padding-bottom:9px}
.program-flowchart.pf-simple .pf-scroll-hint{font-size:11px;color:#536448;margin-bottom:0}
@media(max-width:650px){
  .program-flowchart .pf-modes{padding:9px 12px;gap:7px}
  .program-flowchart .pf-modes button{padding:9px 10px;gap:7px;min-height:62px;border-radius:8px}
  .program-flowchart .pf-modes svg{width:23px;height:23px}
  .program-flowchart .pf-modes strong{font-size:13px}
  .program-flowchart .pf-modes small{font-size:10px}
  .program-flowchart.pf-simple .pf-top>p{font-size:13px}
  .program-flowchart.pf-simple .pf-breadcrumbs button{font-size:11px;min-height:31px}
  .program-flowchart.pf-simple .pf-canvas{padding:10px 8px}
  .program-flowchart.pf-simple .pf-footer{font-size:11px;max-height:100px}
  .program-flowchart.pf-simple .pf-scroll-hint{font-size:10px}
}
