:root{--bg:#f6f5f0;--paper:#fffefa;--ink:#293e35;--muted:#7c887a;--line:#dfe3d6;--orange:#df6944}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button,input,textarea,summary,a{ -webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}header{height:84px;border-bottom:1px solid var(--line);padding:0 5%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-size:25px;font-weight:800;letter-spacing:1px;color:var(--ink);text-decoration:none}.brand-mark{background:var(--ink);color:var(--paper);width:36px;height:36px;border-radius:6px;text-align:center;font-size:27px}.brand-caption{font-size:12px;letter-spacing:2px;font-weight:500;margin-left:12px;border-left:1px solid #c9d0c2;padding-left:22px}#connection{font-size:11px;color:#798870;background:#e9eee2;padding:8px 12px;border-radius:5px}main{max-width:1500px;margin:auto;padding:0 5%}#setup{max-width:870px;margin:62px auto 70px}.step-label,.mono,footer{font-family:'SFMono-Regular',Consolas,monospace}.step-label{font-size:10px;letter-spacing:2px;color:#8d9785}h1{font-size:38px;letter-spacing:-1.7px;line-height:1.3;margin:15px 0;font-weight:650}h1>span{color:var(--orange)}.intro{color:#7a8773;font-size:13px;line-height:1.8;margin:0}#basket-form{margin-top:36px;background:var(--paper);padding:28px;border:1px solid var(--line);border-radius:13px}.setup-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}h2{font-size:15px;font-weight:600;margin:0}h2 span{font-size:10px;color:#93a084;margin-left:9px;font-weight:400}.text-button{border:0;background:none;color:#7b8b6f;font-size:11px;padding:7px}.text-button:hover{color:var(--orange)}.editor{display:grid;grid-template-columns:44px 1fr 30px;gap:14px;border:1px solid #e1e6d8;border-radius:8px;background:#f5f7ef;padding:18px;margin-bottom:12px}.editor-icon{color:var(--basket-color);font-size:34px;align-self:start;margin-top:12px}.editor-content{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(200px,1.6fr);gap:18px}.editor label{font-size:10px;color:#8b9780;display:block;margin-bottom:7px}.editor input,.editor textarea{border:0;border-bottom:1px solid #d4ddc9;background:transparent;border-radius:0;color:var(--ink);padding:7px 0;width:100%;font-size:12px;line-height:1.7}.editor textarea{resize:vertical;min-height:56px}.editor input::placeholder,.editor textarea::placeholder{color:#a3ad99}.remove-basket{border:0;background:none;color:#9aa58e;font-size:21px;height:30px}.remove-basket:hover{color:var(--orange)}.add-basket{width:100%;padding:15px;border:1px dashed #bac9ad;color:#738b62;border-radius:7px;background:transparent;font-size:12px}.add-basket:hover{background:#f2f5e9}.add-basket span{font-size:17px;margin-right:6px}.setup-foot{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:25px}.setup-foot p{color:#929c87;font-size:10px;line-height:1.9;margin:0}.setup-foot small{font-size:9px;color:#a0a991}.primary{background:var(--orange);border:0;color:white;border-radius:6px;padding:13px 20px;font-size:12px;white-space:nowrap}.primary span{margin-left:16px}.primary:hover:not(:disabled){background:#ca5b36}.secondary{border:1px solid #d7decd;background:transparent;color:#718465;border-radius:5px;padding:10px 15px;font-size:11px;white-space:nowrap}.secondary:hover:not(:disabled){background:#e9eddf}.setup-preview{display:flex;justify-content:center;align-items:center;gap:27px;font-size:11px;color:#9ca68f;margin-top:36px}.setup-preview i{font-style:normal;color:#b2bba8;font-size:24px}.workbench-heading{display:flex;justify-content:space-between;align-items:center;margin:42px 0 30px}.workbench-heading h1{font-size:33px}.machine-toolbar{display:flex;align-items:center;justify-content:space-between;background:var(--paper);border:1px solid var(--line);border-bottom:0;border-radius:11px 11px 0 0;padding:17px 23px}.machine-state{display:flex;align-items:center;gap:12px;font-size:11px;color:#839174}.machine-state strong{font-weight:500;color:#53674b}#status-dot{width:7px;height:7px;border-radius:50%;background:#a7b698}.machine-state .divider{height:14px;width:1px;background:#dfe4d6}.controls{display:flex;gap:13px;align-items:center}.controls .primary{min-width:123px}.machine-viewport{border:1px solid var(--line);overflow:auto;background:#edf0e5;scroll-behavior:smooth;overscroll-behavior-x:contain}.machine-world{position:relative;height:490px;min-width:100%;isolation:isolate}.machine-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#69815c0c 1px,transparent 1px),linear-gradient(90deg,#69815c0c 1px,transparent 1px);background-size:24px 24px}.pile-label{position:absolute;top:33px;left:22px;font:10px monospace;letter-spacing:1px;color:#8c9a7e}.pile-label span{letter-spacing:0;margin-left:8px}.parts-pile{position:absolute;left:15px;top:65px;width:207px;height:120px;z-index:2}.pile-part{position:absolute;width:33px;height:38px;border:0;padding:0;background:none;transition:opacity .2s}.pile-part:hover{z-index:5;filter:drop-shadow(0 0 4px #fff);scale:1.5}.part-art{width:100%;height:100%;display:block;overflow:visible}.input-tray{position:absolute;left:10px;top:161px;width:217px;height:43px;background:#cad3bd;border:4px solid #a4b394;clip-path:polygon(0 0,100% 0,89% 100%,10% 100%)}.belt{position:absolute;left:217px;right:22px;top:175px;height:47px;background:#b4c0a8;border:7px solid #7c8c70;border-radius:25px;box-shadow:0 5px #607354,0 14px 15px #4c663c13}.belt:before,.belt:after{content:'';position:absolute;top:5px;width:23px;height:23px;border-radius:50%;border:5px solid #829573;background:#c1cdae;z-index:1}.belt:before{left:5px}.belt:after{right:5px}.belt-track{position:absolute;inset:4px;border:1px solid #7d906e;border-radius:20px;background:repeating-linear-gradient(90deg,#9dab90 0 3px,#c8d1bb 3px 21px)}.belt-direction{position:absolute;left:30px;top:4px;color:#7e916e;font-size:18px;opacity:.7}.scanner{position:absolute;left:283px;top:82px;width:93px;height:142px;border:10px solid #788d69;border-bottom:0;border-radius:10px 10px 0 0;z-index:4;pointer-events:none;box-shadow:3px 0 #5a704d}.scanner>span{position:absolute;top:-9px;left:24px;font:8px monospace;letter-spacing:2px;color:#e7eddc}.scan-light{position:absolute;inset:10px 0 0;background:linear-gradient(90deg,transparent,#b3d89a18,transparent);border-left:1px solid #b7d99966;border-right:1px solid #b7d99966}.scanner-label{position:absolute;top:246px;left:289px;font-size:10px;color:#8d9e7e}.running .belt-track{animation:belt .45s linear infinite}.running .scan-light{background:#f1a57b23;box-shadow:0 0 18px #edaf8322}.running #status-dot{background:var(--orange);animation:pulse 1s infinite}@keyframes belt{to{background-position:21px 0}}@keyframes pulse{50%{opacity:.4}}.basket-lane{position:absolute;top:0;width:144px;height:460px}.lane-rule{position:absolute;top:28px;width:136px;left:4px;color:#788970;font-size:10px;line-height:1.65;height:64px;overflow:auto;text-align:center;scrollbar-width:thin}.lane-rule:after{content:'';position:absolute;bottom:-25px;left:50%;height:19px;border-left:1px dashed #b4c2a5}.chute{position:absolute;top:230px;left:60px;width:24px;height:72px;border-left:1px dashed #b4c4a5;border-right:1px dashed #b4c4a5;background:linear-gradient(#a9bb9220,transparent)}.basket{position:absolute;left:5px;top:303px;width:134px;height:104px}.basket-back{position:absolute;inset:0;background:color-mix(in srgb,var(--basket-color) 18%,#edf0e5);border:2px solid color-mix(in srgb,var(--basket-color) 50%,#edf0e5);border-radius:4px 4px 19px 19px;transform:perspective(220px) rotateX(-8deg)}.basket-back:before{content:'';position:absolute;left:-5px;right:-5px;top:-5px;height:11px;border:3px solid color-mix(in srgb,var(--basket-color) 55%,#edf0e5);background:#e4e9da;border-radius:5px}.basket-front{position:absolute;left:4px;right:4px;bottom:0;height:44px;border-radius:0 0 15px 15px;background:color-mix(in srgb,var(--basket-color) 30%,#e7ebde);border-bottom:4px solid color-mix(in srgb,var(--basket-color) 48%,#e7ebde);z-index:3;display:flex;justify-content:center;align-items:center;gap:6px}.basket-front:after{content:'';position:absolute;inset:8px 8px 5px;background:repeating-linear-gradient(90deg,transparent 0 13px,#ffffff38 13px 15px);pointer-events:none}.basket-count{font:12px monospace;color:#52664a;background:#edf0e5d9;padding:3px 8px;border-radius:4px;z-index:1}.basket-items{position:absolute;inset:8px 8px 20px;overflow:hidden}.basket-item{position:absolute;width:33px;height:37px}.basket-name{position:absolute;top:426px;width:144px;text-align:center;font-size:12px;font-weight:600;overflow-wrap:anywhere}.basket-code{position:absolute;top:450px;width:144px;text-align:center;font:8px monospace;color:#94a487;letter-spacing:1px}.basket-lane.received .basket{animation:land .35s ease-out}@keyframes land{50%{transform:translateY(5px) scaleX(1.03)}}#moving-part{position:absolute;width:47px;height:53px;z-index:5;pointer-events:none;left:0;top:0;filter:drop-shadow(0 5px 3px #2d442a18)}.now-sorting{display:flex;align-items:center;gap:15px;padding:19px 22px;background:var(--paper);border:1px solid var(--line);border-top:0;min-height:63px;font-size:12px}.now-sorting .mono{font-size:9px;color:var(--orange);padding:4px 7px;background:#f6ede4;border-radius:3px}.now-sorting #latency{font:10px monospace;color:#96a28a;margin-left:auto;white-space:nowrap}.progress-track{height:3px;background:#e0e6d6;border-radius:0 0 4px 4px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:var(--orange);transition:width .3s}.below-machine{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#95a187;margin:13px 0 26px}details{border-top:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font-size:11px;color:#7f8f71;list-style:none;display:flex;gap:12px}summary:before{content:'＋';color:#a2af95}details[open]>summary:before{content:'−'}#record-count{margin-left:auto;font-size:10px;color:#9eaa92}#records{max-height:240px;overflow:auto;margin-top:16px}.record{display:grid;grid-template-columns:35px 1fr 1fr 55px;gap:12px;padding:12px 4px;border-bottom:1px solid #e3e8da;font-size:11px;align-items:center}.record small{color:#94a286;font:9px monospace}.record span{overflow-wrap:anywhere}.record button{background:transparent;border:0;color:var(--orange);font-size:10px}.muted{font-size:11px;color:#96a28b}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.6 monospace;max-height:300px;overflow:auto;background:#eaf0e0;padding:16px;border-radius:5px}.error{color:#a0452d;background:#fae8dc;border:1px solid #edcbb7;border-radius:5px;padding:12px;font-size:12px;line-height:1.7}footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:25px 0 30px;margin-top:45px;font-size:9px;letter-spacing:.5px;color:#99a38e}[hidden]{display:none!important}@media(max-width:780px){header{height:69px}.brand-caption{display:none}main{padding:0 5%}#setup{margin:38px auto}h1{font-size:30px}.editor-content{grid-template-columns:1fr;gap:10px}.editor{gap:8px;padding:13px;grid-template-columns:30px 1fr 25px}.editor-icon{font-size:25px}.setup-foot{align-items:stretch;flex-direction:column;gap:16px}#basket-form{padding:20px}.setup-preview{gap:15px;font-size:9px}.workbench-heading{align-items:flex-start;gap:16px;flex-direction:column;margin-top:29px}.workbench-heading h1{font-size:29px}.machine-toolbar{padding:12px;gap:12px}.machine-state{gap:7px;font-size:10px}.controls{gap:4px}.controls .primary{min-width:100px;padding:11px 12px;font-size:11px}.controls .text-button{font-size:10px}.machine-state .divider{display:none}.machine-state{flex-wrap:wrap}.below-machine{flex-direction:column;gap:8px}.now-sorting{padding:14px 12px;gap:9px;font-size:11px;flex-wrap:wrap}.now-sorting #current-text{flex:1;min-width:150px}.intro{font-size:12px}.record{grid-template-columns:24px 1fr 1fr 37px;font-size:10px;gap:6px}footer{font-size:8px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.basket-name{line-height:16px;max-height:32px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.basket-code{top:465px}
