/* RefPlanner v1.1: isolated application navigation and visual architecture builder */
.rp-app .rp-nav{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;width:100%!important}.rp-app .rp-nav button{display:flex!important;position:static!important;width:100%!important;margin:0!important;border:0!important;background:transparent!important;color:#8eb0c7!important;text-align:left!important;border-radius:9px!important;padding:13px 15px!important;font-size:14px!important;line-height:1.25!important;cursor:pointer!important;transform:none!important}.rp-app .rp-nav button:hover,.rp-app .rp-nav button.active{background:#123a50!important;color:#fff!important;box-shadow:inset 3px 0 var(--rp-green)!important}.rp-app .rp-nav button.active{font-weight:800!important}
.rp-builder{display:grid;grid-template-columns:230px 1fr;gap:15px}.rp-palette{padding:18px}.rp-palette h3{margin-bottom:6px}.rp-palette>p{color:var(--rp-muted);font-size:11px;line-height:1.5;margin:0 0 15px}.rp-palette-list{display:grid;gap:8px}.rp-palette-unit{border:1px solid #244a61!important;background:#0d2a3c!important;color:#dcebf4!important;border-radius:8px!important;padding:11px 12px!important;cursor:grab!important;font-size:12px!important;font-weight:750!important;text-align:left!important}.rp-palette-unit:hover{border-color:var(--rp-green)!important;color:var(--rp-green)!important}
.rp-canvas-panel{min-height:480px;padding:0;overflow:hidden}.rp-canvas-head{display:flex;justify-content:space-between;align-items:center;padding:16px 19px;border-bottom:1px solid var(--rp-line)}.rp-canvas-head h3{margin:0}.rp-canvas-head small{color:var(--rp-muted)}.rp-canvas{min-height:410px;position:relative;display:flex;align-items:center;gap:0;overflow:auto;padding:70px 35px;background-color:#071b29;background-image:linear-gradient(#15324655 1px,transparent 1px),linear-gradient(90deg,#15324655 1px,transparent 1px);background-size:24px 24px}.rp-canvas.dragover{box-shadow:inset 0 0 0 2px var(--rp-green);background-color:#092536}
.rp-flow-node{position:relative;flex:0 0 158px;min-height:105px;border:1px solid #2a617f;background:#0d3045;border-radius:11px;padding:17px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 12px 26px #0004}.rp-flow-node.source{border-color:#2c9c75}.rp-flow-node.product{border-color:#b17f2c}.rp-flow-node b{font-size:13px}.rp-flow-node small{color:#76a0b9;font-size:10px;margin-top:7px;line-height:1.4}.rp-flow-node button{position:absolute;right:6px;top:5px;border:0!important;background:transparent!important;color:#7193a9!important;cursor:pointer;font-size:16px}.rp-flow-node button:hover{color:var(--rp-red)!important}.rp-connector{flex:0 0 62px;height:2px;background:linear-gradient(90deg,var(--rp-green),#4ca7cf);position:relative}.rp-connector:after{content:'›';position:absolute;right:-2px;top:-17px;color:#74dcb8;font-size:26px}.rp-builder-actions{display:flex;gap:8px}.rp-architecture-summary{margin-top:15px;color:#83a2b6;font-size:12px}
@media(max-width:1050px){.rp-builder{grid-template-columns:1fr}.rp-palette-list{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){.rp-app .rp-nav{flex-direction:row!important;overflow:auto}.rp-app .rp-nav button{min-width:105px!important}.rp-palette-list{grid-template-columns:repeat(2,1fr)}.rp-canvas{padding:55px 20px}}

/* v1.2 free-layout node and stream editor */
.rp-freecanvas{height:620px;position:relative;overflow:auto;background-color:#071b29;background-image:linear-gradient(#15324655 1px,transparent 1px),linear-gradient(90deg,#15324655 1px,transparent 1px);background-size:24px 24px}.rp-freecanvas.dragover{box-shadow:inset 0 0 0 2px var(--rp-green)}.rp-stage{position:relative;width:1800px;height:900px;transform-origin:0 0}.rp-streams{position:absolute;inset:0;z-index:1;overflow:visible}.rp-edge path{fill:none;stroke:#49d6a4;stroke-width:2}.rp-edge path.hit{stroke:transparent;stroke-width:16;cursor:pointer}.rp-edge:hover path:not(.hit){stroke:#f6a81a;stroke-width:3}.rp-edge text{fill:#91b1c5;font-size:11px;text-anchor:middle;paint-order:stroke;stroke:#071b29;stroke-width:4px;stroke-linejoin:round}.rp-gnode{position:absolute;z-index:2;width:170px;min-height:110px;border:1px solid #2a617f;background:#0d3045;border-radius:11px;padding:20px 18px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 12px 26px #0005;cursor:move;user-select:none}.rp-gnode.feed{border-color:#2c9c75}.rp-gnode.product{border-color:#b17f2c}.rp-gnode.selected{box-shadow:0 0 0 2px var(--rp-green),0 12px 30px #0007}.rp-gnode b{font-size:14px}.rp-gnode small{color:#76a0b9;font-size:10px;margin-top:7px;line-height:1.5}.rp-node-delete{position:absolute;right:5px;top:3px;border:0!important;background:transparent!important;color:#7e9bad!important;font-size:17px!important;cursor:pointer}.rp-node-delete:hover{color:var(--rp-red)!important}.rp-port{position:absolute;top:47px;width:15px;height:15px;border-radius:50%;background:#071b29;border:3px solid #5adbb0;cursor:crosshair;z-index:4}.rp-port.in{left:-8px}.rp-port.out{right:-8px}.rp-port:hover,.rp-port.active{background:#f6a81a;border-color:#fff;transform:scale(1.18)}.rp-connect-help{margin-top:17px;padding:11px;border:1px solid #245069;border-radius:8px;color:#7fdcb8;font-size:10px;line-height:1.6}.rp-properties{margin-top:15px}.rp-properties h3{margin-bottom:15px}.rp-builder-actions .rp-btn{padding:8px 11px}
@media(max-width:700px){.rp-freecanvas{height:500px}.rp-builder-actions{flex-wrap:wrap}.rp-canvas-head{align-items:flex-start;gap:10px}}

/* v1.3 named process ports and live stream rates */
.rp-output-list{position:absolute;inset:0;pointer-events:none}.rp-output-row{position:absolute;right:0;height:22px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.rp-output-row em{position:absolute;right:14px;white-space:nowrap;color:#6f9cb6;font-size:9px;font-style:normal;transform:translateY(-13px)}.rp-output-row .rp-port{top:0;right:-8px;pointer-events:auto}.rp-gnode{overflow:visible}.rp-edge text{font-size:10px}.rp-edge path:first-of-type{marker-end:url(#rp-arrow)}

/* v1.4 expandable workspace */
.rp-app{grid-template-columns:var(--rp-sidebar-width,270px) minmax(0,1fr)!important;transition:grid-template-columns .2s ease}.rp-sidebar{position:sticky}.rp-brand{position:relative}.rp-brand #rp-sidebar-toggle{position:absolute;right:-15px;top:7px;width:28px;height:34px;border:1px solid #285169;background:#0b293b;color:#8fdabf;border-radius:7px;cursor:pointer;font-size:20px}.rp-sidebar-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:20}.rp-sidebar-resizer:hover{background:#45daa255}.rp-app.sidebar-collapsed{--rp-sidebar-width:76px!important}.rp-app.sidebar-collapsed .rp-sidebar{padding-left:12px;padding-right:12px}.rp-app.sidebar-collapsed .rp-brand{margin-left:0;margin-right:0}.rp-app.sidebar-collapsed .rp-brand>div:not(.rp-mark),.rp-app.sidebar-collapsed .rp-nav span,.rp-app.sidebar-collapsed .rp-sidefoot,.rp-app.sidebar-collapsed .rp-sidebar-resizer{display:none}.rp-app.sidebar-collapsed .rp-brand #rp-sidebar-toggle{right:-7px;top:54px}.rp-app.sidebar-collapsed .rp-nav button{justify-content:center!important;padding:13px 5px!important;min-height:43px}.rp-app.sidebar-collapsed .rp-nav button:after{content:attr(title);font-size:9px;writing-mode:vertical-rl;display:none}.rp-palette{position:relative;transition:width .2s}.rp-palette #rp-palette-toggle{position:absolute;right:8px;top:8px;width:28px;height:32px;border:1px solid #285169;background:#0b293b;color:#8fdabf;border-radius:7px;cursor:pointer;font-size:20px;z-index:2}.rp-builder.palette-collapsed{grid-template-columns:56px 1fr}.rp-builder.palette-collapsed .rp-palette{padding:0}.rp-builder.palette-collapsed .rp-palette-content{display:none}.rp-builder.palette-collapsed #rp-palette-toggle{right:13px;top:15px}.rp-canvas-panel:fullscreen{width:100vw;height:100vh;border-radius:0;background:#071b29;padding:0}.rp-canvas-panel:fullscreen .rp-freecanvas{height:calc(100vh - 78px)}.rp-canvas-panel:fullscreen .rp-canvas-head{height:78px}.rp-canvas-panel:fullscreen #rp-fullscreen:after{content:' — Esc to exit'}.rp-canvas-panel:fullscreen .rp-stage{width:2400px;height:1400px}
@media(max-width:700px){.rp-app{display:block!important}.rp-sidebar-resizer,#rp-sidebar-toggle{display:none!important}.rp-builder.palette-collapsed{grid-template-columns:1fr}.rp-builder.palette-collapsed .rp-palette{display:none}}
.rp-app.sidebar-collapsed .rp-nav button:after{content:attr(data-short)!important;font-size:12px!important;font-weight:900!important;writing-mode:horizontal-tb!important;display:block!important}

/* v1.5 resizable process-unit nodes */
.rp-gnode{box-sizing:border-box;min-width:150px;max-width:520px;max-height:520px}
.rp-gnode>.rp-port.in{top:50%;transform:translateY(-50%)}
.rp-gnode>.rp-port.in:hover,.rp-gnode>.rp-port.in.active{transform:translateY(-50%) scale(1.18)}
.rp-node-resize{position:absolute;right:3px;bottom:3px;width:18px;height:18px;cursor:nwse-resize;z-index:7;border-right:2px solid #5adbb0;border-bottom:2px solid #5adbb0;border-radius:0 0 7px 0;opacity:.8;touch-action:none}
.rp-node-resize:before,.rp-node-resize:after{content:'';position:absolute;right:3px;bottom:3px;width:8px;height:1px;background:#5adbb0;transform:rotate(-45deg);transform-origin:right center}
.rp-node-resize:after{right:7px;bottom:7px;width:5px}
.rp-node-resize:hover{opacity:1;border-color:#fff}

/* v1.6 unit configuration and yield editor */
.rp-config-layout{display:grid;grid-template-columns:minmax(230px,310px) minmax(0,1fr);gap:16px}.rp-config-units{padding:18px;max-height:680px;overflow:auto}.rp-config-units>p{color:#7f9fb4;font-size:12px;line-height:1.55}.rp-config-unit{display:block;width:100%;margin:7px 0;padding:12px 13px;text-align:left;border:1px solid #244f68;background:#0c2d40;color:#fff;border-radius:9px;cursor:pointer}.rp-config-unit:hover,.rp-config-unit.active{border-color:#45daa2;background:#123d51;box-shadow:inset 3px 0 #45daa2}.rp-config-unit b,.rp-config-unit small{display:block}.rp-config-unit small{margin-top:4px;color:#75a0ba}.rp-yield-editor{padding:22px}.rp-config-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.rp-config-head h3{margin:4px 0}.rp-config-head small{color:#7fa2b9}.rp-yield-total{padding:9px 13px;border-radius:18px;font-weight:800;white-space:nowrap}.rp-yield-total.valid{color:#6ce2b5;background:#0d3c34;border:1px solid #226d59}.rp-yield-total.invalid{color:#ff8998;background:#422432;border:1px solid #7b3b4b}.rp-config-note{padding:12px 14px;margin-bottom:15px;border:1px solid #285269;border-radius:8px;background:#0a2637;color:#8fb0c4;font-size:12px}.rp-yield-table td small{display:block;color:#6f94aa;font-size:10px;margin-top:3px}.rp-yield-input{width:120px!important;padding:9px!important;border:1px solid #2a5a73!important;background:#071e2c!important;color:#fff!important;border-radius:7px!important}.rp-config-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:18px}.rp-config-actions .rp-btn:disabled{opacity:.4;cursor:not-allowed}.rp-config-status{margin:14px 0 0;padding:10px 12px;border-radius:7px;font-size:12px}.rp-config-status.valid{color:#68ddb0;background:#0a342d}.rp-config-status.invalid{color:#ff8797;background:#3a202b}
@media(max-width:900px){.rp-config-layout{grid-template-columns:1fr}.rp-config-units{max-height:280px}}

/* v1.7 compact acronym-only flowsheet nodes */
.rp-palette-unit small{display:none!important}.rp-palette-unit{min-height:42px!important;padding:10px 13px!important}
.rp-palette-feed{border-color:#2c9c75!important;background:#0b382f!important;color:#67e1b2!important;position:sticky;top:0;z-index:1}.rp-feed-summary{margin:14px 0 0;padding:11px 13px;border-left:3px solid var(--rp-green);background:#0a2e31;color:#82b8ae;font-size:12px}.rp-feed-summary b{color:#65e2b4}
.rp-gnode.compact{min-width:80px!important;padding:12px 9px;justify-content:flex-start;container-type:inline-size}.rp-gnode.compact>b{font-size:15px;line-height:1.2;margin-top:9px}.rp-gnode.compact>small{font-size:9px;margin-top:6px}.rp-gnode.compact .rp-output-row{height:18px}.rp-gnode.compact .rp-output-row em{font-size:8px;right:13px;transform:translateY(-10px)}.rp-gnode.compact .rp-port{width:13px;height:13px;border-width:2px}.rp-gnode.compact .rp-port.in{left:-7px}.rp-gnode.compact .rp-output-row .rp-port{right:-7px}.rp-gnode.compact .rp-node-delete{font-size:14px!important;line-height:1}
@container(max-width:115px){.rp-gnode.compact .rp-output-row em{display:none}}

/* v1.8 refinery-wide mass-balance validation */
.rp-pill.rp-pill-bad{color:#ff8d9c;background:#412330;border-color:#7b3949}.rp-mb-summary{margin-top:15px;border-left:4px solid #45daa2}.rp-mb-summary h3{margin:0 0 7px}.rp-mb-summary p{margin:0;color:#86a6b9}.rp-mb-table td small{display:block;color:#7194aa;margin-top:3px}.rp-mb-table .rp-row-warning{background:#321f2955}.rp-mb-state{display:inline-block;max-width:290px;padding:6px 9px;border-radius:12px;font-size:10px;line-height:1.35}.rp-mb-state.ok{color:#68deb0;background:#0c3b31}.rp-mb-state.bad{color:#ff8c9a;background:#472634}.rp-mb-legend{margin-top:12px;color:#7397ad;font-size:11px}

/* v2.0 instance-based unit configuration */
.rp-node-config{position:absolute;left:5px;top:3px;border:0!important;background:transparent!important;color:#7e9bad!important;font-size:13px!important;line-height:1;cursor:pointer;z-index:6}.rp-node-config:hover{color:var(--rp-green)!important;transform:rotate(25deg)}
.rp-capacity-config{margin:16px 0;padding:17px;border:1px solid #28546d;border-radius:10px;background:#092536}.rp-capacity-config h4{margin:0 0 14px;font-size:15px}.rp-capacity-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:11px;align-items:stretch}.rp-capacity-stat{display:flex;flex-direction:column;justify-content:center;padding:11px 12px;border:1px solid #244d64;border-radius:8px;background:#0b2c3e}.rp-capacity-stat span{color:#78a0b8;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.rp-capacity-stat b{margin-top:6px;font-size:14px}.rp-capacity-stat.overload{border-color:#a8495d;background:#3b2230;color:#ff8999}.rp-capacity-alert{margin:12px 0 0;padding:10px 12px;border-radius:7px;font-size:11px}.rp-capacity-alert.ok{color:#6ce1b3;background:#0b382f}.rp-capacity-alert.overload{color:#ff8999;background:#442431}.rp-capacity-config .rp-field input{min-width:0;width:100%}
@media(max-width:1200px){.rp-capacity-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}

/* v2.2 revenue pricing models */
.rp-pricing-model{margin-bottom:15px}.rp-pricing-head{display:flex;align-items:end;justify-content:space-between;gap:24px}.rp-pricing-head h3{margin:3px 0 0}.rp-pricing-head .rp-field{min-width:280px}.rp-pricing-explain{display:grid;grid-template-columns:minmax(210px,280px) 1fr;gap:22px;align-items:center;margin-top:17px;padding:15px;border:1px solid #244d64;border-radius:9px;background:#092536}.rp-pricing-explain>p{margin:0;color:#8db0c3;line-height:1.65}.rp-pricing-explain strong{color:#62dfaf}.rp-product-pricing{overflow:auto}.rp-price-input{display:flex;align-items:center;gap:5px;min-width:150px}.rp-price-input input{width:92px!important;padding:8px!important}.rp-price-input span,.rp-price-input small{color:#78a0b8}.rp-pricing-footnote{color:#7397ad;font-size:11px;margin:10px 2px}.rp-product-pricing tfoot th{border-top:1px solid #2c5a73;color:#66dfb0}@media(max-width:800px){.rp-pricing-head{display:block}.rp-pricing-head .rp-field{margin-top:14px;min-width:0}.rp-pricing-explain{grid-template-columns:1fr}}
