@font-face{font-family:Inter Tight;src:url(/plm/rocket-engine/fonts/intertight-var.ttf)format("truetype");font-weight:100 900;font-display:block}@font-face{font-family:JetBrains Mono;src:url(/plm/rocket-engine/fonts/jetbrainsmono-var.ttf)format("truetype");font-weight:100 800;font-display:block}:root{--bg:#f1f1ee;--panel:#fff;--panel2:#fafaf8;--line:#e9e9e4;--line2:#f0f0ec;--ink:#16171a;--ink2:#3b3d42;--sub:#85878c;--muted:#b3b5b9;--accent:#f59e0b;--accent2:#f7b02c;--accentSoft:#fff3da;--ok:#12a150;--okSoft:#e3f5ea;--warn:#e8890b;--over:#e5484d;--overSoft:#fdeaea;--sans:"Inter Tight", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r:16px;--shadow:0 1px 2px #14161a0a, 0 4px 18px #14161a0b}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button{color:inherit;font-family:inherit}#loading{background:var(--bg);color:var(--sub);font:500 14px var(--sans);z-index:50;letter-spacing:.01em;place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}#loading i{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:0 auto 14px;animation:.9s linear infinite spin;display:block}#loading.gone{opacity:0;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.shell{grid-template-columns:236px minmax(0,1fr);gap:14px;padding:14px;display:grid;position:fixed;inset:0}.side{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;min-height:0;padding:16px 12px 12px;display:flex;overflow:hidden}.brand{border-bottom:1px solid var(--line2);color:var(--ink);align-items:center;gap:10px;margin-bottom:10px;padding:2px 8px 16px;text-decoration:none;display:flex}.brand img{filter:brightness(0);opacity:.92;width:auto;height:17px}.brand b{color:var(--sub);letter-spacing:.01em;margin-left:auto;font-size:13px;font-weight:600}.sec{font:500 11.5px var(--sans);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:12px 10px 6px}.nav{font:500 14px var(--sans);color:var(--ink2);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.nav svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px;color:var(--sub);flex:none}.nav:hover{background:var(--panel2)}.nav.on{border-color:var(--line);color:var(--ink);background:#f4f4f1}.nav.on svg{color:var(--ink)}.nav .r{font:500 11.5px var(--mono);color:var(--muted);margin-left:auto}.veh{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:34px 1fr;align-items:center;gap:0 10px;width:100%;padding:7px 8px;display:grid}.veh:hover{background:var(--panel2)}.veh.on{border-color:var(--line);background:#fff;box-shadow:0 1px 2px #0000000a,0 3px 10px #0000000d}.veh .ic{grid-row:span 2;place-items:center;width:34px;height:24px;display:grid}.veh .ic svg{width:34px;height:18px;stroke:var(--ink2);fill:none;stroke-width:1.4px;stroke-linejoin:round}.veh.on .ic svg{stroke:var(--accent)}.veh b{font:600 13.5px var(--sans);color:var(--ink)}.veh span{font:500 11.5px var(--sans);color:var(--sub)}.stops{flex-direction:column;gap:1px;padding:0 2px;display:flex}.stop{font:500 13px var(--sans);color:var(--ink2);border-radius:9px;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:5px 8px;display:grid}.stop i{width:16px;height:16px;font:600 10px var(--mono);color:#fff;border-radius:6px;place-items:center;font-style:normal;display:grid}.stop em{font:500 11.5px var(--mono);color:var(--muted);font-style:normal}.stop.done{opacity:.45}.side .foot{border:1px solid var(--line);background:var(--panel2);border-radius:14px;margin-top:auto;padding:11px 12px}.side .foot .t{font:600 12.5px var(--sans);align-items:center;gap:7px;display:flex}.side .foot .t i{background:var(--ok);border-radius:50%;width:7px;height:7px}.side .foot p{font:500 11.5px/1.45 var(--sans);color:var(--sub);margin:5px 0 0}.side .foot p b{color:var(--ink2);font-weight:600}.main{grid-template-rows:54px minmax(0,1fr) auto minmax(0,.62fr);grid-template-columns:minmax(0,1fr) 372px;gap:14px;min-width:0;min-height:0;display:grid}.top{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;grid-column:1/-1;align-items:center;gap:8px;min-width:0;padding:0 8px;display:flex}.chip{border:1px solid var(--line);height:38px;font:500 14px var(--sans);color:var(--ink);background:var(--panel2);white-space:nowrap;border-radius:12px;align-items:center;gap:7px;padding:0 13px;display:inline-flex}.chip svg{width:15px;height:15px;stroke:var(--sub);fill:none;stroke-width:1.7px;stroke-linecap:round}.chip .m{font-family:var(--mono);font-size:13px}.top .grow{flex:1}.seg{border:1px solid var(--line);background:#f3f3f0;border-radius:12px;gap:2px;height:38px;padding:3px;display:inline-flex}.seg button{font:550 13px var(--sans);cursor:pointer;color:var(--sub);background:0 0;border:0;border-radius:9px;padding:0 12px}.seg button:hover{color:var(--ink)}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #1018281a}.btn{border:1px solid var(--line);height:38px;font:600 13.5px var(--sans);cursor:pointer;color:var(--ink);white-space:nowrap;background:#fff;border-radius:12px;align-items:center;gap:7px;padding:0 14px;transition:transform .12s,background .2s,box-shadow .2s;display:inline-flex}.btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.btn:hover{background:var(--panel2)}.btn:active{transform:translateY(1px)}.btn.pri{background:var(--accent);color:#fff;border-color:#e8930a;box-shadow:0 2px 10px #f59e0b59,inset 0 1px #ffffff40}.btn.pri:hover{background:#f4a417}.btn.busy{opacity:.75;pointer-events:none}.btn.press{transform:scale(.96)}.btn.hot{box-shadow:0 0 0 4px #f59e0b38,0 2px 10px #f59e0b59}.icon-btn{justify-content:center;width:38px;padding:0}.stage{border:1px solid var(--line);box-shadow:var(--shadow);background:#f6f6f3;border-radius:20px;min-height:0;position:relative;overflow:hidden}.stage .cv{position:absolute;inset:0}.stage canvas{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.stage .dots{pointer-events:none;opacity:.55;background-image:radial-gradient(#00000016 1px,#0000 1.2px);background-size:16px 16px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0006 60%,#0000 100%);mask-image:linear-gradient(#000 0%,#0006 60%,#0000 100%)}.stage .ov{pointer-events:none;position:absolute;inset:0}.stage svg.lead{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.bays{pointer-events:none;height:108px;position:absolute;top:14px;left:0}.bay{border:1px solid var(--line);background:#fffffff0;border-radius:14px;flex-direction:column;height:100%;padding:9px 10px;transition:background .35s,border-color .35s,color .35s;display:flex;position:absolute;top:0;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 6px 18px #14161a0f}.bay .h{justify-content:space-between;align-items:center;gap:4px;display:flex}.bay .code{font:600 11px var(--mono);letter-spacing:.02em;white-space:nowrap;border-radius:7px;padding:2px 7px}.bay .pct{font:500 13px var(--mono);color:var(--ink2)}.bay .sku{font:600 12.5px var(--sans);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-top:auto;overflow:hidden}.bay .kg{font:500 12px var(--sans);color:var(--sub);white-space:nowrap}.bay .bar{background:#f0efea;border-radius:4px;height:5px;margin-top:6px;overflow:hidden}.bay .bar i{background:var(--accent);border-radius:4px;height:100%;display:block}.bay.hot{background:var(--accent);border-color:var(--accent)}.bay.hot .code{color:#fff!important;background:#ffffff40!important}.bay.hot .pct,.bay.hot .sku,.bay.hot .kg{color:#fff}.bay.hot .bar{background:#ffffff59}.bay.hot .bar i{background:#fff}.bay.empty .sku{color:var(--muted);font-weight:500}.axl{pointer-events:none;flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%)}.axl .p{font:600 12px var(--mono);border:1px solid var(--line);white-space:nowrap;color:var(--ink);background:#fff;border-radius:8px;padding:4px 8px;transition:background .3s,color .3s,border-color .3s;box-shadow:0 2px 8px #0000000f}.axl .p em{color:var(--sub);font-style:normal;font-weight:500}.axl.warn .p{border-color:#f6c56b}.axl.over .p{background:var(--over);border-color:var(--over);color:#fff}.axl.over .p em{color:#fffc}.tag3{pointer-events:none;font:600 11.5px var(--sans);border:1px solid var(--line);white-space:nowrap;color:var(--ink2);background:#fff;border-radius:9px;align-items:center;gap:6px;padding:5px 9px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 3px 12px #00000014}.tag3 i{border-radius:50%;width:7px;height:7px;display:inline-block}.tag3.bad{background:var(--over);color:#fff;border-color:var(--over)}.tag3.note{color:var(--ink2);background:#fffffff2;font-weight:500}.tag3.note b{color:var(--ink);font-weight:650}.stage .viewlbl{font:500 12px var(--sans);color:var(--sub);pointer-events:none;align-items:center;gap:14px;display:flex;position:absolute;bottom:14px;left:16px}.stage .viewlbl b{color:var(--ink2);font-weight:600}.stage .legend{pointer-events:none;font:500 12px var(--sans);color:var(--ink2);border:1px solid var(--line);background:#ffffffd9;border-radius:11px;gap:10px;padding:6px 10px;display:flex;position:absolute;bottom:12px;right:14px}.stage .legend span{align-items:center;gap:5px;display:inline-flex}.stage .legend i{border-radius:3px;width:9px;height:9px}.toast{opacity:0;border:1px solid var(--line);font:500 13.5px var(--sans);color:var(--ink2);pointer-events:none;white-space:nowrap;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:11px 14px;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:132px;left:50%;transform:translate(-50%,-8px);box-shadow:0 10px 30px #14161a1f}.toast.on{opacity:1;transform:translate(-50%)}.toast b{color:var(--ink);font-weight:650}.toast .dot{background:var(--ok);border-radius:50%;flex:none;width:9px;height:9px}.toast.bad .dot{background:var(--over)}.toast.urgent{border-color:#f6c56b}.toast.urgent .dot{background:var(--accent)}.plan2d{opacity:0;pointer-events:none;background:#fbfbf9;transition:opacity .35s;position:absolute;inset:0}.plan2d.on{opacity:1;pointer-events:auto}.plan2d svg{width:100%;height:100%;display:block}.right{flex-direction:column;gap:14px;min-height:0;display:flex}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;min-height:0;padding:13px 15px}.card .ttl{font:600 14px var(--sans);color:var(--ink);align-items:center;gap:8px;display:flex}.card .ttl svg{width:16px;height:16px;stroke:var(--sub);fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.card .ttl .r{font:500 11.5px var(--sans);color:var(--sub);margin-left:auto}.pill{font:600 11px var(--sans);letter-spacing:.02em;text-transform:uppercase;border-radius:8px;padding:3px 8px}.pill.ok{background:var(--okSoft);color:var(--ok)}.pill.warn{color:#b86e00;background:#fff1d6}.pill.over{background:var(--overSoft);color:var(--over)}.axles{flex-direction:column;gap:9px;margin-top:11px;display:flex}.ax{grid-template-columns:1fr auto;align-items:baseline;gap:3px 10px;display:grid}.ax .n{font:500 12.5px var(--sans);color:var(--ink2)}.ax .v{font:600 13px var(--mono);color:var(--ink);text-align:right}.ax .v em{color:var(--muted);font-style:normal;font-weight:500}.ax .tr{background:#f1f0ec;border-radius:6px;grid-column:1/-1;height:8px;position:relative}.ax .tr i{background:linear-gradient(90deg, #f8c25a, var(--accent));border-radius:6px;transition:width .45s cubic-bezier(.2,.8,.2,1),background .3s;position:absolute;top:0;bottom:0;left:0}.ax .tr b{background:var(--ink);opacity:.55;border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px}.ax.over .tr i{background:linear-gradient(90deg, #f59e9e, var(--over))}.ax.over .v{color:var(--over)}.legs{gap:4px;margin-top:12px;display:grid}.legs .hd{grid-template-columns:74px repeat(var(--n), 1fr);font:500 10.5px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;gap:4px;display:grid}.legs .row{grid-template-columns:74px repeat(var(--n), 1fr);align-items:center;gap:4px;display:grid}.legs .row span{font:500 11.5px var(--sans);color:var(--sub);white-space:nowrap}.legs .c{background:#f1f0ec;border-radius:5px;height:16px;position:relative;overflow:hidden}.legs .c i{background:#cfe9d9;transition:width .45s;position:absolute;top:0;bottom:0;left:0}.legs .c.warn i{background:#fbdca0}.legs .c.over i{background:#f7b0b0}.legs .c em{font:500 10px/16px var(--mono);color:var(--ink2);text-align:center;font-style:normal;position:absolute;inset:0}.legs .c.over em{color:#a3181d;font-weight:600}.diag{flex-direction:column;flex:1;display:flex}.diag svg{flex:1;width:100%;min-height:0;margin-top:6px;overflow:visible}.diag .cap{font:500 11.5px/1.4 var(--sans);color:var(--sub);margin-top:4px}.diag .cap b{color:var(--ink2);font-weight:600}.kpis{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;min-width:0;padding:12px 15px 13px}.kpi .k{font:500 13.5px var(--sans);color:var(--ink2);border-bottom:1px solid var(--line2);align-items:center;gap:8px;padding-bottom:10px;display:flex}.kpi .k svg{width:16px;height:16px;stroke:var(--sub);fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.kpi .k .dots3{color:var(--muted);letter-spacing:1px;margin-left:auto;font-weight:700}.kpi .v{font:600 27px/1 var(--sans);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;margin-top:12px}.kpi .v small{color:var(--ink2);letter-spacing:0;margin-left:3px;font-size:17px;font-weight:550}.kpi .s{font:500 12.5px var(--sans);color:var(--sub);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;overflow:hidden}.kpi .s b{color:var(--ink2);font-weight:600}.kpi .s .bad{color:var(--over);font-weight:600}.tbl{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;grid-column:1/-1;min-height:0;display:flex;overflow:hidden}.tbl .bar{align-items:center;gap:10px;padding:10px 12px 8px;display:flex}.tabs{border:1px solid var(--line);background:#f3f3f0;border-radius:12px;gap:2px;padding:3px;display:inline-flex}.tabs button{font:550 13px var(--sans);cursor:pointer;color:var(--sub);background:0 0;border:0;border-radius:9px;padding:6px 12px}.tabs button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #1018281a}.tabs button .n{font:500 11px var(--mono);color:var(--muted);margin-left:5px}.search{border:1px solid var(--line);background:var(--panel2);height:34px;font:500 13px var(--sans);color:var(--muted);border-radius:11px;align-items:center;gap:8px;width:240px;margin-left:auto;padding:0 12px;display:flex}.search svg{width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:1.8px}.tbl .scroll{scrollbar-width:thin;flex:1;min-height:0;overflow:auto}table{border-collapse:collapse;width:100%;font:500 13.5px var(--sans)}thead th{background:var(--panel2);text-align:left;font:500 12.5px var(--sans);color:var(--sub);border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);white-space:nowrap;z-index:1;padding:9px 12px;position:sticky;top:0}tbody td{border-bottom:1px solid var(--line2);white-space:nowrap;color:var(--ink);padding:10px 12px}tbody td.dim{color:var(--sub)}tbody td.m{font-family:var(--mono);font-size:12.5px}tbody tr{transition:background .4s}tbody tr:hover{background:#fcfcfa}tbody tr.sel{background:#fff8ea}tbody tr.new{animation:1.6s ease-out rowin}@keyframes rowin{0%{background:#ffe9b8}to{background:0 0}}.cat{font:500 11px var(--sans);border:1px solid var(--line);color:var(--ink2);letter-spacing:.03em;border-radius:7px;padding:3px 8px}.cat.haz{color:#c22a2f;background:#fff5f5;border-color:#f5b3b3}.cat.cold{color:#1d64b8;background:#f3f8ff;border-color:#b9d6f5}.sdot{align-items:center;gap:7px;display:inline-flex}.sdot i{width:16px;height:16px;font:600 10px var(--mono);color:#fff;border-radius:5px;place-items:center;font-style:normal;display:inline-grid}.st{font:600 11px var(--sans);letter-spacing:.04em;border-radius:8px;padding:4px 9px}.st.planned{color:#2f6fe0;background:#e9f1ff}.st.loaded{background:var(--accentSoft);color:#c27803}.st.t2{color:var(--sub);background:#f1f1ee}.st.urgent{color:#d4580a;background:#ffe6d1}.st.check{background:var(--overSoft);color:var(--over)}.fcursor{z-index:40;pointer-events:none;filter:drop-shadow(0 2px 3px #00000040);width:26px;height:26px;position:fixed;top:0;left:0;transform:translate(-3px,-2px)}.fcursor.down svg{transform:scale(.88)}.fcursor .ring{border:2px solid var(--accent);opacity:0;border-radius:50%;width:30px;height:30px;position:absolute;top:2px;left:2px;transform:translate(-50%,-50%)scale(.3)}.fend{z-index:45;pointer-events:none;opacity:0;background:#f1f1ee00;place-items:center;display:grid;position:fixed;inset:0}.fend .box{border:1px solid var(--line);text-align:center;background:#fff;border-radius:26px;padding:34px 52px 30px;box-shadow:0 24px 70px #14161a2e}.fend img{filter:brightness(0);opacity:.92;height:30px}.fend .u{font:650 40px var(--sans);letter-spacing:-.015em;margin-top:16px}.fend .s{font:500 17px var(--sans);color:var(--sub);margin-top:8px}@media (max-width:1100px){html:not(.vert),body:not(.vert){overflow:auto}body:not(.vert) .shell{padding:10px;display:block;position:static}body:not(.vert) .side{margin-bottom:10px;padding:10px}body:not(.vert) .side .sec,body:not(.vert) .side .stops,body:not(.vert) .side .foot,body:not(.vert) .side .navs{display:none}body:not(.vert) .side .vehs{gap:6px;display:flex;overflow-x:auto}body:not(.vert) .veh{grid-template-columns:1fr;min-width:112px}body:not(.vert) .veh .ic{display:none}body:not(.vert) .brand{border:0;margin:0;padding:2px 4px 10px}body:not(.vert) .main{flex-direction:column;gap:10px;display:flex}body:not(.vert) .top{flex-wrap:wrap;height:auto;padding:8px}body:not(.vert) .top .chip:not(.keep){display:none}body:not(.vert) .stage{height:62vh;min-height:360px}body:not(.vert) .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.vert) .kpis .kpi:last-child{grid-column:span 2}body:not(.vert) .tbl{height:60vh}body:not(.vert) .search{display:none}body:not(.vert) .bay{border-radius:11px;padding:7px}body:not(.vert) .bay .sku,body:not(.vert) .bay .kg{display:none}body:not(.vert) .bay .code{padding:2px 4px;font-size:10px}body:not(.vert) .bay .pct{font-size:11px}body:not(.vert) .bays{height:54px}body:not(.vert) .bay .bar{margin-top:auto}}body.vert .shell{flex-direction:column;gap:12px;padding:14px;display:flex}body.vert .side{border-radius:18px;flex:none;padding:12px 12px 10px}body.vert .side .sec,body.vert .side .stops,body.vert .side .foot,body.vert .side .navs{display:none}body.vert .side .vehs{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}body.vert .veh{grid-template-columns:1fr;padding:8px}body.vert .veh .ic{grid-row:auto;justify-content:start;width:100%}body.vert .veh b{font-size:13px}body.vert .veh span{font-size:11px}body.vert .brand{margin-bottom:8px;padding:2px 6px 10px}body.vert .main{flex:1;grid-template-rows:auto 820px 300px auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.vert .top{flex-wrap:wrap;gap:8px;height:auto;padding:8px}body.vert .top .chip:not(.keep),body.vert .top .grow{display:none}body.vert .top .seg{order:9}body.vert .stage{grid-column:1/-1}body.vert .right{flex-direction:row;grid-column:1/-1}body.vert .right .card{flex:1;min-width:0}body.vert .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}body.vert .kpi .v{font-size:25px}body.vert .tbl{min-height:0}body.vert .search{display:none}body.film *,body.film :before,body.film :after{transition:none!important;animation:none!important}body.film tbody tr.new{background:#fff1d1}body.film .stage canvas{cursor:none}
