@font-face{font-family:NaikaiFont-Bold;src:url(/fonts/NaikaiFont-Bold.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--grid-size: 40px;--gray-light: #e5e1e1;--gray: #c4c1c1;--gray-dark: #5f5d5d;--yellow-light: #f5f08a;--yellow: #fffa00;--black-light: #3d3d3d;--black: rgb(29, 29, 29, .8);--black-dark: #121212;--green: #abcd41;--orange-light: #ffcc00;--orange: #e79c3a;--orange-dark: #d17700}body{margin:0;padding:0;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background-color:var(--gray-light);color:#fff;overflow:hidden}*{box-sizing:border-box}.gray-btn{background-color:var(--gray-light);border:2px solid var(--gray-light);box-shadow:inset 0 0 2px #000c,0 4px 4px #00000080;border-radius:999px;min-width:120px;color:var(--gray-dark);font-weight:700;transition:all .2s}.gray-btn:hover{transform:translateY(-2px)}.yellow-btn{background-color:var(--yellow);border:2px solid var(--yellow);box-shadow:inset 0 0 2px #000c,0 4px 4px #00000080;border-radius:999px;min-width:120px;color:var(--gray-dark);font-weight:700;transition:all .2s}.yellow-btn:hover{transform:translateY(-2px)}html[lang=zh-CN] body{font-family:Microsoft YaHei,SimHei,Noto Sans SC,sans-serif!important}.machine-container{user-select:none;-webkit-user-select:none;position:absolute;left:calc(var(--x) * var(--grid-size));top:calc(var(--y) * var(--grid-size));width:calc(var(--w) * var(--grid-size));height:calc(var(--h) * var(--grid-size));padding:3px;z-index:10}.machine-container:hover{z-index:2000}.machine-body{width:100%;height:100%;background-color:transparent;border:3px solid var(--gray-dark);border-radius:1px;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:none;box-sizing:border-box}.machine-body.has-skin{border:none;background-color:transparent;overflow:visible}.machine-body .machine-skin{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:1;transform-origin:center}.machine-body .machine-toolbar-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:2;opacity:.82;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.machine-body .machine-toolbar-overlay img{width:100%;height:100%;object-fit:contain}.machine-body .machine-conduit-status{position:absolute;top:0;right:0;z-index:8;padding:3px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#181818eb;color:var(--gray-light);font-size:11px;font-weight:700;line-height:1;letter-spacing:.04em;transform-origin:center;pointer-events:none}.machine-body .machine-conduit-status.connected{background:#144a2ef0;color:#dff8e9}.machine-body .machine-conduit-status.disconnected{background:#5b3f1ff0;color:#ffe1c0}.machine-body .machine-label{position:absolute;inset:100% auto auto 100%;background-color:var(--black);color:#fff;padding:4px 8px;border-radius:4px 12px 4px 4px;border-top:4px solid var(--green);font-weight:400;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;z-index:1000;box-shadow:0 2px 4px #0003;font-size:12px}.machine-body .machine-label>div:first-child{font-size:16px}.machine-body:hover .machine-label{opacity:1}.machine-container{border:2px solid transparent;border-radius:2px;box-sizing:border-box}.machine-container:hover{border-color:#fff;box-shadow:0 0 8px #2d2d2d99}.machine-container.conduit-link-target{border-color:#6ec7ffe6;box-shadow:0 0 18px #6ec7ff6b}.machine-container.conduit-link-source{border-color:#ffd763f2;box-shadow:0 0 20px #ffd7636b}.machine-container.conduit-link-blocked{opacity:.38}.machine-container.whole-cell-wiring .machine-skin{z-index:6}.machine-container.whole-cell-wiring .port,.machine-container.whole-cell-wiring .port *{pointer-events:none}.port{position:absolute;width:20px;height:28px;background-color:#c4c1c1;border:1.5px solid var(--gray-dark);border-radius:0;display:flex;align-items:center;justify-content:center;font-size:0;z-index:4}.port.left{justify-content:flex-start;padding:3px 4px 3px 0}.port.right{justify-content:flex-end;padding:3px 0 3px 4px}.port.top{width:28px;height:20px;align-items:flex-start;padding:0 3px 4px}.port.bottom{width:28px;height:20px;align-items:flex-end;padding:4px 3px 0}.port-inner{width:100%;height:100%;background-color:var(--gray-light);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--gray-dark);font-family:monospace;font-weight:700;line-height:1}.machine-port-index{position:absolute;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1.5px solid #1f5d84;background:#f6fbff;color:#1f5d84;font-size:11px;font-weight:800;line-height:1;box-shadow:0 2px 6px #00000038;pointer-events:none}.machine-port-index--right{right:calc(100% + 4px);top:50%;transform:translateY(-50%)}.machine-port-index--left{left:calc(100% + 4px);top:50%;transform:translateY(-50%)}.machine-port-index--bottom{bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.machine-port-index--top{top:calc(100% + 4px);left:50%;transform:translate(-50%)}.machine-port-flow-indicator{position:absolute;min-width:46px;height:22px;display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 4px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#121318f0;color:#f3f7fb;font-size:11px;font-weight:700;line-height:1;box-shadow:0 3px 10px #00000047;pointer-events:none;transform-origin:center;z-index:5}.machine-port-flow-indicator--right{left:calc(100% + 8px);top:50%}.machine-port-flow-indicator--left{right:calc(100% + 8px);top:50%}.machine-port-flow-indicator--bottom{top:calc(100% + 8px);left:50%}.machine-port-flow-indicator--top{bottom:calc(100% + 8px);left:50%}.machine-port-flow-indicator__icon,.machine-port-flow-indicator__fallback{width:14px;height:14px;flex:0 0 14px;border-radius:3px}.machine-port-flow-indicator__icon{object-fit:contain}.machine-port-flow-indicator__fallback{display:inline-flex;align-items:center;justify-content:center;background:#ffffff29;color:inherit;font-size:10px;font-weight:800}.machine-port-flow-indicator__rate{white-space:nowrap}.port.uniform-router-port{border-width:1.5px;border-radius:2px}.port.uniform-router-port.left,.port.uniform-router-port.right{width:10px;height:20px}.port.uniform-router-port.top,.port.uniform-router-port.bottom{width:20px;height:10px}.port.uniform-router-port.left{padding:2px 2px 2px 0}.port.uniform-router-port.right{padding:2px 0 2px 2px}.port.uniform-router-port.top{padding:0 2px 2px}.port.uniform-router-port.bottom{padding:2px 2px 0}.port.uniform-router-port .port-inner svg{width:12px;height:12px}.port.fluid-port{background-color:#84d7ff;border-color:#1f5d84}.port.fluid-port .port-inner{background-color:#e2f6ff}.port.input .port-inner svg,.port.output .port-inner svg{width:100%;height:100%;color:var(--gray);display:block}.port.fluid-port .port-inner svg{color:#1f5d84}.port.shrink-depth,.port.shrink-length{border-width:1px;padding:1px}.port.shrink-depth .port-inner svg,.port.shrink-length .port-inner svg{width:12px;height:12px}.port.shrink-depth.left,.port.shrink-depth.right{width:8px}.port.shrink-depth.top,.port.shrink-depth.bottom{height:8px}.port.shrink-depth .port-inner svg{width:10px;height:10px}.port.shrink-length.left,.port.shrink-length.right{height:12px}.port.shrink-length.top,.port.shrink-length.bottom{width:12px}.port.shrink-length .port-inner svg{width:10px;height:10px}.port.shrink-depth.shrink-length.left{padding:1px 2px 1px 0}.port.shrink-depth.shrink-length.right{padding:1px 0 1px 2px}.port.shrink-depth.shrink-length.top{padding:0 1px 2px}.port.shrink-depth.shrink-length.bottom{padding:2px 1px 0}.port.shrink-depth:not(.shrink-length).left{padding:1px 2px 1px 0}.port.shrink-depth:not(.shrink-length).right{padding:1px 0 1px 2px}.port.shrink-depth:not(.shrink-length).top{padding:0 1px 2px}.port.shrink-depth:not(.shrink-length).bottom{padding:2px 1px 0}.port.left.input .port-inner svg{transform:rotate(0)}.port.top.input .port-inner svg{transform:rotate(90deg)}.port.right.input .port-inner svg{transform:rotate(180deg)}.port.bottom.input .port-inner svg{transform:rotate(270deg)}.port.right.output .port-inner svg{transform:rotate(0)}.port.bottom.output .port-inner svg{transform:rotate(90deg)}.port.left.output .port-inner svg{transform:rotate(180deg)}.port.top.output .port-inner svg{transform:rotate(270deg)}.port.output.clickable{cursor:pointer}.port.output.clickable:hover .port-inner{background:var(--yellow-light)}.port.fluid-port.output.clickable:hover .port-inner{background:#ccefff}.port.output.active{border-color:var(--yellow-light)}.port.output.active .port-inner{background:var(--yellow-light)}.port.fluid-port.output.active{border-color:#6ec7ff}.port.fluid-port.output.active .port-inner{background:#ccefff}.grid-container{width:100%;height:100%;position:relative;overflow:hidden;cursor:crosshair;background-color:var(--gray-light)}.grid-container.wiring-mode{cursor:alias}.grid-container.conduit-link-mode{cursor:pointer}.grid-container.panning{cursor:grabbing}.grid-container.rotating-view{cursor:wait}.zoom-content{position:absolute;top:0;left:0;transform-origin:0 0}.rotation-content{position:relative;width:100%;height:100%;will-change:transform}.grid-background{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background-image:linear-gradient(var(--gray) 1px,transparent 1px),linear-gradient(90deg,var(--gray) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);opacity:.5}.core-grid-boundary{position:absolute;pointer-events:none;border:4px solid var(--black-light);box-sizing:content-box;z-index:3}.connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connections-hit-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.machine-container{z-index:10}.conveyor-line-outline,.conveyor-line-fill,.conveyor-preview-outline,.conveyor-preview-fill,.pipe-line-outline,.pipe-line-fill,.pipe-preview-outline,.pipe-preview-fill{fill:none;stroke-linecap:round;stroke-linejoin:round}.conveyor-line-outline{stroke:var(--gray);stroke-width:24}.conveyor-preview-outline{stroke:var(--gray);stroke-width:20;stroke-dasharray:10 10;opacity:.6}.conveyor-line-fill{stroke:var(--yellow-light);stroke-width:18}.conveyor-preview-fill{stroke:var(--yellow-light);stroke-width:13;stroke-dasharray:10 10;animation:dash 1s linear infinite}.pipe-line-outline{stroke:#142e44d9;stroke-width:12;transition:stroke .14s ease,stroke-width .14s ease,opacity .14s ease}.pipe-line-outline.empty{stroke:#142e4438;stroke-width:8}.pipe-line-fill{stroke:#6ec7ff;stroke-width:6;transition:stroke .14s ease,opacity .14s ease}.pipe-line-fill.empty{stroke:transparent}.pipe-preview-outline{stroke:#142e44d9;stroke-width:10;stroke-dasharray:8 8;opacity:.7}.pipe-preview-fill{stroke:#6ec7ff;stroke-width:4;stroke-dasharray:8 8;animation:dash 1s linear infinite}.connection-hit-line{fill:none;stroke:transparent;stroke-width:28;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:pointer}.pipe-flow-direction{fill:#fffffff0;stroke:#0c1a24a6;stroke-width:1.4;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 2px rgba(12,26,36,.24))}.pipe-flow-direction.empty{fill:#fffffffa;stroke:#142e44b8}@keyframes dash{to{stroke-dashoffset:-20}}.conveyor-preview-outline.invalid.invalid,.conveyor-preview-fill.invalid.invalid,.pipe-preview-outline.invalid.invalid,.pipe-preview-fill.invalid.invalid{stroke:#f44}.machine-ghost{position:absolute;pointer-events:none;z-index:20;background:repeating-linear-gradient(-45deg,#c4c1c1,#c4c1c1 5px,transparent 5px,transparent 10px);border:1px solid #c4c1c1;box-shadow:0 0 10px #fff3}.machine-ghost.has-skin{background:transparent;border:none;box-shadow:none}.machine-ghost.invalid-placement{background:repeating-linear-gradient(-45deg,rgba(255,0,0,.2),rgba(255,0,0,.2) 5px,transparent 5px,transparent 10px);border:4px solid rgba(255,0,0,.2)}.machine-ghost-skin{width:100%;height:100%;object-fit:contain;opacity:.78;transform-origin:center;filter:drop-shadow(0 0 6px rgba(255,255,255,.22))}.ghost-arrow{position:absolute;width:var(--grid-size);height:var(--grid-size);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:25}.ghost-arrow.input-arrow,.ghost-arrow.output-arrow{color:var(--gray)}.ghost-arrow.fluid-arrow{color:#6ec7ff;filter:drop-shadow(0 0 4px rgba(110,199,255,.35))}.selection-box{position:absolute;background-color:#4287f533;border:1px solid rgba(66,135,245,.6);pointer-events:none;z-index:100}.connection-endpoint-handle{position:absolute;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:999px;border:2px solid #4dadf7;background:#fff59df2;box-shadow:0 0 0 2px #12121233;cursor:pointer;z-index:18}.connection-endpoint-handle.fluid{background:#6ec7ff}.connection-endpoint-handle.active{box-shadow:0 0 0 3px #4dadf759}.selected-connection-cell-segment,.selected-connection-cell-cap{pointer-events:none}.selected-connection-cell-cap{fill:var(--yellow-light);stroke:#4dadf7;stroke-width:6;filter:drop-shadow(0 0 6px rgba(77,173,247,.35))}.selected-connection-cell-cap.fluid{fill:#6ec7ff}.machine-container.selected .machine-body{outline:2px solid #4dabf7;box-shadow:0 0 15px #4dabf766;z-index:15}.machine-container.selected.whole-cell-wiring{border-color:#4dabf7;background-color:#4dabf729;box-shadow:inset 0 0 0 999px #4dabf714,0 0 0 1px #4dabf7f2,0 0 15px #4dabf773}.machine-container.selected.whole-cell-wiring .machine-body{outline:none;box-shadow:none;z-index:auto}.conveyor-line-outline.selected{stroke:#4dadf7;stroke-width:30;opacity:.8}.pipe-line-outline.selected,.pipe-line-outline.empty.selected{stroke:#4dadf7;stroke-width:18;opacity:.9}.toolbar-container{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toolbar-container.is-locked{opacity:.45}.toolbar-container.is-locked .toolbar,.toolbar-container.is-locked [role=tablist]{pointer-events:none}.toolbar{display:flex;align-items:center;justify-content:flex-start;min-width:90vw;gap:1rem;padding:.5rem 1rem;background:var(--black-dark);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;pointer-events:auto;z-index:100}.toolbar .section{display:flex;gap:8px}.toolbar .section button{border:2px solid transparent}.toolbar .section button.active{background:var(--black);color:var(--gray-light);border:2px solid var(--gray)}.toolbar .divider{width:2px;height:32px;background:#555}.toolbar .btn-wrap{cursor:pointer}.toolbar .btn-wrap.is-disabled{cursor:default}.toolbar .btn-wrap button{transition:transform .25s cubic-bezier(.4,0,.2,1),background-color .2s ease,color .2s ease}.toolbar .btn-wrap:hover button{transform:translateY(-16px);background:var(--gray-light);color:var(--black-light);border:2px solid var(--gray)}.toolbar .btn-wrap.is-disabled:hover button{transform:none;background:var(--black-light);color:var(--gray-light);border:2px solid var(--black-light)}.toolbar button{background:transparent;border:none;outline:none;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:8px;color:var(--gray-light)}.toolbar .machine-btn{width:150px;height:48px;background:var(--black-light);justify-content:flex-start;gap:8px;border:2px solid var(--black-light)}.toolbar .machine-btn.is-disabled{opacity:.88;cursor:default}.toolbar .machine-btn .icon{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:4px;object-fit:contain;background:linear-gradient(to bottom,var(--black-light) 60%,var(--machine-color) 150%);border-bottom:2px solid var(--machine-color)}.header{position:relative;display:flex;justify-content:space-between;align-items:center;height:60px;padding:0 36px 0 20px;background-color:var(--gray-light);box-shadow:0 4px 10px #0003;flex-shrink:0;z-index:1000;box-sizing:border-box}.header.is-locked .header-middle,.header.is-locked .center-actions,.header.is-locked .actions{opacity:.48}.header.is-locked .center-actions,.header.is-locked .actions{pointer-events:none}.header.is-locked .mode-btn{cursor:not-allowed}.header .logo{display:flex;align-items:center;min-width:220px;position:relative;z-index:2}.header .logo .title{font-size:1.3rem;font-weight:800;letter-spacing:.08em;color:var(--gray-dark)}.header .header-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:2}.header .header-middle .tool-switch{display:inline-flex;align-items:center;gap:8px;padding:4px;border-radius:999px;background:#111111f0;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 18px #00000038}.header .header-middle .mode-btn{width:40px;height:40px;border:none;border-radius:999px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--gray-light);cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease}.header .header-middle .mode-btn:hover{background:#ffffff1f;color:#fff}.header .header-middle .mode-btn.active,.header .header-middle .mode-btn.active:hover{background:var(--yellow);color:var(--black-dark)}.header .header-middle .mode-btn:disabled{opacity:.7}.header .center-actions{flex:1;display:flex;justify-content:flex-end;padding-right:20px;padding-left:20px;align-items:center;gap:16px;position:relative;z-index:2}.header .center-actions button{background:var(--gray-dark)!important}.header .center-actions .chakra-select__item{color:var(--black-light)!important}.header .actions{display:flex;align-items:center;gap:16px;position:relative;z-index:2}.header .actions button{background-color:var(--gray-light);border:3px solid var(--gray-dark);color:var(--black-light);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s,color .2s}.header .actions button:hover{background-color:var(--gray-dark);color:var(--yellow)}.header .actions button:disabled{cursor:not-allowed}.header .actions .recipe-browser-trigger{min-height:38px;padding:0 16px;border-radius:999px;border-width:2px;background:linear-gradient(180deg,#fffce0,#f5f08a);color:#3d3d3d;font-size:.92rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}.header .actions .recipe-browser-trigger:hover{background:linear-gradient(180deg,#fffa00,#f5f08a);color:#1f1b16}@media(max-width:1100px){.header{height:auto;padding:14px;gap:12px;flex-wrap:wrap}.header .logo{min-width:100%}.header .header-middle{position:static;transform:none;width:100%;justify-content:flex-start;order:2}.header .center-actions{width:100%;justify-content:space-between;padding-right:0;padding-left:0;flex-wrap:wrap;order:3}.header .actions{width:100%;justify-content:flex-end;flex-wrap:wrap;order:4}}.icon-button{background:none;border:none;cursor:pointer;outline:none;padding:0;border-radius:50%!important;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#c1bebd;transition:background-color .2s,color .2s;position:relative}.icon-button:hover{background-color:#ffffff1a;color:#fff}.icon-button:hover .tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.icon-button .icon-svg{transform:scale(3)}.icon-button .tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(-5px);background-color:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;z-index:10;margin-top:8px}.icon-button .tooltip:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);border-width:0 4px 4px 4px;border-style:solid;border-color:transparent transparent #333 transparent}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100vh;background-color:var(--black-dark);z-index:9999;display:flex;justify-content:center;align-items:center;overflow:hidden;transition:opacity .5s ease-out}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-screen .yellow-bar{position:absolute;top:0;left:0;width:10px;background-color:var(--yellow, #fff000);z-index:10;transition:width .5s cubic-bezier(.65,0,.35,1),height .1s linear}.loading-screen .yellow-bar.expanded{width:100%;height:100%!important}.loading-screen .content-container{position:relative;width:100%;height:100%;display:flex;z-index:5}.loading-screen .left-section{position:absolute;bottom:40px;left:40px;display:flex;flex-direction:column;align-items:flex-start;color:var(--yellow, #fff000);font-family:Segoe UI,sans-serif}.loading-screen .left-section .progress-text{display:flex;align-items:baseline;font-size:3rem;font-weight:700;line-height:1}.loading-screen .left-section .progress-text .percent{font-size:2rem;margin-left:5px}.loading-screen .left-section .loading-label{margin-top:5px;font-size:.9rem;opacity:.8;letter-spacing:1px;text-transform:uppercase}.loading-screen .right-section{position:absolute;right:12%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:260px}.loading-screen .right-section .sub-text{margin-top:8px;font-family:inherit;font-size:1.6rem;font-weight:800;color:#fff;letter-spacing:.12em;text-align:center;opacity:.9}.operation-hints{position:absolute;top:45%;left:20px;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:12px;pointer-events:none;align-items:flex-start}.operation-hints .hint-item{display:flex;align-items:center;gap:8px;color:var(--gray-dark);font-family:JetBrains Mono,monospace;font-size:14px;text-shadow:0 0 4px rgba(0,0,0,.2)}.operation-hints .hint-item .key-icon{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:var(--black-light);border:1px solid var(--gray);border-radius:6px;font-weight:700;color:#fff;padding:4px;box-shadow:0 0 4px #0003}.operation-hints .hint-item .key-icon.wide{padding:0 8px;min-width:auto}.operation-hints .hint-item span{opacity:.9;font-weight:500}.blueprint-preview-dialog{width:min(92vw,1200px);max-width:1200px;max-height:88vh;background:var(--gray-light);color:var(--gray-dark)}.blueprint-preview-dialog__header{border-bottom:1px solid rgba(95,93,93,.18)}.blueprint-preview-dialog__body{display:flex;flex-direction:column;gap:16px;padding-top:12px}.blueprint-preview-dialog__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.blueprint-preview-dialog__meta-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#5f5d5d14,#fffa001a);box-shadow:inset 0 0 0 1px #5f5d5d1f}.blueprint-preview-dialog__meta-label{color:var(--black-light);font-size:12px;font-weight:700}.blueprint-preview-dialog__viewport{overflow:auto;border-radius:16px;background:radial-gradient(circle at top left,rgba(255,250,0,.24),transparent 35%),linear-gradient(180deg,#5f5d5d29,#5f5d5d0f);box-shadow:inset 0 0 0 1px #5f5d5d29;padding:16px;min-height:320px}.blueprint-preview-canvas{position:relative;min-width:100%;min-height:100%;background-image:linear-gradient(to right,rgba(95,93,93,.14) 1px,transparent 1px),linear-gradient(to bottom,rgba(95,93,93,.14) 1px,transparent 1px);background-color:#e5e1e1eb;box-shadow:0 18px 32px #00000024}.blueprint-preview-canvas__connections{position:absolute;inset:0;pointer-events:none;overflow:visible}.blueprint-preview-canvas__connection{fill:none;stroke-linecap:round;stroke-linejoin:round}.blueprint-preview-canvas__connection--item{stroke:var(--orange);stroke-width:6px}.blueprint-preview-canvas__connection--fluid{stroke:#4aa7ff;stroke-width:8px}.blueprint-preview-canvas__machine{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(18,18,18,.12);box-shadow:0 4px 10px #00000029;overflow:hidden}.blueprint-preview-canvas__machine-skin{width:100%;height:100%;object-fit:contain;pointer-events:none}.blueprint-preview-canvas__machine-name{padding:4px;color:#ffffffeb;font-size:11px;font-weight:700;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.5)}.blueprint-preview-dialog__footer{padding-bottom:24px}@media(max-width:768px){.blueprint-preview-dialog{width:96vw;max-height:92vh}.blueprint-preview-dialog__viewport{padding:12px;min-height:240px}}.material-choice-card{display:flex;flex-direction:column;gap:8px;align-items:stretch;padding:8px;border-radius:12px;cursor:pointer;background:linear-gradient(to bottom,var(--black-light) 60%,var(--green) 160%);color:var(--gray-light);border-bottom:4px solid var(--green);transition:transform .2s,box-shadow .2s;outline:none}.material-choice-card:hover,.material-choice-card:focus-visible{transform:translateY(-2px);box-shadow:0 8px 16px #00000038}.material-choice-card--compact{align-items:center}.machine-detail-panel{display:grid;grid-template-columns:minmax(240px,1fr) 180px minmax(240px,1fr);gap:20px;align-items:start}.machine-detail-panel--single-sided{grid-template-columns:minmax(240px,1fr) 180px}.machine-detail-panel__headline{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:6px;border-bottom:1px solid rgba(95,93,93,.16)}.machine-detail-panel__machine-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.machine-detail-panel__machine-name{font-size:28px;font-weight:700;color:var(--gray-dark)}.machine-detail-panel__power-tag{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#3d3d3d14;color:#5f5d5dd1;font-size:13px;font-weight:700;white-space:nowrap}.machine-detail-panel__recipe-name{font-size:14px;color:#5f5d5dc7;text-align:right}.machine-detail-panel__column{display:flex;flex-direction:column;gap:14px}.machine-flow-group{display:flex;flex-direction:column;gap:12px}.machine-flow-group__title{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#5f5d5db8}.machine-flow-group__hint{margin-top:-4px;font-size:12px;line-height:1.5;color:#5f5d5db3}.machine-flow-group__list{display:flex;flex-direction:column;gap:14px}.machine-flow-group--configured-output .machine-flow-group__title{color:#8f581ce0}.machine-detail-panel__time-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:100%;padding-top:12px}.machine-detail-panel__time-label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#5f5d5db8}.machine-detail-panel__time-value{min-width:120px;padding:14px 18px;border-radius:999px;background:linear-gradient(180deg,#3d3d3df5,#181818f5);color:var(--gray-light);text-align:center;font-size:18px;box-shadow:0 14px 28px #12121224}.machine-detail-panel__time-hint{font-size:13px;color:#5f5d5dbd;text-align:center;line-height:1.6}.machine-detail-panel__mode-actions{justify-content:center}.conduit-detail-panel{display:flex;flex-direction:column;gap:18px}.conduit-detail-panel__summary{padding:20px 22px;border-radius:22px;background:radial-gradient(circle at top,rgba(110,199,255,.2),transparent 56%),linear-gradient(180deg,#3d3d3dfa,#181818fa);color:var(--gray-light)}.conduit-detail-panel__summary p{margin:0;color:#e5e1e1d1;font-size:14px;line-height:1.6}.conduit-detail-panel__eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#e5e1e1b8}.conduit-detail-panel__headline{display:flex;flex-direction:column;gap:10px;margin-top:10px}.conduit-detail-panel__title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.conduit-detail-panel__title-row h3{margin:0;font-size:28px;line-height:1.15}.conduit-detail-panel__status{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.conduit-detail-panel__status.connected{background:#48b07a2e;color:#dff8e9}.conduit-detail-panel__status.disconnected{background:#e79c3a2e;color:#ffe1c0}.conduit-detail-panel__layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;align-items:start}.conduit-detail-panel__notes{display:flex;flex-direction:column;gap:12px}.conduit-detail-panel__note{padding:16px 18px;border-radius:18px;background:#3d3d3d14;color:#5f5d5de0;font-size:14px;line-height:1.6}.machine-flow-slot{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:14px;border-radius:18px;background:linear-gradient(180deg,#3d3d3df5,#181818fa);color:var(--gray-light);box-shadow:inset 0 0 0 1px #e5e1e114,0 14px 28px #12121224}.machine-flow-slot--fluid{background:radial-gradient(circle at top,rgba(132,215,255,.2),transparent 52%),linear-gradient(180deg,#2c4358f5,#141e28fa)}.machine-flow-slot--configured-output{background:radial-gradient(circle at top,rgba(255,207,133,.24),transparent 56%),linear-gradient(180deg,#5b3f1ffa,#2c1c0efa);box-shadow:inset 0 0 0 1px #ffd9a824,0 14px 28px #12121224}.machine-flow-slot__frame{position:relative;width:96px;min-width:96px;height:96px;border:3px solid rgba(229,225,225,.28);background:#e5e1e10f;display:flex;align-items:center;justify-content:center;overflow:hidden}.machine-flow-slot__frame--item{border-radius:18px}.machine-flow-slot__frame--fluid{border-radius:999px;border-color:#84d7ff73}.machine-flow-slot__frame--configured-output{border-color:#ffd6a1b8;background:#ffecd514}.machine-flow-slot__preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%;height:100%;padding:8px}.machine-flow-slot__preview-icon,.material-entry-row__icon{display:flex;align-items:center;justify-content:center;background:#e5e1e124;overflow:hidden}.machine-flow-slot__preview-icon span,.material-entry-row__icon span{font-size:18px;font-weight:700;color:var(--gray-light)}.machine-flow-slot__preview-icon{border-radius:12px}.machine-flow-slot__preview-icon img{width:100%;height:100%;object-fit:contain;transform:scale(1.18)}.material-entry-row__icon img{width:100%;height:100%;object-fit:contain;transform:scale(1.06)}.machine-flow-slot__more{position:absolute;right:8px;bottom:8px;min-width:26px;padding:2px 6px;border-radius:999px;background:#121212d1;font-size:12px;text-align:center}.machine-flow-slot__empty-mark{font-size:30px;font-weight:700;color:#e5e1e159}.machine-flow-slot__info{display:flex;flex-direction:column;gap:8px;min-width:0}.machine-flow-slot__label{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#e5e1e1b8}.machine-flow-slot__list{display:flex;flex-direction:column;gap:8px}.machine-flow-slot__empty-text{font-size:13px;color:#e5e1e18f}.machine-flow-slot__manual-area{display:flex;flex-direction:column;gap:8px;padding-top:6px;border-top:1px solid rgba(229,225,225,.1)}.machine-flow-slot__manual-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#e5e1e1ad}.machine-flow-slot__actions{display:flex;gap:8px;flex-wrap:wrap}.machine-flow-slot__action-btn{border:none;border-radius:999px;padding:7px 12px;background:#abcd412e;color:var(--gray-light);cursor:pointer;font-size:12px;transition:transform .2s,background-color .2s,opacity .2s}.machine-flow-slot__action-btn:hover:not(:disabled),.machine-flow-slot__action-btn:focus-visible:not(:disabled){transform:translateY(-1px);background:#abcd414d}.machine-flow-slot__action-btn:disabled{cursor:not-allowed;opacity:.45}.machine-flow-slot__action-btn--active{background:#abcd4166;box-shadow:inset 0 0 0 1px #abcd417a}.machine-flow-slot__action-btn--danger{background:#e79c3a2e}.machine-flow-slot__action-btn--danger:hover:not(:disabled),.machine-flow-slot__action-btn--danger:focus-visible:not(:disabled){background:#e79c3a4d}.material-entry-row{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:14px;background:#e5e1e114}.material-entry-row.compact{padding:8px 10px;gap:8px}.material-entry-row.compact .material-entry-row__icon{width:32px;min-width:32px;height:32px;border-radius:10px}.material-entry-row__icon{width:40px;min-width:40px;height:40px;border-radius:12px}.material-entry-row__content{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0;width:100%}.material-entry-row__name,.material-entry-row__amount{min-width:0;font-size:14px;color:var(--gray-light)}.material-entry-row__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-entry-row__amount{flex-shrink:0;color:#e5e1e1b8}.machine-recipe-view{display:flex;flex-direction:column;gap:18px}.machine-recipe-view__summary{padding:18px 20px;border-radius:20px;background:radial-gradient(circle at top,rgba(171,205,65,.18),transparent 58%),linear-gradient(180deg,#3d3d3dfa,#181818fa);color:var(--gray-light)}.machine-recipe-view__summary h3{margin:8px 0 6px;font-size:26px;line-height:1.15}.machine-recipe-view__summary p{margin:0;color:#e5e1e1d1;font-size:14px}.machine-recipe-view__eyebrow,.machine-recipe-card__eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#e5e1e1b8}.machine-recipe-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:16px}.machine-recipe-card{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:20px;background:linear-gradient(180deg,#3d3d3dfa,#181818fa);color:var(--gray-light);box-shadow:0 14px 28px #12121224;border:1px solid rgba(229,225,225,.08)}.machine-recipe-card--active{border-color:#abcd4180;box-shadow:inset 0 0 0 1px #abcd413d,0 14px 28px #12121224}.machine-recipe-card__headline{display:flex;justify-content:flex-start;gap:8px;align-items:flex-start;padding-bottom:2px}.machine-recipe-card__headline h4{margin:6px 0 0;font-size:18px;line-height:1.3}.machine-recipe-card__layout{display:grid;grid-template-columns:minmax(0,1fr) 118px minmax(0,1fr);gap:14px;align-items:start}.machine-recipe-card__section{display:flex;flex-direction:column;gap:8px;min-width:0}.machine-recipe-card__section-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#e5e1e1b8}.machine-recipe-card__section-list{display:flex;flex-direction:column;gap:8px}.machine-recipe-card__time{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;min-height:100%;padding-top:26px}.machine-recipe-card__time-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e5e1e1b8}.machine-recipe-card__time-value{width:100%;padding:10px 12px;border-radius:999px;background:#e5e1e114;color:#e5e1e1e0;font-size:14px;text-align:center}.machine-recipe-card__terminal,.machine-recipe-view__empty{font-size:13px;color:#e5e1e1c2}.machine-recipe-view__empty--standalone{padding:28px 16px;text-align:center;border-radius:18px;background:linear-gradient(180deg,#3d3d3dfa,#181818fa)}.manual-input-picker{display:flex;flex-direction:column;gap:18px}.manual-input-picker__summary{padding:18px 20px;border-radius:20px;background:radial-gradient(circle at top,rgba(171,205,65,.18),transparent 58%),linear-gradient(180deg,#3d3d3dfa,#181818fa);color:var(--gray-light)}.manual-input-picker__summary h3{margin:8px 0 6px;font-size:26px;line-height:1.15}.manual-input-picker__summary p{margin:0;color:#e5e1e1d1;font-size:14px}.manual-input-picker__eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#e5e1e1b8}.manual-input-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:12px;max-height:min(60vh,680px);overflow-y:auto;padding-right:4px}.manual-input-picker__card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 10px;border:1px solid rgba(95,93,93,.12);border-radius:16px;background:#ffffffc7;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.manual-input-picker__card:hover,.manual-input-picker__card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px #1212121f;border-color:#abcd417a}.manual-input-picker__card.active{border-color:#abcd41e6;box-shadow:inset 0 0 0 1px #abcd4166}.manual-input-picker__card-icon{width:54px;height:54px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#3d3d3d14;overflow:hidden}.manual-input-picker__card-icon img{width:100%;height:100%;object-fit:contain}.manual-input-picker__card-icon span{font-size:22px;font-weight:700;color:var(--gray-dark)}.manual-input-picker__card-name{font-size:12px;line-height:1.4;color:var(--gray-dark);text-align:center;word-break:break-word}.machine-detail-dialog__footer{display:flex;justify-content:center;padding-top:0}@media(max-width:1100px){.machine-detail-panel,.machine-detail-panel--single-sided,.conduit-detail-panel__layout{grid-template-columns:1fr}.machine-detail-panel__headline{align-items:flex-start;flex-direction:column}.machine-detail-panel__time-area{padding-top:0;padding-bottom:4px}}@media(max-width:720px){.machine-recipe-catalog{grid-template-columns:1fr}.manual-input-picker__grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr))}.machine-flow-slot{grid-template-columns:1fr;justify-items:center;text-align:center}.machine-flow-slot__info,.material-entry-row__content{width:100%}.machine-detail-panel__machine-name,.conduit-detail-panel__title-row h3{font-size:24px}.material-entry-row__content{flex-direction:column;align-items:flex-start;gap:2px}.machine-recipe-card__layout{grid-template-columns:1fr}.machine-recipe-card__time{padding-top:0}}#root{width:100vw;height:100vh;margin:0;padding:0;display:flex;flex-direction:column}.app-content{flex:1;position:relative;overflow:hidden;width:100%}.member-icon-btn:hover{background-color:var(--yellow);color:var(--black-light)}.factory-insights{position:absolute;top:20px;right:20px;width:min(380px,100vw - 40px);max-height:calc(100vh - 100px);background:#121212f0;color:var(--gray-light);border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:0 18px 40px #00000059;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:1100;overflow:hidden;display:flex;flex-direction:column}.factory-insights .panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.factory-insights .panel-header h2{margin:4px 0 0;font-size:1.15rem;color:#fff}.factory-insights .issue-pill{padding:6px 10px;border-radius:999px;background:#ffdd4d24;color:var(--yellow-light);font-size:.8rem;white-space:nowrap}.factory-insights .tab-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 18px}.factory-insights .tab-row button{border:0;border-radius:999px;padding:8px 10px;background:#ffffff0f;color:#ffffffb8;cursor:pointer;transition:all .2s ease;min-width:0}.factory-insights .tab-row button.active{background:var(--yellow);color:var(--black-dark);font-weight:700}.factory-insights .tab-panel{padding:0 18px 18px}.factory-insights .scrollable{overflow:auto;padding-bottom:18px}.factory-insights .stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.factory-insights .stat-card,.factory-insights .summary-block,.factory-insights .building-card,.factory-insights .issue-card,.factory-insights .graph-node,.factory-insights .graph-edge,.factory-insights .outbound-material-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:14px}.factory-insights .stat-card{padding:12px;display:flex;flex-direction:column;gap:6px}.factory-insights .stat-card span{font-size:.82rem;color:#ffffffa8}.factory-insights .stat-card strong{font-size:1.1rem;color:#fff}.factory-insights .summary-block{margin-top:12px;padding:14px}.factory-insights .summary-block h3{margin:0 0 8px;font-size:.92rem;color:#fff}.factory-insights .summary-block p{margin:0;font-size:.88rem;line-height:1.5;color:#ffffffb8}.factory-insights .summary-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.factory-insights .summary-row strong.ok{color:#7bffa3}.factory-insights .summary-row strong.warn{color:#ffd45b}.factory-insights .building-card{padding:14px;margin-bottom:10px}.factory-insights .building-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.factory-insights .badge{padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700}.factory-insights .badge.ok{background:#7bffa324;color:#7bffa3}.factory-insights .badge.warn{background:#ffd45b24;color:#ffd45b}.factory-insights .building-meta{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:#ffffffb8;margin-bottom:6px}.factory-insights .issue-line{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.08);font-size:.82rem;color:#ffcb6b}.factory-insights .issue-card{padding:14px;margin-bottom:10px;width:100%;text-align:left}.factory-insights .issue-card.error{border-color:#ff787859}.factory-insights .issue-card.warning{border-color:#ffd45b59}.factory-insights .issue-card.info{border-color:#79c5ff59}.factory-insights .issue-card.clickable{cursor:pointer;transition:border-color .2s ease,transform .2s ease,background .2s ease}.factory-insights .issue-card.clickable:hover{transform:translateY(-1px);background:#ffffff14;border-color:#4dabf78c}.factory-insights .issue-title{font-weight:700;color:#fff;margin-bottom:6px}.factory-insights .issue-message-list{display:flex;flex-direction:column;gap:6px}.factory-insights .issue-text{font-size:.88rem;line-height:1.5;color:#ffffffc2}.factory-insights .empty-state{padding:20px 14px;border-radius:14px;background:#ffffff0a;color:#ffffffa8;text-align:center}.factory-insights .empty-state.success{color:#7bffa3}.factory-insights .graph-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}.factory-insights .graph-column{display:flex;flex-direction:column;gap:10px}.factory-insights .column-title{font-size:.8rem;color:#ffffff94;text-transform:uppercase;letter-spacing:.06em}.factory-insights .graph-node{padding:12px;display:flex;flex-direction:column;gap:6px}.factory-insights .graph-node strong{color:#fff}.factory-insights .graph-node span{font-size:.82rem;color:#ffffffb8}.factory-insights .graph-edges{display:flex;flex-direction:column;gap:8px}.factory-insights .graph-edge{padding:10px 12px;display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:center}.factory-insights .graph-edge em{font-style:normal;color:var(--yellow-light)}.factory-insights .graph-edge strong{color:#fff;text-align:right}.factory-insights .outbound-material-list{display:flex;flex-direction:column;gap:10px}.factory-insights .outbound-material-card{padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.factory-insights .outbound-material-main{min-width:0;display:flex;align-items:center;gap:12px}.factory-insights .outbound-material-icon{width:44px;height:44px;flex:0 0 44px;border-radius:12px;background:#ffffff14;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;overflow:hidden}.factory-insights .outbound-material-icon img{width:100%;height:100%;object-fit:contain}.factory-insights .outbound-material-icon span{font-size:1rem;font-weight:700;color:#fff}.factory-insights .outbound-material-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.factory-insights .outbound-material-meta strong{color:#fff}.factory-insights .outbound-material-meta span{font-size:.78rem;color:#ffffff85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.factory-insights .outbound-material-rate{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.factory-insights .outbound-material-rate span{font-size:.78rem;color:#ffffff94}.factory-insights .outbound-material-rate strong{color:#fff;font-size:1rem}.factory-insights .diagnostics-panel{display:flex;flex-direction:column;gap:12px}.factory-insights .diagnostic-toolbar,.factory-insights .diagnostic-action-row{display:flex;gap:8px}.factory-insights .diagnostic-toolbar{justify-content:space-between}.factory-insights .diagnostic-toolbar button{border:0;border-radius:999px;padding:8px 12px;cursor:pointer;transition:all .2s ease}.factory-insights .diagnostic-toolbar button:first-child{background:#ffffff0f;color:#ffffffc2}.factory-insights .diagnostic-toolbar button:first-child.active{background:#ffd45b2e;color:var(--yellow-light);font-weight:700}.factory-insights .diagnostic-copy-button,.factory-insights .diagnostic-action-button,.factory-insights .diagnostic-secondary-button{border:0;border-radius:999px;padding:8px 12px;cursor:pointer;transition:all .2s ease}.factory-insights .diagnostic-copy-button,.factory-insights .diagnostic-action-button{background:var(--yellow);color:var(--black-dark);font-weight:700}.factory-insights .diagnostic-secondary-button{background:#ffffff0f;color:#ffffffc2}.factory-insights .diagnostic-copy-button:hover,.factory-insights .diagnostic-action-button:hover,.factory-insights .diagnostic-secondary-button:hover,.factory-insights .diagnostic-toolbar button:first-child:hover{transform:translateY(-1px)}.factory-insights .diagnostic-summary-block,.factory-insights .diagnostic-export-block{margin-top:0}.factory-insights .diagnostic-export-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}.factory-insights .diagnostic-export-head h3{margin:0}.factory-insights .diagnostic-export-head span{font-size:.78rem;color:#ffffff8f}.factory-insights .diagnostic-export-text{width:100%;min-height:160px;resize:vertical;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#00000038;color:#ffffffd1;padding:12px;font:inherit;line-height:1.45}.factory-insights .diagnostic-card-list{display:flex;flex-direction:column;gap:10px}.factory-insights .diagnostic-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.factory-insights .diagnostic-card.flagged{border-color:#ffd45b66;box-shadow:inset 0 0 0 1px #ffd45b14}.factory-insights .diagnostic-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.factory-insights .diagnostic-route-group{min-width:0;display:flex;flex-direction:column;gap:6px}.factory-insights .diagnostic-transport-chip{width:fit-content;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:700}.factory-insights .diagnostic-transport-chip.item{background:#79c5ff29;color:#9bd4ff}.factory-insights .diagnostic-transport-chip.fluid{background:#58d4b429;color:#7cf0d3}.factory-insights .diagnostic-route-title{color:#fff;line-height:1.4}.factory-insights .diagnostic-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.factory-insights .diagnostic-metric{padding:10px 12px;border-radius:12px;background:#ffffff0a;display:flex;flex-direction:column;gap:4px}.factory-insights .diagnostic-metric span{font-size:.78rem;color:#ffffff8f}.factory-insights .diagnostic-metric strong{color:#fff;line-height:1.4}.factory-insights .diagnostic-meta-list{display:flex;flex-wrap:wrap;gap:8px}.factory-insights .diagnostic-meta-list span{padding:4px 8px;border-radius:999px;background:#ffffff0d;font-size:.76rem;color:#ffffffa3}.factory-insights .diagnostic-status-list{display:flex;flex-direction:column;gap:6px}.factory-insights .diagnostic-status{padding:10px 12px;border-radius:12px;font-size:.84rem;line-height:1.45}.factory-insights .diagnostic-status--hint{background:#ffd45b1f;color:#ffd45b}.factory-insights .diagnostic-status--issue{background:#ff78781f;color:#ffb5b5}.factory-insights .diagnostic-action-row{justify-content:flex-end}@media(max-width:1100px){.factory-insights{inset:auto 20px 20px;width:auto;max-height:42vh}.factory-insights .tab-row{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-insights .diagnostic-card-head,.factory-insights .diagnostic-toolbar{flex-direction:column}.factory-insights .diagnostic-metric-grid{grid-template-columns:1fr}}.recipe-browser-overlay{position:fixed;inset:0;z-index:1800;display:flex;align-items:center;justify-content:center;padding:24px;color:#262626}.recipe-browser-overlay__backdrop{position:absolute;inset:0;border:0;padding:0;background:#12121273;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}.recipe-browser-overlay__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(1880px,100vw - 48px);height:min(940px,100vh - 48px);border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#f7f3ec,#ece6de);box-shadow:0 30px 80px #12121247}.recipe-browser-overlay__header{display:flex;justify-content:space-between;gap:24px;padding:24px 28px 20px;border-bottom:1px solid rgba(95,93,93,.14);background:linear-gradient(180deg,#ffffffd9,#ffffff8c),radial-gradient(circle at top right,rgba(171,205,65,.16),transparent 28%)}.recipe-browser-overlay__title-block{display:flex;flex-direction:column;gap:8px}.recipe-browser-overlay__title-block h2{margin:0;font-size:2rem;line-height:1.05;font-family:inherit;font-weight:800;color:#1f1b16}.recipe-browser-overlay__title-block p{margin:0;max-width:760px;color:#1f1b16b8;font-size:.96rem}.recipe-browser-overlay__eyebrow{display:inline-flex;align-items:center;width:fit-content;padding:6px 12px;border-radius:999px;background:#3d3d3d14;color:#1f1b16b8;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.recipe-browser-overlay__header-actions{display:flex;align-items:flex-start;gap:16px}.recipe-browser-overlay__summary{display:flex;gap:10px;flex-wrap:wrap}.recipe-browser-overlay__summary span{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;background:#ffffffd6;border:1px solid rgba(95,93,93,.16);color:#4a4744;font-size:.86rem;font-weight:700;white-space:nowrap}.recipe-browser-overlay__close{border:0;border-radius:999px;padding:0 18px;min-height:42px;background:#2e2a27;color:#f7f3ec;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .18s ease,background-color .18s ease}.recipe-browser-overlay__close:hover{transform:translateY(-1px);background:#1e1b19}.recipe-browser-overlay__body{display:grid;grid-template-columns:280px 320px minmax(0,1fr);gap:0;min-height:0;flex:1}.recipe-browser-sidebar{display:flex;flex-direction:column;min-height:0;padding:18px 16px;background:#faf7f2b8;border-right:1px solid rgba(95,93,93,.12)}.recipe-browser-sidebar--alternatives{background:#f2ece2d1}.recipe-browser-sidebar__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.recipe-browser-sidebar__label{font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#1f1b168f}.recipe-browser-sidebar__count{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:28px;padding:0 10px;border-radius:999px;background:#3d3d3d14;color:#1f1b16ad;font-size:.8rem;font-weight:700}.recipe-browser-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:#ffffffdb;border:1px solid rgba(95,93,93,.12);margin-bottom:14px}.recipe-browser-search input{width:100%;border:0;outline:0;background:transparent;color:#2a2520;font-size:.94rem}.recipe-browser-search__icon{color:#1f1b1673;font-size:.95rem}.recipe-browser-sidebar__list{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;padding-right:4px}.recipe-browser-sidebar__list--alternatives{gap:14px}.recipe-browser-sidebar__state{padding:14px;border-radius:16px;background:#ffffffb8;color:#1f1b169e;font-size:.92rem;line-height:1.5}.recipe-browser-sidebar__state--error{color:#842029;background:#eac4c8a6}.recipe-browser-target{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid rgba(95,93,93,.12);border-radius:18px;background:#fffc;cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.recipe-browser-target img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.recipe-browser-target:hover{transform:translateY(-1px);border-color:#abcd41ad;box-shadow:0 10px 18px #12121214}.recipe-browser-target.is-active{border-color:#abcd41eb;box-shadow:inset 0 0 0 1px #abcd415c;background:linear-gradient(180deg,#fffffff5,#f5f08a52)}.recipe-browser-target__meta{display:flex;flex-direction:column;gap:4px;min-width:0}.recipe-browser-target__name{color:#211d19;font-size:.95rem;font-weight:800;line-height:1.2}.recipe-browser-target__subline{color:#211d199e;font-size:.78rem;line-height:1.3}.recipe-browser-sidebar__footer-card{margin-top:16px;padding:14px;border-radius:18px;background:#fffc;border:1px solid rgba(95,93,93,.12)}.recipe-browser-sidebar__footer-row{display:flex;align-items:center;gap:12px;margin-top:10px}.recipe-browser-sidebar__footer-row img{width:44px;height:44px;object-fit:contain;flex-shrink:0}.recipe-browser-sidebar__footer-row div{display:flex;flex-direction:column;gap:4px}.recipe-browser-sidebar__footer-row strong{color:#211d19;font-size:.98rem}.recipe-browser-sidebar__footer-row span{color:#211d199e;font-size:.8rem}.recipe-browser-alt-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;background:#ffffffbd;border:1px solid rgba(95,93,93,.1)}.recipe-browser-alt-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.recipe-browser-alt-card__title{display:flex;align-items:center;gap:10px}.recipe-browser-alt-card__title img{width:38px;height:38px;object-fit:contain;flex-shrink:0}.recipe-browser-alt-card__title div{display:flex;flex-direction:column;gap:3px}.recipe-browser-alt-card__title strong{color:#211d19;font-size:.92rem;line-height:1.2}.recipe-browser-alt-card__title span{color:#211d1994;font-size:.78rem}.recipe-browser-alt-card__options{display:flex;flex-direction:column;gap:8px}.recipe-browser-alt-option{display:flex;flex-direction:column;gap:6px;width:100%;padding:10px 12px;border:1px solid rgba(95,93,93,.12);border-radius:14px;background:#f7f3ecdb;cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.recipe-browser-alt-option:hover{transform:translateY(-1px);border-color:#abcd4194}.recipe-browser-alt-option.is-selected{border-color:#abcd41e6;background:linear-gradient(180deg,#fffffff5,#abcd412e)}.recipe-browser-alt-option__topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#1f1b16;font-size:.82rem;font-weight:800}.recipe-browser-alt-option__machine{display:flex;align-items:center;gap:8px;min-width:0}.recipe-browser-alt-option__machine img{width:26px;height:26px;object-fit:contain;flex-shrink:0}.recipe-browser-alt-option__machine span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-browser-alt-option__summary,.recipe-browser-alt-option__output{color:#1f1b16a8;font-size:.77rem;line-height:1.4}.recipe-browser-graph-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:radial-gradient(circle at top left,rgba(171,205,65,.15),transparent 22%),linear-gradient(180deg,#ffffffd6,#f7f3eceb)}.recipe-browser-graph-panel__toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px 14px;border-bottom:1px solid rgba(95,93,93,.12)}.recipe-browser-graph-panel__toolbar h3{margin:8px 0 0;color:#1f1b16;font-size:1.55rem;font-family:inherit;font-weight:800}.recipe-browser-graph-panel__meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.recipe-browser-graph-panel__meta span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:#ffffffd6;border:1px solid rgba(95,93,93,.12);color:#1f1b16a3;font-size:.8rem;font-weight:700;white-space:nowrap}.recipe-browser-graph-panel__surface{position:relative;flex:1;min-height:0;padding:16px}.recipe-browser-graph-panel__viewport{width:100%;height:100%;overflow:auto;cursor:grab;border-radius:20px;border:1px solid rgba(95,93,93,.12);background:linear-gradient(rgba(130,116,96,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(130,116,96,.05) 1px,transparent 1px),linear-gradient(180deg,#ffffffe0,#fcf9f5fa);background-size:20px 20px,20px 20px,100% 100%}.recipe-browser-graph-panel__viewport.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.recipe-browser-graph-panel__viewport.is-dragging *{-webkit-user-select:none;user-select:none}.recipe-browser-graph-panel__canvas{position:relative;min-width:100%;min-height:100%}.recipe-browser-graph-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border-radius:20px;border:1px solid rgba(95,93,93,.12);background:#ffffffc7;color:#1f1b169e;gap:8px;text-align:center}.recipe-browser-graph{position:relative}.recipe-browser-graph__edges{position:absolute;inset:0;overflow:visible}.recipe-browser-graph__edge{fill:none;stroke:#675aa7b3;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;filter:drop-shadow(0 2px 3px rgba(60,60,80,.12))}.recipe-browser-node{position:absolute;display:flex;flex-direction:column;border-radius:18px;box-shadow:0 14px 30px #1212121a}.recipe-browser-node--material{justify-content:space-between;padding:12px 14px;border:1px solid rgba(95,93,93,.12);background:#ffffffeb}.recipe-browser-node--material.is-target{border-color:#675aa773;box-shadow:0 16px 28px #675aa72e}.recipe-browser-node--material.is-source{border-color:#4caf503d}.recipe-browser-node--material.is-cycle{border-color:#e05b5b59}.recipe-browser-node--recipe{padding:14px;border:1px solid rgba(95,93,93,.12);background:#f7f3ecf5}.recipe-browser-node__badge-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.recipe-browser-node__badge,.recipe-browser-node__count{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em}.recipe-browser-node__badge{background:#3d3d3d14;color:#1f1b16ad}.recipe-browser-node__badge--accent{background:#675aa724;color:#5b4ea8}.recipe-browser-node__count{background:#abcd412e;color:#536126}.recipe-browser-node__content{display:flex;align-items:center;gap:12px}.recipe-browser-node__content img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.recipe-browser-node__content div{display:flex;flex-direction:column;gap:4px}.recipe-browser-node__content strong{color:#1f1b16;font-size:.96rem;line-height:1.2}.recipe-browser-node__content span{color:#1f1b169e;font-size:.78rem;line-height:1.35}.recipe-browser-recipe__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.recipe-browser-recipe__machine{display:flex;align-items:center;gap:10px}.recipe-browser-recipe__machine img{width:40px;height:40px;object-fit:contain;flex-shrink:0}.recipe-browser-recipe__machine div{display:flex;flex-direction:column;gap:2px}.recipe-browser-recipe__machine strong{color:#1f1b16;font-size:.92rem}.recipe-browser-recipe__machine span{color:#1f1b169e;font-size:.78rem}.recipe-browser-recipe__io{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recipe-browser-recipe__column{display:flex;flex-direction:column;gap:8px}.recipe-browser-recipe__column-label{color:#1f1b168a;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.recipe-browser-recipe__item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px 10px;border-radius:12px;background:#ffffffc7}.recipe-browser-recipe__item img{width:24px;height:24px;object-fit:contain}.recipe-browser-recipe__item span{color:#2b2622;font-size:.78rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-browser-recipe__item strong{color:#1f1b16c2;font-size:.76rem}.recipe-browser-recipe__item.is-highlighted{box-shadow:inset 0 0 0 1px #675aa742;background:#675aa714}@media(max-width:1480px){.recipe-browser-overlay__body{grid-template-columns:260px 300px minmax(0,1fr)}}@media(max-width:1200px){.recipe-browser-overlay{padding:12px}.recipe-browser-overlay__panel{width:calc(100vw - 24px);height:calc(100vh - 24px);border-radius:18px}.recipe-browser-overlay__header{flex-direction:column;align-items:stretch}.recipe-browser-overlay__header-actions{justify-content:space-between;align-items:center}.recipe-browser-overlay__body{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr)}.recipe-browser-sidebar{border-right:0;border-bottom:1px solid rgba(95,93,93,.12)}.recipe-browser-sidebar__list{max-height:220px}}@media(max-width:720px){.recipe-browser-overlay__header{padding:18px 18px 16px}.recipe-browser-overlay__title-block h2{font-size:1.5rem}.recipe-browser-overlay__header-actions{flex-direction:column;align-items:stretch}.recipe-browser-overlay__summary{width:100%}.recipe-browser-overlay__summary span,.recipe-browser-overlay__close{width:100%;justify-content:center}.recipe-browser-graph-panel__toolbar{flex-direction:column}.recipe-browser-recipe__io{grid-template-columns:1fr}}.connection-detail-dialog{border-radius:24px;overflow:hidden}.connection-detail-sheet{display:flex;flex-direction:column;gap:16px}.connection-detail-sheet--item{--connection-accent: #b78600;--connection-soft: rgba(255, 215, 84, .2)}.connection-detail-sheet--fluid{--connection-accent: #2f8db9;--connection-soft: rgba(88, 177, 222, .22)}.connection-detail-sheet__hero,.connection-detail-sheet__info-card,.connection-detail-sheet__status-card{border-radius:20px;border:1px solid rgba(18,18,18,.08);background:linear-gradient(135deg,#ffffffeb,#f5f1ecf5);box-shadow:0 14px 30px #12121214}.connection-detail-sheet__hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.9fr);gap:16px;padding:18px}.connection-detail-sheet__hero-main{display:flex;flex-direction:column;gap:8px;min-width:0}.connection-detail-sheet__transport-chip,.connection-detail-sheet__status-pill{align-self:flex-start;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700}.connection-detail-sheet__transport-chip{background:var(--connection-soft);color:var(--connection-accent)}.connection-detail-sheet__eyebrow,.connection-detail-sheet__card-label,.connection-detail-sheet__metric-label{font-size:.82rem;font-weight:700;color:#5f5d5db8;letter-spacing:.02em}.connection-detail-sheet__material-name{font-size:clamp(1.3rem,3vw,2rem);line-height:1.15;color:var(--black-dark)}.connection-detail-sheet__route-preview{margin:0;font-size:.94rem;line-height:1.5;color:#3d3d3dc7;word-break:break-word}.connection-detail-sheet__hero-metric{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:16px;border-radius:18px;background:linear-gradient(160deg,var(--connection-soft),rgba(255,255,255,.88));border:1px solid rgba(18,18,18,.06)}.connection-detail-sheet__metric-value{display:flex;align-items:baseline;gap:8px;color:var(--black-dark)}.connection-detail-sheet__metric-value strong{font-size:clamp(2rem,5vw,3rem);line-height:1}.connection-detail-sheet__metric-value span{font-size:1rem;font-weight:700;color:#3d3d3dad}.connection-detail-sheet__route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.connection-detail-sheet__info-card,.connection-detail-sheet__status-card{padding:18px}.connection-detail-sheet__info-card{display:flex;flex-direction:column;gap:10px}.connection-detail-sheet__info-card strong{font-size:1.1rem;line-height:1.35;color:var(--black-dark);word-break:break-word}.connection-detail-sheet__status-card{display:flex;flex-direction:column;gap:14px}.connection-detail-sheet__status-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.connection-detail-sheet__status-pill.is-ok{background:#7bffa329;color:#2f8a54}.connection-detail-sheet__status-pill.has-issues{background:#ffd45b38;color:#a46a00}.connection-detail-sheet__issue-list{display:flex;flex-direction:column;gap:10px}.connection-detail-sheet__issue-item,.connection-detail-sheet__healthy-state{border-radius:14px;padding:12px 14px;font-size:.92rem;line-height:1.55}.connection-detail-sheet__issue-item{background:#fff2d2e6;border:1px solid rgba(229,156,58,.22);color:#8a5b12}.connection-detail-sheet__healthy-state{background:#f1f9ecf2;border:1px solid rgba(171,205,65,.24);color:#4a6b11}@media(max-width:768px){.connection-detail-sheet__hero,.connection-detail-sheet__route-grid{grid-template-columns:1fr}.connection-detail-sheet__status-head{align-items:flex-start;flex-direction:column}}
