.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14161c;--bg-2:#191c24;--panel:#1e222b;--panel-2:#262b36;--line:#2f3542;--line-strong:#414a5c;--text:#e4e7ee;--muted:#98a1b3;--accent:#f2b632;--accent-ink:#1b1503;--link:#7cc0ff;--fluid:#4fd3e6;--idle:#f0a04b;--error:#ff6b6b;--ok:#5fd08a;--leaf:#b794f6;--shadow:0 10px 40px #0000008c;--gs:2px;--font-ui:system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mc:"Minecraft", "Segoe UI", system-ui, sans-serif;--mc-text:calc(var(--gs) * 8);--mc-small:10px;--ts:1px;font-family:var(--font-ui)}:root.mc-font{--mc-small:calc(var(--gs) * 4);--ts:var(--gs)}@media (prefers-color-scheme:light){:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eceff4;--bg-2:#e3e7ee;--panel:#fff;--panel-2:#f1f3f7;--line:#d4d9e3;--line-strong:#b4bccb;--text:#1b1f27;--muted:#5c6577;--accent:#b97f00;--accent-ink:#fff;--link:#1c6ccc;--fluid:#08839b;--idle:#b3600a;--error:#c62828;--ok:#1c8a4a;--leaf:#7c3aed;--shadow:0 10px 40px #141e3240}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;line-height:1.4}.app{max-width:1480px;margin:0 auto;padding:0 16px 32px}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 0;display:flex}.topbar .logo{border-radius:6px;display:block}.topbar h1{font:24px/1 var(--font-mc);color:var(--accent);margin:0}:root:not(.mc-font) .topbar h1{font:700 1.35rem/1 var(--font-ui);letter-spacing:.02em}.topbar label{color:var(--muted);font-size:.85rem}.spacer{flex:1}.muted{color:var(--muted)}.error{color:var(--error)}.columns{grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:18px;margin-top:16px;display:grid}@media (width<=720px){.columns{grid-template-columns:minmax(0,1fr)}}.columns>aside{flex-direction:column;align-self:start;gap:12px;max-height:calc(100vh - 16px);display:flex;position:sticky;top:8px}@media (width<=720px){.columns>aside{max-height:70vh;position:static}}h2,h3,h4{line-height:1.2}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}select,input[type=number],input[type=search]{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:3px 6px}select:hover,input:hover{border-color:var(--line-strong)}:is(button,select,a):focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent);outline:none}button:not([class]),button.small,.more-button,.setup-actions button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 10px}button:not([class]):hover,button.small:hover,.more-button:hover,.setup-actions button:hover{border-color:var(--line-strong);filter:brightness(1.12)}button.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;margin-bottom:8px;padding:6px 14px;font-weight:600}button.primary:hover{filter:brightness(1.1)}button.link{all:unset;cursor:pointer}button.link:focus-visible{outline:2px solid var(--accent)}button.small,h3 button.small{vertical-align:middle;margin-left:8px;padding:2px 8px;font-size:.8rem;font-weight:400}.more-button{margin:10px auto 0;display:block}.remove{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:2px 6px;font-size:1.1rem;line-height:1}.remove:hover{color:var(--error);background:var(--panel-2)}.icon{vertical-align:middle;background-repeat:no-repeat;flex:none;display:inline-block}.icon.layered{position:relative}.icon.layered>span{background-repeat:no-repeat;position:absolute;inset:0}.icon.missing{color:#fff;font:700 12px/1 var(--font-ui);text-shadow:1px 1px #0009;background:#7f7f7f47;border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.icon.missing.fluid{background:#2896dc8c}.icon.circuit{width:calc(var(--gs) * 16);height:calc(var(--gs) * 16);image-rendering:pixelated;background-size:100% 100%}.good .icon,.flow-item .icon,.machine-label .icon,.changes .icon,.tabs .icon,.adjustments .icon,.gt-recipe-title .icon{vertical-align:-3px;margin-right:4px}.tier{letter-spacing:.3px;text-shadow:none;background:#20232b;border-radius:3px;padding:0 5px;font-size:.82em;font-weight:700;display:inline-block}.flow-item{white-space:nowrap;margin-right:10px}.targets{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:none;max-height:58vh;padding:12px;overflow-y:auto}.targets h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:.8rem}.targets>ul{margin:0 0 8px;padding:0;list-style:none}.targets>ul>li{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:3px 0;display:grid}button.link.target-name{align-items:center;gap:8px;min-width:0;display:flex}.target-name .good{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rate-input{white-space:nowrap;color:var(--muted);font-size:.85rem}.targets input{width:76px}.note{font-size:.82rem}.adjustments h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 4px;font-size:.8rem}.adjustments ul{margin:0 0 8px;padding:0;font-size:.85rem;list-style:none}.adjustments li{justify-content:space-between;align-items:baseline;gap:6px;padding:1px 0;display:flex}.search{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;flex:0 auto;min-height:0;padding:10px;display:flex}.search input{border-radius:8px;padding:8px 10px}.search ul{min-height:0;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.search ul:empty{margin:0}.search li button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:6px;align-items:center;gap:8px;width:100%;padding:3px 6px;display:flex}.search li button:hover,.search li button:focus-visible{background:var(--panel-2)}.search-text{flex-direction:column;min-width:0;display:flex}.search-text>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search small{color:var(--muted);font-size:.72rem}.good{color:var(--link);text-decoration:none}a.good:hover{text-decoration:underline}.good.fluid{color:var(--fluid)}.tag-members button.link.more{color:var(--accent);margin-left:6px;font-size:.85em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:12px;display:flex}.tabs button{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:7px 14px;overflow:hidden}.tabs button:hover{color:var(--text);background:var(--panel)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.item-head{align-items:center;gap:14px;margin-bottom:8px;display:flex}.item-head-icon{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex:none;place-items:center;width:80px;height:80px;display:grid}.item-head h2{margin:0;font-size:1.35rem}.item-head h2.fluid{color:var(--fluid)}.item-view h3{margin:18px 0 8px;font-size:1rem}.recipe-grid{grid-template-columns:repeat(auto-fill, minmax(calc(var(--gs) * 172), 1fr));align-items:start;gap:10px;display:grid}.recipe-card{min-width:0}.summary{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:10px 14px;display:flex}.summary>div{flex-direction:column;display:flex}.summary>div>.muted{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.summary strong{font-size:1.3rem}.summary .by-tier{flex-flow:wrap;gap:12px;font-size:.9rem}.summary .optimize-button{align-self:center;margin:0 0 0 auto}.plan.solving{opacity:.6}.plan-grid{grid-template-columns:minmax(0,1fr) minmax(200px,290px);gap:16px;display:grid}@media (width<=1000px){.plan-grid{grid-template-columns:minmax(0,1fr)}}.flows-side{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-self:start;max-height:calc(100vh - 16px);padding:4px 12px 12px;position:sticky;top:8px;overflow-y:auto}.flows-side:empty{display:none}.flows-side h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 4px;font-size:.78rem}.rates{margin:0;padding:0;font-size:.9rem;list-style:none}.rates li{padding:1px 0}.amount{font-variant-numeric:tabular-nums}.tree,.tree ul{margin:0;padding-left:0;list-style:none}.tree ul{border-left:1px dashed var(--line-strong);margin-left:7px;padding-left:20px}.tree-row{border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:6px;padding:2px 4px;display:flex}.tree-row:hover{background:var(--panel)}.recipe-row{font-size:.9rem}.toggle{all:unset;cursor:pointer;width:14px;color:var(--muted)}.badge{background:var(--panel-2);border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:8px;padding:0 6px;font-size:.7rem}.badge.raw{color:var(--ok);border-color:var(--ok)}.badge.source{color:var(--idle);border-color:var(--idle)}.badge.producible,.badge.loop,.badge.banned{color:var(--error);border-color:var(--error)}.badge.locked,.badge.active,.badge.target{color:var(--accent);border-color:var(--accent)}.badge.aboveTier{color:var(--idle);border-color:var(--idle)}.badge.leaf{color:var(--leaf);border-color:var(--leaf)}.badge.approx{margin-left:4px}table.machines{border-collapse:collapse;width:100%;font-size:.9rem}table.machines th{text-align:left;border-bottom:1px solid var(--line-strong);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px;font-size:.75rem}table.machines td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 6px}table.machines tbody tr:hover{background:var(--panel)}table.machines .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}table.machines .machine-label .icon{vertical-align:middle;margin-right:8px}.row-action{border:1px solid var(--line-strong);color:var(--muted);opacity:0;background:0 0;border-radius:4px;padding:0 6px;font-size:.72rem}.row-action:hover{color:var(--text);border-color:var(--accent)}.tree-row:hover .row-action,tr:hover .row-action,.row-action:focus-visible,.row-action.configured{opacity:1}@media (hover:none){.row-action{opacity:1}}.row-action.configured{border-color:var(--accent);color:var(--accent)}.item-actions{align-items:baseline;gap:4px;display:inline-flex}.idle{color:var(--idle)}.graph{border:1px solid var(--line);border-radius:10px;flex-direction:column;height:min(75vh,900px);min-height:420px;display:flex;position:relative;overflow:hidden}.graph .react-flow{--xy-background-color:var(--bg-2);--xy-minimap-background-color:var(--panel);--xy-controls-button-background-color:var(--panel);--xy-controls-button-background-color-hover:var(--panel-2);--xy-controls-button-color:var(--text);--xy-controls-button-border-color:var(--line);flex:1}.graph.pending .react-flow{opacity:.4}.graph-pending{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:2px 10px;font-size:.85rem;position:absolute;top:8px;left:50%;transform:translate(-50%)}.graph-footer{border-top:1px solid var(--line);background:var(--panel);align-items:center;gap:16px;padding:5px 10px;font-size:.85rem;display:flex}.graph-footer label{white-space:nowrap}.graph-node{border:1px solid var(--line-strong);background:var(--panel);height:100%;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;line-height:1.35;display:flex;overflow:hidden}.graph-node:hover{border-color:var(--accent)}.graph-text{flex:1;min-width:0}.graph-node.recipe{background:var(--panel-2);border-width:2px}.graph-node.recipe.configured,.graph-node.item.target{border-color:var(--accent)}.graph-node.item.raw{border-color:var(--ok)}.graph-node.item.leaf{border-color:var(--leaf)}.graph-node.item.hub{border-style:dashed}.graph-node.item.fluid .amount{color:var(--fluid)}.graph-title,.graph-detail{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.react-flow__edge-path.flow{stroke:var(--muted);stroke-width:1.5px}.react-flow__edge-path.flow.fluid{stroke:var(--fluid)}.react-flow__edge-path.flow.loop{stroke:var(--idle);stroke-width:2px}.flow-label{background:var(--bg-2);color:var(--muted);white-space:nowrap;pointer-events:none;border-radius:4px;padding:0 3px;font-size:10.5px;line-height:16px;position:absolute}.flow-label.fluid{color:var(--fluid)}.flow-label.loop{color:var(--idle)}.modal-backdrop{z-index:10;background:#0000009e;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);color:var(--text);border:1px solid var(--line-strong);width:min(900px,100%);max-height:calc(100vh - 64px);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;padding:14px 18px;display:flex;overflow-y:auto}.modal>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal h3{align-items:center;gap:8px;margin:0;display:flex}.modal>button{align-self:flex-start;margin-bottom:8px}.modal.setup{width:min(580px,100%)}.setup-grid{gap:10px;margin:8px 0;display:grid}.setup-grid label{color:var(--muted);gap:4px;font-size:.9rem;display:grid}.setup-grid select,.setup-grid input{color:var(--text)}.with-icon{align-items:center;gap:8px;display:flex}.with-icon select{flex:1;min-width:0}.setup-grid fieldset{border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;margin:0;padding:6px 8px;display:flex}.setup-grid fieldset input{width:4em}.setup-result{background:var(--bg-2);border-radius:8px;grid-template-columns:max-content 1fr;gap:4px 12px;margin:8px 0;padding:10px 12px;display:grid}.setup-result dt{color:var(--muted)}.setup-result dd{margin:0}.setup-actions{justify-content:flex-end;gap:8px;display:flex}.modal.optimize{width:min(780px,100%)}.optimize-body{overflow:auto}.optimize-body h4{margin:16px 0 6px}table.score{border-collapse:collapse}table.score th,table.score td{text-align:left;padding:2px 14px 2px 0}table.score td.changed{color:var(--accent);font-weight:600}ul.changes{margin:0;padding-left:18px}ul.changes li{margin:4px 0}.optimize-body .delta{color:var(--accent)}.optimize-body details.batch{margin-top:8px}.optimize-body details.batch summary{cursor:pointer}.optimize-body .disclaimer{color:var(--idle)}.optimize-body .id,.modal .id{color:var(--muted);font-size:.72rem}.exact-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exact-controls label{align-items:center;gap:8px;display:flex}.exact-result p{margin:4px 0}.mc-panel{border:calc(var(--gs) * 4) solid transparent;border-image:url(/gui/emi_panel.png) 4 fill / calc(var(--gs) * 4);image-rendering:pixelated;color:#404040}.slot{width:calc(var(--gs) * 18);height:calc(var(--gs) * 18);image-rendering:pixelated;vertical-align:middle;background:url(/gui/slot.png) 0 0/100% 100% no-repeat;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative}.slot.fluid{background-image:url(/gui/fluid_slot.png)}a.slot:hover:after,.slot.machine:hover:after,.slot.keep:not(a):hover:after,a.slot:focus-visible:after{content:"";inset:var(--gs);pointer-events:none;background:#ffffff80;position:absolute}a.slot:focus-visible{outline:none}.slot-count,.slot-chance,.slot-nc{pointer-events:none;font-family:var(--font-mc);white-space:nowrap;color:#fff;text-shadow:var(--ts) var(--ts) 0 #3f3f3f;z-index:1;font-weight:400;line-height:1;position:absolute}.slot-count{font-size:var(--mc-text);bottom:0;right:0}.slot.fluid .slot-count{font-size:var(--mc-small);right:var(--gs);bottom:var(--gs);text-shadow:calc(var(--gs) / 2) calc(var(--gs) / 2) 0 #3f3f3f}.slot-chance,.slot-nc{left:var(--gs);top:var(--gs);font-size:var(--mc-small);color:#ff5;text-shadow:calc(var(--gs) / 2) calc(var(--gs) / 2) 0 #3f3f15}.slot-nc{color:#5ff;text-shadow:calc(var(--gs) / 2) calc(var(--gs) / 2) 0 #153f3f}:root:not(.mc-font) .slot-count{font-size:12px;font-weight:700}:root:not(.mc-font) .slot.fluid .slot-count,:root:not(.mc-font) .slot-chance,:root:not(.mc-font) .slot-nc{font-size:9px;font-weight:700}.mc-button{font:var(--mc-text)/1 var(--font-mc);color:#fff;text-shadow:var(--ts) var(--ts) 0 #3f3f3f;white-space:nowrap;min-height:calc(var(--gs) * 12);padding:0 calc(var(--gs) * 3);border:calc(var(--gs) * 2) solid transparent;border-image:url(/gui/button.png) 2 fill / calc(var(--gs) * 2);image-rendering:pixelated;background:0 0}.mc-button:hover:not(:disabled),.mc-button:focus-visible{outline:var(--gs) solid #fff;outline-offset:calc(var(--gs) * -1)}.mc-button.use{color:#5f5;text-shadow:var(--ts) var(--ts) 0 #153f15}.mc-button.ban{color:#ffb3b3;text-shadow:var(--ts) var(--ts) 0 #3f1515}.mc-button.ban.on{color:#ff5;text-shadow:var(--ts) var(--ts) 0 #3f3f15}:root:not(.mc-font) .mc-button{font-size:12px;font-weight:600}.mc-badge{font:var(--mc-text)/1 var(--font-mc);white-space:nowrap;color:#fff;text-shadow:var(--ts) var(--ts) 0 #000000b3}.mc-badge.locked{color:#5f5}.mc-badge.active{color:#5ff}.mc-badge.banned{color:#f55}.mc-badge.aboveTier{color:#fa0}:root:not(.mc-font) .mc-badge{font-size:12px;font-weight:700}.gt-recipe{gap:calc(var(--gs) * 2);min-width:0;padding:calc(var(--gs) * 2);font:var(--mc-text)/1.25 var(--font-mc);color:#fff;flex-direction:column;display:flex}.gt-recipe-title{color:#404040;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gt-io{justify-content:center;align-items:center;gap:calc(var(--gs) * 4);min-height:calc(var(--gs) * 38);padding:var(--gs) 0;display:flex}.gt-group{width:calc(var(--w) * 18 * var(--gs));height:calc(var(--h) * 18 * var(--gs));flex:none;position:relative}.gt-cell{left:calc(var(--x) * 18 * var(--gs));top:calc(var(--y) * 18 * var(--gs));display:flex;position:absolute}.gt-progress{width:calc(var(--gs) * 20);height:calc(var(--gs) * 20);background:var(--bar) 0 0 / 100% 200% no-repeat;image-rendering:pixelated;flex:none;position:relative}.gt-progress:after{content:"";background:var(--bar) 0 100% / 100% 200% no-repeat;animation:2.4s steps(20,jump-none) infinite gt-fill;position:absolute;inset:0}.gt-progress.down:after{animation-name:gt-fill-down}@keyframes gt-fill{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes gt-fill-down{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.gt-progress:after{animation:none;display:none}}.gt-info{align-items:flex-end;gap:calc(var(--gs) * 3);display:flex}.gt-lines{min-width:0;text-shadow:var(--ts) var(--ts) 0 #3f3f3f;overflow-wrap:anywhere;flex:1}.gt-data{color:#e0e0e0}.gt-tier{text-shadow:var(--ts) var(--ts) 0 #000000b8;flex:none}:root:not(.mc-font) .gt-recipe{font-size:12.5px;font-weight:700;line-height:1.35}.gt-recipe-foot{align-items:center;gap:calc(var(--gs) * 3);min-height:calc(var(--gs) * 12);display:flex}.gt-recipe-foot .id{color:#5a5a5a;min-width:0;font:10px/1.2 var(--font-ui);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.card-actions{justify-content:flex-end;gap:calc(var(--gs) * 2);flex-wrap:wrap;align-items:center;margin-left:auto;display:inline-flex}.mc-tooltip{z-index:1000;pointer-events:none;max-width:min(440px,100vw - 8px);padding:calc(var(--gs) * 3) calc(var(--gs) * 4);font:var(--mc-text)/1.25 var(--font-mc);color:#fff;text-shadow:var(--ts) var(--ts) 0 #3f3f3f;overflow-wrap:anywhere;clip-path:polygon(var(--gs) 0, calc(100% - var(--gs)) 0, calc(100% - var(--gs)) var(--gs), 100% var(--gs), 100% calc(100% - var(--gs)), calc(100% - var(--gs)) calc(100% - var(--gs)), calc(100% - var(--gs)) 100%, var(--gs) 100%, var(--gs) calc(100% - var(--gs)), 0 calc(100% - var(--gs)), 0 var(--gs), var(--gs) var(--gs));background:#100010f0;position:fixed;top:0;left:0}.mc-tooltip:before{content:"";inset:var(--gs);border:var(--gs) solid;border-image:linear-gradient(#5000ff4f,#28007f4f) 1;position:absolute}.tt-name{margin-bottom:var(--gs)}.tt-dim{color:#aaa;text-shadow:var(--ts) var(--ts) 0 #2a2a2a}.tt-chance{color:#ff5;text-shadow:var(--ts) var(--ts) 0 #3f3f15}.tt-warn{color:#fa0;text-shadow:var(--ts) var(--ts) 0 #3f2a00}.tt-id{color:#555;text-shadow:var(--ts) var(--ts) 0 #151515}.tt-mod{color:#55f;text-shadow:var(--ts) var(--ts) 0 #15153f;font-style:italic}:root:not(.mc-font) .mc-tooltip{text-shadow:none;font-size:13px;line-height:1.4}:root:not(.mc-font) .mc-tooltip *{text-shadow:none}:root:not(.mc-font) .tt-id{color:#8a8a8a}:root:not(.mc-font) .tt-mod{color:#8c8cff}.emi-backdrop{align-items:flex-start;padding:max(16px,5vh) 16px 16px}.emi{filter:drop-shadow(0 12px 30px #0000008c);align-items:flex-start;width:min(1240px,100%);min-height:min(460px,100%);max-height:100%;display:flex}.emi-main{flex-direction:column;flex:1;align-self:stretch;min-width:0;min-height:0;display:flex}.emi-tabs{padding:0 calc(var(--gs) * 4);margin-bottom:calc(var(--gs) * -2);scrollbar-width:none;flex:none;align-items:flex-end;display:flex;position:relative;overflow-x:auto}.emi-tabs::-webkit-scrollbar{display:none}.emi-tab{width:calc(var(--gs) * 24);height:calc(var(--gs) * 22);border-style:solid;border-color:#0000;border-width:calc(var(--gs) * 4) calc(var(--gs) * 4) var(--gs);border-image:url(/gui/emi_tab_off.png) 4 4 1 fill / calc(var(--gs) * 4) calc(var(--gs) * 4) var(--gs);image-rendering:pixelated;background:0 0;flex:none;place-items:center;padding:0;display:grid;position:relative}.emi-tab .icon{margin-top:calc(var(--gs) * -1)}.emi-tab.on{z-index:2;height:calc(var(--gs) * 26);border-width:calc(var(--gs) * 4);border-image:url(/gui/emi_tab_on.png) 4 fill / calc(var(--gs) * 4)}.emi-tab:focus-visible{filter:brightness(1.12);outline:none}.emi-tab:not(.on):hover{filter:brightness(1.08)}.emi-tab.in-use:after{content:"";top:calc(var(--gs) * -1);right:calc(var(--gs) * -1);width:calc(var(--gs) * 3);height:calc(var(--gs) * 3);box-shadow:0 0 0 var(--gs) #153f15;background:#5f5;position:absolute}.emi-stations{z-index:0;margin:calc(var(--gs) * 56) calc(var(--gs) * -2) 0 0;padding-right:var(--gs);flex:none;grid-template-rows:repeat(8,auto);grid-auto-flow:column;display:grid;position:relative}.emi-panel{z-index:1;gap:calc(var(--gs) * 2);min-width:0;padding:var(--gs) calc(var(--gs) * 2) calc(var(--gs) * 2);flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.emi-head{align-items:center;gap:calc(var(--gs) * 4);display:flex}.emi-head-text{flex:1;min-width:0}.emi-head h3{font:var(--mc-text)/1.25 var(--font-mc);color:#404040;text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:400;overflow:hidden}.emi-head p{font:12px/1.3 var(--font-ui);color:#505050;margin:0}.emi-close{font-family:var(--font-ui);padding:0 calc(var(--gs) * 2);align-self:flex-start;font-size:14px;font-weight:700}.emi-nav{justify-content:space-between;align-items:center;gap:calc(var(--gs) * 4);display:flex}.emi-title{text-align:center;min-width:0;font:var(--mc-text)/1.25 var(--font-mc);color:#404040;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:root:not(.mc-font) :is(.emi-title,.emi-head h3){font-size:14px;font-weight:700}.emi-arrow{width:calc(var(--gs) * 12);height:calc(var(--gs) * 12);background:url(/gui/emi_buttons.png) 0 0 / calc(var(--gs) * 256) no-repeat;image-rendering:pixelated;border:0;flex:none;padding:0}.emi-arrow.right{background-position-x:calc(var(--gs) * -12)}.emi-arrow:hover,.emi-arrow:focus-visible{background-position-y:calc(var(--gs) * -12);outline:none}.emi-arrow:disabled{background-position-y:calc(var(--gs) * -24)}.emi-recipes{align-content:start;gap:calc(var(--gs) * 3);grid-template-columns:repeat(auto-fit, minmax(calc(var(--gs) * 164), calc(var(--gs) * 232)));min-height:0;padding:var(--gs);scrollbar-color:#8b8b8b #c6c6c6;scrollbar-width:thin;flex:1;justify-content:center;display:grid;overflow-y:auto}.emi-recipes .gt-recipe{box-shadow:inset var(--gs) var(--gs) 0 #8b8b8b, inset calc(var(--gs) * -1) calc(var(--gs) * -1) 0 #fff;padding:calc(var(--gs) * 3)}.gt-recipe.locked{background:#55ff551a;box-shadow:inset 0 0 0 var(--gs) #2ea043!important}.gt-recipe.active{background:#55ffff14;box-shadow:inset 0 0 0 var(--gs) #2f8fa8!important}.gt-recipe.banned .gt-io,.gt-recipe.banned .gt-info{opacity:.45;filter:grayscale(.7)}.gt-recipe.aboveTier .gt-io{opacity:.8}@media (width<=700px){.emi-backdrop{padding:6px}.emi-stations,.emi-head p{display:none}}
