@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)}body[lang=zh-CN]{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 .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}.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}.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}.port.input .port-inner svg,.port.output .port-inner svg{width:100%;height:100%;color:var(--gray);display:block}.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.output.active{border-color:var(--yellow-light)}.port.output.active .port-inner{background:var(--yellow-light)}.grid-container{width:100%;height:100%;position:relative;overflow:hidden;cursor:crosshair;background-color:var(--gray-light)}.grid-container.wiring-mode{cursor:alias}.zoom-content{transform-origin:0 0;width:100%;height:100%}.grid-background{position:absolute;top:-4px;left:-4px;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;border:4px solid var(--black-light);box-sizing:content-box}.connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.machine-container{z-index:10}.conveyor-line-outline,.conveyor-line-fill,.conveyor-preview-outline,.conveyor-preview-fill{fill:none;stroke-linecap:round;stroke-linejoin:round}.conveyor-line-outline{stroke:var(--gray);stroke-width:20}.conveyor-preview-outline{stroke:var(--gray);stroke-width:16;stroke-dasharray:10 10;opacity:.6}.conveyor-line-fill{stroke:var(--yellow-light);stroke-width:16}.conveyor-preview-fill{stroke:var(--yellow-light);stroke-width:10;stroke-dasharray:10 10;animation:dash 1s linear infinite}@keyframes dash{to{stroke-dashoffset:-20}}.conveyor-preview-outline.invalid.invalid,.conveyor-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.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)}.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)}.selection-box{position:absolute;background-color:#4287f533;border:1px solid rgba(66,135,245,.6);pointer-events:none;z-index:100}.machine-container.selected .machine-body{outline:2px solid #4dabf7;box-shadow:0 0 15px #4dabf766;z-index:15}.conveyor-line-outline.selected{stroke:#4dadf7;stroke-width:26;opacity:.8}.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{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 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 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 .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(--green) 150%);border-bottom:2px solid var(--green)}.header{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 .logo{font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:10px}.header .logo .icon{height:48px;border-radius:24%;object-fit:contain}.header .center-actions{flex:1;display:flex;justify-content:flex-end;padding-right:20px;align-items:center}.header .center-actions button{background:var(--gray-dark)!important}.header .center-actions .chakra-select__item{color:var(--black-light)!important}.header .actions{display:flex;gap:16px}.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)}.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:16%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;justify-content:center;align-items:center}.loading-screen .right-section .loading-img{max-width:240px;width:100%;height:auto;object-fit:contain}.loading-screen .right-section .sub-text{margin-top:8px;font-family:NaikaiFont-Bold,serif;font-size:1.2rem;color:#fff;letter-spacing:2px;text-align:center;opacity:.9}.operation-hints{position:absolute;top:45%;right:20px;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:12px;pointer-events:none;align-items:flex-end}.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}.member-icon-btn:hover{background-color:var(--yellow);color:var(--black-light)}#root{width:100vw;height:100vh;margin:0;padding:0;display:flex;flex-direction:column}.app-content{flex:1;position:relative;overflow:hidden;width:100%}
