@font-face{font-family:Sofia Sans Condensed Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-condensed-cyrillic-wght-normal-XDB44ISJ.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Sofia Sans Condensed Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-condensed-latin-ext-wght-normal-JFWL6C6Q.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sofia Sans Condensed Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-condensed-latin-wght-normal-N7ESY6JE.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sofia Sans Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-cyrillic-wght-normal-VHY6L6DR.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Sofia Sans Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-latin-ext-wght-normal-CLTUZC2U.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sofia Sans Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url("./fonts/sofia-sans-latin-wght-normal-BGYWMJ5V.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url("./fonts/martian-mono-cyrillic-standard-normal-KP4IM77F.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url("./fonts/martian-mono-latin-ext-standard-normal-IAPDDWN4.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url("./fonts/martian-mono-latin-standard-normal-5B7MZNUA.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0a0c0f;--panel-a: rgba(22, 26, 32, .74);--panel-b: rgba(12, 14, 18, .7);--panel-solid: #12151a;--line: rgba(255, 255, 255, .065);--line-2: rgba(255, 255, 255, .11);--line-3: rgba(255, 255, 255, .2);--text: #eceff3;--text-2: #a9b2be;--text-3: #808a97;--accent: #ff6a2b;--accent-2: #ffa06b;--accent-soft: rgba(255, 106, 43, .13);--ice: #8fd3ff;--ok: #5fd39a;--warn: #ffb443;--crit: #ff4d3d;--violet: #9b8cff;--in: #6aa5ff;--out: #5fd39a;--bar: rgba(236, 239, 243, .26);--bar-2: rgba(236, 239, 243, .2);--f-display: "Sofia Sans Condensed Variable", "Arial Narrow", sans-serif;--f-ui: "Sofia Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "Martian Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--r: 16px;--r-sm: 10px;--ease: cubic-bezier(.2, .75, .1, 1);--glass: saturate(150%) blur(16px);--shadow: 0 24px 60px -24px rgba(0, 0, 0, .7), 0 2px 6px -2px rgba(0, 0, 0, .4);--rail-w: 296px;--m: 16px;--top: 64px;--bottom: 44px;--strip-h: 112px;--drawer-w: 404px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--f-ui);font-size:13px;line-height:1.4;letter-spacing:.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:#ff6a2b59}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--text-3)}.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.small{font-size:11px}.mt{margin-top:18px}.code,kbd{font-family:var(--f-mono);font-stretch:87.5%;font-size:11px;letter-spacing:0}kbd{padding:2px 6px;border-radius:6px;border:1px solid var(--line-2);color:var(--text-3);font-size:9.5px;background:#ffffff08}.lbl,.eyebrow,.kpi-l,.feed-h,.legend-l,.pal-g{font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.glass{background:linear-gradient(180deg,var(--panel-a),var(--panel-b));border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow),inset 0 1px #ffffff0d;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.stage{position:fixed;inset:0;z-index:0;background:radial-gradient(90% 75% at 60% 42%,#1a1f26,#0f1216 55%,#0a0c0f)}.stage-canvas{display:block;width:100%!important;height:100%!important;touch-action:none;outline:none;opacity:0;transition:opacity .6s var(--ease)}.stage-canvas.is-live{opacity:1}.vignette{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(120% 90% at 58% 46%,transparent 52%,rgba(6,7,9,.6) 100%),linear-gradient(180deg,rgba(10,12,15,.95) 0,rgba(10,12,15,.82) 64px,transparent 124px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line-2);background:#ffffff0a;color:var(--text);font-weight:600;font-size:12.5px;white-space:nowrap;transition:background .2s,border-color .2s,transform .2s var(--ease)}.btn:hover:not(:disabled){background:#ffffff14;border-color:var(--line-3)}.btn:active:not(:disabled){transform:scale(.98)}.btn.primary{background:var(--accent);border-color:transparent;color:#140a05;box-shadow:0 8px 24px -10px #ff6a2bcc}.btn.primary:hover:not(:disabled){background:#ff7c43}.btn.ghost{background:transparent}.btn.sm{height:30px;padding:0 11px;font-size:12px;border-radius:9px}.btn.wide{width:100%}.btn.is-busy{opacity:.7;pointer-events:none}.btn .ic{width:15px;height:15px}.icon-btn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-2);border:1px solid var(--line-2);background:var(--panel-a);transition:background .2s,color .2s;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.icon-btn:hover{color:var(--text);background:#282d35e6}.link-btn{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:12px;font-weight:600}.link-btn:hover{color:var(--text)}.link-btn .ic{width:14px;height:14px}.pill{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.01em;background:#ffffff0f;color:var(--text-2);white-space:nowrap}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.os-waiting{color:var(--warn);background:#ffb4431f}.os-picking{color:var(--accent-2);background:#ff6a2b24}.os-packed{color:var(--in);background:#6aa5ff1f}.os-shipped{color:var(--ok);background:#5fd39a1a}.os-clear{color:var(--violet);background:#9b8cff24}.pill.prio{color:#ffd2bd;background:#ff6a2b38}.pill.new{color:var(--ice);background:#8fd3ff1f}.st-ok{color:var(--ok);background:#5fd39a1a}.st-low{color:#ff8a7e;background:#ff4d3d24}.st-over{color:var(--ice);background:#8fd3ff1f}.st-dead{color:var(--violet);background:#9b8cff24}.s-done{color:var(--text-3)}.s-atDoor{color:var(--accent-2);background:#ff6a2b24}.s-arriving{color:var(--warn);background:#ffb4431f}.s-scheduled{color:var(--text-2)}.s-late{color:#ff8a7e;background:#ff4d3d24}.vel{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:6px;font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;font-weight:700;border:1px solid currentColor}.v-A{color:var(--accent)}.v-B{color:var(--warn)}.v-C{color:var(--text-3)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--line-2);background:#ffffff08;color:var(--text-2);font-size:12px;transition:all .2s}.chip:hover,.chip.is-on{color:var(--text);border-color:var(--line-3);background:#ffffff12}.chip.vel-chip{min-width:38px;justify-content:center;font-family:var(--f-mono);font-weight:700}.chip.vel-chip.is-on.v-A{color:var(--accent);border-color:var(--accent)}.chip.vel-chip.is-on.v-B{color:var(--warn);border-color:var(--warn)}.chip.vel-chip.is-on.v-C{color:var(--text);border-color:var(--text-2)}.seg{display:flex;padding:3px;gap:2px;border-radius:11px;background:#0000004d;border:1px solid var(--line)}.seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;color:var(--text-3);font-size:12px;font-weight:600;white-space:nowrap;transition:all .25s var(--ease)}.seg button:hover{color:var(--text-2)}.seg button.is-on{background:#ffffff17;color:var(--text);box-shadow:inset 0 1px #ffffff0f}.seg .ic{width:14px;height:14px}.seg.sm button{height:28px;font-size:11.5px}.count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#140a05;font-size:10px;font-weight:800;font-family:var(--f-ui)}.select{height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:#ffffff08;color:var(--text-2)}.select option{background:#15181d}.search-field{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:#ffffff08;min-width:260px;color:var(--text-3)}.search-field input{flex:1;min-width:0;border:0;outline:0;background:none;color:var(--text)}.check{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:12px;cursor:pointer;margin:12px 0 2px}.check input{accent-color:var(--accent)}.lead{color:var(--text-2);font-size:12.5px;line-height:1.55;margin:0 0 16px}.empty-note{display:flex;align-items:center;gap:8px;padding:18px;border-radius:12px;border:1px dashed var(--line-2);color:var(--text-3)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 #5fd39a99;animation:live 2s infinite}@keyframes live{70%{box-shadow:0 0 0 7px #5fd39a00}to{box-shadow:0 0 #5fd39a00}}.spin{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar{position:fixed;top:0;left:0;right:0;height:var(--top);z-index:30;display:flex;align-items:center;gap:20px;padding:0 var(--m)}.brand{display:flex;align-items:center;gap:11px;min-width:var(--rail-w)}.logo-mark{width:34px;height:34px;flex:none;filter:drop-shadow(0 6px 14px rgba(255,106,43,.18))}.brand-txt{display:flex;flex-direction:column;line-height:1.1}.brand-txt b{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:.16em}.brand-txt span{font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;letter-spacing:.06em;color:var(--text-3);margin-top:3px}.nav{display:flex;gap:2px;padding:4px;border-radius:999px;background:#12151ab8;border:1px solid var(--line-2);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.nav-a{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 15px;border-radius:999px;color:var(--text-3);font-weight:600;font-size:13px;transition:color .2s,background .3s var(--ease)}.nav-a:hover{color:var(--text)}.nav-a.is-on{color:var(--text);background:#ffffff17;box-shadow:inset 0 1px #ffffff12}.nav-a.is-on .ic{color:var(--accent)}.nav-a .count{margin-left:2px}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px}.search-btn{display:inline-flex;align-items:center;gap:9px;height:38px;padding:0 8px 0 13px;border-radius:12px;min-width:250px;color:var(--text-3);background:#12151ab8;border:1px solid var(--line-2);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transition:border-color .2s,color .2s}.search-btn span{flex:1;text-align:left}.search-btn:hover{color:var(--text-2);border-color:var(--line-3)}.clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.clock b{font-family:var(--f-mono);font-stretch:87.5%;font-weight:500;font-size:14px}.clock span{font-size:10.5px;color:var(--text-3)}.lang-btn{display:flex;height:38px;padding:3px;border-radius:12px;background:#12151ab8;border:1px solid var(--line-2)}.lang-btn button{display:grid;place-items:center;width:34px;border-radius:9px;font-family:var(--f-mono);font-stretch:87.5%;font-size:10.5px;font-weight:600;color:var(--text-3);transition:all .25s}.lang-btn button.is-on{background:#ffffff1a;color:var(--text)}.badge{position:fixed;left:var(--m);right:var(--m);bottom:12px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}.badge>*{pointer-events:auto}.badge-link{display:inline-flex;align-items:center;gap:7px;height:22px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:#0b0d10eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;letter-spacing:.02em;color:var(--text-3);transition:color .2s,border-color .2s}.badge-link:hover{color:var(--text);border-color:var(--line-3)}.badge-link .ic{width:11px;height:11px}.badge-short{display:none}.badge-reset{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;color:var(--text-3)}.badge-reset:hover{color:var(--text)}.badge-reset .ic{width:12px;height:12px}.rail{position:fixed;left:var(--m);top:calc(var(--top) + 8px);bottom:var(--bottom);width:var(--rail-w);z-index:10;padding:16px 18px 12px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.rail-head{display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;letter-spacing:.06em;color:var(--text-2);padding-bottom:12px;border-bottom:1px solid var(--line)}.rail-sep{color:var(--text-3)}.kpi{padding:12px 0}.kpi-cap{border-bottom:1px solid var(--line);padding-top:14px;padding-bottom:14px}.kpi-v{display:flex;align-items:baseline;gap:5px;margin-top:4px;font-variant-numeric:tabular-nums}.kpi-v .big{font-family:var(--f-display);font-weight:300;font-size:60px;line-height:.92;letter-spacing:-.02em}.kpi-v .mid{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1;letter-spacing:-.01em}.kpi-v .unit{font-family:var(--f-display);font-size:15px;color:var(--text-3);font-weight:500}.kpi-foot{font-size:11px;color:var(--text-3);margin-top:5px;line-height:1.3}.capzs{display:grid;gap:6px;margin-top:12px}.capz{display:grid;grid-template-columns:112px 1fr 34px;align-items:center;gap:8px;font-size:11px;color:var(--text-2)}.capz-bar{height:4px;border-radius:4px;background:#ffffff12;overflow:hidden}.capz-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e8dcc4,#ff9a5c);transition:width .8s var(--ease)}.capz:nth-child(3) .capz-bar i{background:linear-gradient(90deg,#8fd3ff,#cfe9ff)}.capz-v{text-align:right;font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;color:var(--text-3)}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;border-bottom:1px solid var(--line)}.kpi-grid .kpi-l{white-space:nowrap;letter-spacing:.06em}.kpi-grid .kpi:nth-child(-n+2){border-bottom:1px solid var(--line)}.hbars{display:block;width:100%;height:22px;margin-top:8px}.feed{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:12px}.feed-h{margin-bottom:8px}.feed-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}.ev{display:grid;grid-template-columns:38px 10px 1fr;align-items:baseline;gap:6px;padding:6px 0;font-size:11.5px;color:var(--text-2);line-height:1.35;transition:opacity .6s,transform .6s var(--ease)}.ev.is-new{opacity:0;transform:translateY(-8px)}.ev-t{font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;color:var(--text-3)}.ev-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);transform:translateY(-1px)}.ev-dot.k-in{background:var(--in)}.ev-dot.k-out{background:var(--ok)}.ev-dot.k-pick{background:var(--accent)}.ev-dot.k-ai{background:var(--violet)}.ev-dot.k-move{background:var(--warn)}.ev-x{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mkpis{display:none}.strip{position:fixed;left:calc(var(--m) + var(--rail-w) + 12px);right:var(--m);bottom:var(--bottom);height:var(--strip-h);z-index:10;padding:10px 16px 8px;display:flex;flex-direction:column;transition:right .45s var(--ease)}.strip-head{display:flex;align-items:center;gap:16px;margin-bottom:7px}.strip-t{display:flex;align-items:center;gap:8px;font-size:12px}.strip-t b{font-weight:700}.strip-t .ic{color:var(--text-3);width:15px;height:15px}.strip-legend{display:flex;gap:12px;margin-left:auto}.strip-head .link-btn{margin-left:8px}.lg{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--text-3)}.lg:before{content:"";width:14px;height:6px;border-radius:3px;background:currentColor}.lg.t-in:before{background:var(--in)}.lg.t-out:before{background:var(--out)}.lg.s-atDoor:before{background:var(--accent);box-shadow:0 0 8px var(--accent)}.lg.s-late:before{background:transparent;border:1px solid var(--crit)}.lg.s-done:before{background:#ffffff24}.gm{flex:1;display:flex;flex-direction:column;min-height:0}.gm-rows{position:relative;flex:1;display:grid;align-content:center;gap:9px}.gm-lane{display:grid;grid-template-columns:70px 1fr;align-items:center}.gm-d{font-family:var(--f-mono);font-stretch:87.5%;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.gm-sub{display:grid;gap:2.5px}.gm-track{position:relative;height:3px;border-radius:2px;background:#ffffff0a;cursor:pointer}.gm-track:hover{background:#ffffff1a}.gm-b{position:absolute;top:0;bottom:0;border-radius:2px;opacity:.6}.gm-b.t-in{background:var(--in)}.gm-b.t-out{background:var(--out)}.gm-b.s-done{opacity:.2}.gm-b.s-atDoor{background:var(--accent);opacity:1;box-shadow:0 0 6px #ff6a2b8c}.gm-b.s-late{background:transparent;box-shadow:inset 0 0 0 1px var(--crit);opacity:1}.gm-now{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.gm-now span{position:absolute;top:-13px;left:5px;font-family:var(--f-mono);font-stretch:87.5%;font-size:8.5px;color:var(--accent);white-space:nowrap}.gm-axis{position:relative;height:13px;margin-left:70px;margin-top:5px}.gm-tick{position:absolute;transform:translate(-50%);font-family:var(--f-mono);font-stretch:87.5%;font-size:8.5px;color:var(--text-3)}.legend{position:fixed;right:var(--m);top:calc(var(--top) + 8px);z-index:10;width:262px;padding:12px;display:flex;flex-direction:column;gap:9px;transition:transform .45s var(--ease),opacity .3s}.grad{height:6px;border-radius:6px}.grad-l{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-3);margin-top:-3px}.tooldock{position:fixed;bottom:calc(var(--bottom) + var(--strip-h) + 14px);left:calc(var(--m) + var(--rail-w) + 12px + (100vw - var(--rail-w) - var(--m) * 2 - 12px) / 2);transform:translate(-50%);z-index:12;display:flex;gap:4px;padding:5px;border-radius:16px;transition:left .45s var(--ease)}.tool{position:relative;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:12px;color:var(--text-2);font-weight:600;font-size:13px;white-space:nowrap;transition:background .25s,color .25s}.tool:hover{background:#ffffff0f;color:var(--text)}.tool.is-on{background:var(--accent);color:#140a05}.tool.is-on .count{background:#140a05;color:var(--accent)}.tool .ic{width:17px;height:17px}.tool kbd{margin-left:2px}.tool.is-on kbd{color:#140a0599;border-color:#140a0540}.camctl{position:fixed;right:var(--m);bottom:calc(var(--bottom) + var(--strip-h) + 14px);z-index:12;display:flex;flex-direction:column;gap:6px;transition:right .45s var(--ease)}.cam-hint{position:fixed;right:calc(var(--m) + 4px);top:calc(var(--top) + 146px);width:250px;text-align:right;z-index:11;font-size:11px;line-height:1.45;color:var(--text-3);pointer-events:none;transition:opacity .6s}.cam-hint.is-gone{opacity:0}body.has-drawer .strip{right:calc(var(--m) + var(--drawer-w) + 12px)}body.has-drawer .legend{transform:translate(calc(-1 * (var(--drawer-w) + 12px)));width:auto;padding:5px;gap:5px}body.has-drawer .legend .legend-l,body.has-drawer .legend .grad-l{display:none}body.has-drawer .legend .grad{height:3px;margin:0 4px 2px}body.has-drawer .strip .strip-legend,body.has-drawer .strip .strip-t .muted{display:none}body.has-drawer .strip-head .link-btn{margin-left:auto}body.has-drawer .camctl{right:calc(var(--m) + var(--drawer-w) + 12px)}body.has-drawer .cam-hint{opacity:0}body.has-drawer .tooldock{left:calc(var(--m) + var(--rail-w) + 12px + (100vw - var(--rail-w) - var(--drawer-w) - var(--m) * 2 - 24px) / 2)}.pins{position:fixed;inset:0;z-index:6;pointer-events:none;overflow:hidden}.pin{position:absolute;left:0;top:0;will-change:transform;transition:opacity .2s}.pin-n{display:grid;place-items:center;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--accent);color:#140a05;font-family:var(--f-mono);font-stretch:87.5%;font-weight:700;font-size:10.5px;box-shadow:0 0 0 3px #ff6a2b40,0 6px 14px -4px #0009;transition:background .3s,transform .3s var(--ease)}.pin-n.is-done{background:var(--ok);box-shadow:0 0 0 3px #5fd39a40;transform:scale(.85)}.pin-tag{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;white-space:nowrap;font-family:var(--f-mono);font-stretch:87.5%;font-size:10.5px;font-weight:600;background:#0e1014db;border:1px solid var(--line-3);transform:translate(-50%,-130%);box-shadow:0 10px 24px -10px #000c}.pin-tag .ic{width:13px;height:13px;color:var(--accent)}.pin-tag.accent{border-color:#ff6a2bb3;color:#fff;box-shadow:0 0 0 4px #ff6a2b1f,0 10px 24px -10px #000c}.tip{position:fixed;left:0;top:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .15s}.tip.is-on{opacity:1}.tt{width:236px;padding:11px 12px;border-radius:12px;background:#0e1014eb;border:1px solid var(--line-3);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.tt-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.tt-h span{font-size:10.5px;color:var(--text-3)}.tt-h .code{font-size:12px;color:var(--text)}.tt-n{font-weight:600;font-size:13px;margin:5px 0 8px;line-height:1.3}.tt-q{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums}.tt-bar{height:4px;border-radius:4px;background:#ffffff14;margin:5px 0 8px;overflow:hidden}.tt-bar i{display:block;height:100%;border-radius:inherit}.tt-f{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;color:var(--text-3)}.toasts{position:fixed;left:50%;top:calc(var(--top) + 12px);transform:translate(-50%);z-index:70;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:12px;background:#101318f0;border:1px solid var(--line-3);box-shadow:var(--shadow);font-size:12.5px;opacity:0;transform:translateY(-8px);transition:all .4s var(--ease)}.toast.is-in{opacity:1;transform:none}.toast .ic{color:var(--ok)}.toast.k-err .ic{color:var(--crit)}.rail,.strip,.legend,.tooldock,.camctl,.topbar,.badge,.cam-hint{transition:opacity .7s var(--ease),transform .7s var(--ease),right .45s var(--ease),left .45s var(--ease)}body.is-booting .rail{opacity:0;transform:translate(-24px)}body.is-booting .strip,body.is-booting .tooldock,body.is-booting .camctl,body.is-booting .cam-hint{opacity:0;transform:translateY(24px)}body.is-booting .tooldock{transform:translate(-50%,24px)}body.is-booting .legend{opacity:0;transform:translate(24px)}body.is-booting .topbar{opacity:0;transform:translateY(-12px)}body.is-booting .badge{opacity:0}.strip{transition-delay:.08s}.tooldock{transition-delay:.14s}.legend{transition-delay:.05s}.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--bg);transition:background 1.2s var(--ease),opacity .6s var(--ease)}.intro.is-live{background:radial-gradient(60% 50% at 50% 50%,#0a0c0fc7,#0a0c0f66 55%,#0a0c0f2e)}.intro.is-out{opacity:0;pointer-events:none}.intro-c{display:flex;flex-direction:column;align-items:center;gap:14px;transition:opacity .7s var(--ease),transform .9s var(--ease)}.intro.is-fading .intro-c{opacity:0;transform:translateY(-18px) scale(.98)}.intro-c .logo-mark{width:52px;height:52px;animation:rise .8s var(--ease) both}.intro-word{font-family:var(--f-display);font-weight:800;font-size:clamp(44px,7.5vw,104px);letter-spacing:.2em;line-height:1;margin-right:-.2em;text-shadow:0 0 60px rgba(255,106,43,.25)}.intro-word span{display:inline-block;animation:letter .9s var(--ease) both}.intro-tag{font-family:var(--f-display);font-weight:400;font-size:clamp(18px,2.2vw,28px);color:var(--text-2);letter-spacing:.02em;animation:rise .9s .5s var(--ease) both}.intro-bar{width:180px;height:2px;border-radius:2px;background:#ffffff14;overflow:hidden;margin-top:10px;animation:rise .6s .4s both}.intro-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;animation:bar 2.4s var(--ease) both}.intro-skip{position:absolute;right:24px;bottom:24px;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);color:var(--text-2);font-size:12px;font-weight:600;background:#0a0c0f80}.intro-skip:hover{color:var(--text);border-color:var(--line-3)}@keyframes letter{0%{opacity:0;transform:translateY(30%);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.drawer{position:fixed;right:var(--m);top:calc(var(--top) + 8px);bottom:var(--bottom);width:var(--drawer-w);z-index:20;display:flex;flex-direction:column;background:linear-gradient(180deg,#161a20e6,#0c0e12e0);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow),inset 0 1px #ffffff0d;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transform:translate(calc(100% + 32px));opacity:0;visibility:hidden;transition:transform .5s var(--ease),opacity .35s,visibility 0s .5s}.drawer.is-open{transform:none;opacity:1;visibility:visible;transition:transform .5s var(--ease),opacity .3s,visibility 0s}.drawer-grip{display:none}.drawer-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--line)}.drawer-titles{flex:1;min-width:0}.drawer-title{font-family:var(--f-display);font-weight:600;font-size:28px;line-height:1.02;letter-spacing:-.005em;margin:5px 0 0}.drawer-sub{font-size:12px;color:var(--text-3);margin-top:5px}.drawer-x{width:32px;height:32px;background:transparent}.drawer-body{flex:1;overflow-y:auto;padding:16px 18px 22px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.prod-cat{display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.prod-name{font-family:var(--f-display);font-weight:500;font-size:22px;line-height:1.12;margin:6px 0 8px}.prod-ids{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px}.prod-ids .muted{font-family:var(--f-mono);font-stretch:87.5%;font-size:10px}.prod .chips{margin-top:10px}.fillcard{margin-top:16px;padding:14px;border-radius:12px;background:#ffffff08;border:1px solid var(--line)}.fill-top{display:flex;justify-content:space-between;align-items:baseline}.fill-v{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.fill-v b{font-family:var(--f-display);font-size:26px;font-weight:400;color:var(--text)}.fillbar{height:8px;border-radius:8px;background:#ffffff12;margin:10px 0 8px;overflow:hidden}.fillbar i{display:block;height:100%;border-radius:inherit;transition:width .8s var(--ease),background .8s}.fill-foot{display:flex;justify-content:space-between;font-size:11px;color:var(--text-2)}.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:12px;border-radius:12px;overflow:hidden;background:var(--line);border:1px solid var(--line)}.stat{padding:11px 12px;background:#0e1014e6;display:flex;flex-direction:column;gap:4px}.stat .lbl{font-size:8.5px}.stat b{font-family:var(--f-display);font-weight:400;font-size:21px;font-variant-numeric:tabular-nums}.chartcard{margin-top:12px;padding:12px 12px 8px;border-radius:12px;background:#ffffff06;border:1px solid var(--line)}.demand{display:block;width:100%;height:110px;margin-top:10px}.chart-axis{display:flex;justify-content:space-between;font-family:var(--f-mono);font-stretch:87.5%;font-size:9px;color:var(--text-3);margin-top:5px}.chart-axis span:nth-child(2){margin-left:50%;transform:translate(-160%);color:var(--accent-2)}.locs{display:grid;gap:4px;margin-top:8px}.loc{display:grid;grid-template-columns:10px 90px 1fr auto;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:9px;border:1px solid transparent;text-align:left;font-size:12px;transition:background .2s}.loc:hover{background:#ffffff0a}.loc.is-on{background:#ff6a2b14;border-color:#ff6a2b59}.loc-sw{width:10px;height:10px;border-radius:3px}.loc-q{font-family:var(--f-mono);font-stretch:87.5%;font-size:11px;color:var(--text-2)}.pathinfo{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--accent-soft);color:#ffd6c4;font-size:12px}.pathinfo .ic{color:var(--accent)}.empty-bin{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 18px;border-radius:14px;border:1px dashed var(--line-3);color:var(--text-2)}.empty-bin .ic{width:28px;height:28px;color:var(--text-3)}.empty-bin b{font-family:var(--f-display);font-size:22px;font-weight:500;color:var(--text)}.empty-bin p{margin:0}.olist{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin:0 -18px;padding-left:18px;padding-right:18px;scroll-padding:18px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.olist .ocard{flex:none;width:188px}.olist .empty-note{flex:1}.ocard{display:grid;grid-template-columns:1fr auto;grid-template-areas:"id st" "c c" "m m";align-items:center;gap:3px 10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#ffffff05;text-align:left;transition:all .25s var(--ease)}.ocard:hover{border-color:var(--line-3);background:#ffffff0b}.ocard.is-on{border-color:#ff6a2b99;background:#ff6a2b12;box-shadow:inset 3px 0 0 var(--accent)}.ocard-id{grid-area:id;font-family:var(--f-mono);font-stretch:87.5%;font-size:11.5px;font-weight:600}.ocard-c{grid-area:c;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ocard .pill{grid-area:st}.ocard-m{grid-area:m;font-size:11px;color:var(--text-3)}.presult{margin-top:14px}.cmp{display:grid;gap:8px;padding:14px;border-radius:12px;background:#ffffff06;border:1px solid var(--line)}.cmp-row{display:grid;grid-template-columns:92px 1fr 64px;align-items:center;gap:10px}.cmp-row b{text-align:right;font-family:var(--f-mono);font-stretch:87.5%;font-size:11.5px;font-variant-numeric:tabular-nums}.cmp-bar{height:8px;border-radius:8px;background:#ffffff0d;overflow:hidden}.cmp-bar i{display:block;height:100%;border-radius:inherit;animation:grow 1s var(--ease) both;transform-origin:left}.cmp-bar.naive i{background:repeating-linear-gradient(90deg,#c7d0dc8c 0 6px,#c7d0dc33 6px 9px)}.cmp-bar.opt i{background:linear-gradient(90deg,#ff6a2b,#ffb070);box-shadow:0 0 12px #ff6a2b99;animation-delay:.3s}@keyframes grow{0%{transform:scaleX(0)}}.saved{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:16px;margin-top:14px}.saved-big{grid-row:span 2;font-family:var(--f-display);font-weight:300;font-size:56px;line-height:.9;color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.saved-big small{font-size:20px;color:var(--accent-2)}.saved-meta{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-2)}.saved-meta b{font-size:14px;color:var(--text)}.saved .small{grid-column:2}.stops{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;counter-reset:s}.stop{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;padding:8px 10px;border-radius:10px;background:#ffffff05;transition:background .3s}.stop-n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ff6a2b24;color:var(--accent);font-family:var(--f-mono);font-stretch:87.5%;font-size:10.5px;font-weight:700;transition:all .3s}.stop.is-done{background:#5fd39a0f}.stop.is-done .stop-n{background:var(--ok);color:#06140c}.stop-l{display:grid;grid-template-columns:76px 1fr auto;gap:8px;align-items:baseline;font-size:12px;line-height:1.35;padding:2px 0}.stop-p{color:var(--text-2)}.stop-q{font-family:var(--f-mono);font-stretch:87.5%;font-size:10.5px;color:var(--text-3)}.truckcard{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#6aa5ff0f;border:1px solid rgba(106,165,255,.2)}.truckcard>.ic{width:22px;height:22px;color:var(--in)}.truckcard div{display:flex;flex-direction:column;gap:2px;min-width:0}.truckcard b{font-size:13px}.truckcard .muted{font-size:11px;font-family:var(--f-mono);font-stretch:87.5%}.scanner{position:relative;display:flex;align-items:center;gap:10px;margin-top:12px;padding:8px 8px 8px 14px;border-radius:14px;border:1px solid var(--line-3);background:#00000059;overflow:hidden}.scanner>.ic{width:20px;height:20px;color:var(--accent)}.scan-line{position:absolute;left:0;right:0;top:0;height:100%;background:linear-gradient(90deg,transparent,rgba(255,106,43,.14),transparent);width:40%;animation:sweep 2.4s ease-in-out infinite;pointer-events:none}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(260%)}}.scan-in{flex:1;min-width:0;height:36px;border:0;outline:0;background:none;font-family:var(--f-mono);font-stretch:87.5%;font-size:14px;letter-spacing:.04em}.scan-in::placeholder{font-family:var(--f-ui);letter-spacing:0;color:var(--text-3);font-size:13px}.scan-in.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.samples{display:flex;flex-direction:column;gap:6px;margin:14px 0 10px}.samples .chip{justify-content:flex-start;height:auto;min-height:34px;padding:6px 12px;border-radius:10px;text-align:left}.samples .chip .code{color:var(--accent-2)}.scan-err{display:flex;gap:8px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:10px;background:#ff4d3d1a;color:#ff9a8f;font-size:12px}.scan-res{margin-top:14px;padding:14px;border-radius:14px;border:1px solid rgba(255,106,43,.35);background:linear-gradient(180deg,#ff6a2b14,#ff6a2b05);display:grid;gap:10px;animation:rise .5s var(--ease)}.scan-prod{display:flex;flex-direction:column;gap:3px}.scan-prod b{font-size:14px}.scan-prod .muted{font-size:11px}.scan-prod .vel{align-self:flex-start;margin-top:4px;width:auto;padding:0 8px}.scan-arrow{color:var(--accent)}.scan-arrow .ic{transform:rotate(90deg)}.scan-target{display:flex;flex-direction:column;gap:3px}.code.big{font-size:22px;font-weight:600;color:var(--text)}.rule{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11.5px;color:#ffd6c4}.rule .ic{color:var(--accent);width:14px;height:14px}.scan-status{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--text-2)}.scan-status.is-done{color:var(--ok)}.recent{display:grid;gap:4px}.rscan{display:grid;grid-template-columns:76px 1fr auto;gap:10px;align-items:center;min-height:32px;padding:4px 10px;border-radius:9px;text-align:left;font-size:12px}.rscan:hover{background:#ffffff0a}.aitag{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:#9b8cff1a;border:1px solid rgba(155,140,255,.28);color:#cfc7ff;font-size:11px;font-weight:600;margin-bottom:12px}.aitag .ic{width:14px;height:14px}.aitabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:12px}.aitab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;border-radius:11px;border:1px solid var(--line);background:#ffffff05;text-align:left;transition:all .25s var(--ease)}.aitab b{font-family:var(--f-display);font-size:24px;font-weight:400;line-height:1}.aitab span{font-size:10.5px;color:var(--text-3);font-weight:600}.aitab:hover{border-color:var(--line-3)}.aitab.is-on{border-color:#ff6a2b8c;background:#ff6a2b12}.aitab.is-on b{color:var(--accent)}.ailist{display:grid;gap:8px}.icard{padding:13px 14px;border-radius:13px;border:1px solid var(--line);background:#ffffff06;cursor:pointer;transition:border-color .25s,background .25s}.icard:hover{border-color:var(--line-3);background:#ffffff0a}.icard-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.icard-h b{font-size:13px;line-height:1.3}.icard-h .code{color:var(--text-3)}.icard-m{font-size:11px;color:var(--text-3);margin-top:4px;font-variant-numeric:tabular-nums}.icard-c{display:flex;align-items:center;gap:10px;margin-top:8px}.icard-c .spark{width:60%;height:30px}.icard-s{display:flex;gap:7px;align-items:flex-start;margin-top:8px;font-size:12px;color:var(--text-2);line-height:1.45}.icard-s .ic{color:var(--violet);width:14px;height:14px;margin-top:2px}.icard-s em{display:block;font-style:normal;color:var(--accent-2)}.icard-s span+em{margin-left:0}.icard-f{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.icard-res{display:none;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--ok)}.icard.is-done{border-color:#5fd39a59;background:#5fd39a0d}.icard.is-done .icard-res{display:flex}.spark{display:block}.dcard{padding:14px;border-radius:12px;background:#ff6a2b0f;border:1px solid rgba(255,106,43,.25)}.dcard h3,.dcard-t{font-family:var(--f-display);font-weight:500;font-size:22px;margin:6px 0 4px}.dcard p{margin:0 0 10px;font-size:12px}.dl{display:grid;gap:4px;margin-top:8px}.dl-item{width:100%;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;min-height:42px;padding:6px 10px;border-radius:10px;text-align:left;font-size:12px}.dl-item>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.dl-item:hover{background:#ffffff0a}.pal-wrap{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;background:#05060873;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}.pal-wrap.is-open{opacity:1;visibility:visible;transition:opacity .25s}.pal{width:min(640px,calc(100vw - 24px));max-height:70vh;display:flex;flex-direction:column;overflow:hidden;transform:translateY(-10px) scale(.98);transition:transform .35s var(--ease);background:linear-gradient(180deg,#181c22f0,#0e1014f0)}.pal-wrap.is-open .pal{transform:none}.pal-top{display:flex;align-items:center;gap:12px;padding:0 16px;height:58px;border-bottom:1px solid var(--line)}.pal-top>.ic{width:20px;height:20px;color:var(--text-3)}.pal-in{flex:1;min-width:0;border:0;outline:0;background:none;font-size:17px}.pal-in::placeholder{color:var(--text-3)}.pal-list{flex:1;overflow-y:auto;padding:8px}.pal-g{padding:10px 10px 6px}.pal-row{width:100%;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;text-align:left}.pal-row.is-sel{background:#ffffff0f}.pal-row.is-sel .pal-ic{color:var(--accent);border-color:#ff6a2b80}.pal-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid var(--line-2);color:var(--text-3)}.pal-row.is-warn .pal-ic{color:var(--crit)}.pal-txt{display:flex;flex-direction:column;min-width:0}.pal-txt b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pal-txt span{font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;color:var(--text-3);margin-top:2px}.pal-side{display:flex;align-items:center;gap:10px;font-size:11px}.pal-empty{padding:28px 14px;color:var(--text-3);text-align:center}.pal-foot{padding:10px 16px;border-top:1px solid var(--line);font-size:11px;color:var(--text-3)}.sheet{position:fixed;inset:0;z-index:15;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(14px);padding-top:var(--top);background:radial-gradient(70% 45% at 85% 0%,rgba(255,106,43,.07),transparent 70%),#0b0d10;transition:opacity .4s var(--ease),transform .5s var(--ease),visibility 0s .5s;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}.sheet.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .4s var(--ease),transform .5s var(--ease),visibility 0s}.sheet-inner{max-width:1280px;margin:0 auto;padding:20px 32px 80px}body[data-route=inventory] .rail,body[data-route=orders] .rail,body[data-route=docks] .rail,body:not([data-route=warehouse]) .strip,body:not([data-route=warehouse]) .legend,body:not([data-route=warehouse]) .tooldock,body:not([data-route=warehouse]) .camctl,body:not([data-route=warehouse]) .cam-hint{opacity:0;pointer-events:none}.back-btn{display:inline-flex;align-items:center;gap:8px;color:var(--text-3);font-size:12px;font-weight:600;margin-bottom:18px}.back-btn:hover{color:var(--text)}.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.view-title{font-family:var(--f-display);font-weight:300;font-size:64px;line-height:.95;letter-spacing:-.02em;margin:0}.view-sub{margin:10px 0 0;color:var(--text-2);font-size:13.5px}.statcards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}.statcard{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border-radius:14px;border:1px solid var(--line-2);background:#ffffff06;text-align:left;transition:border-color .2s,background .2s}.statcard b{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1;font-variant-numeric:tabular-nums}button.statcard:hover{border-color:var(--line-3)}.statcard.is-on{border-color:currentColor;background:#ffffff0d}.statcard.st-low b{color:#ff8a7e}.statcard.st-over b{color:var(--ice)}.statcard.st-dead b{color:var(--violet)}.statcard.st-low,.statcard.st-over,.statcard.st-dead{background:#ffffff06;color:inherit}.filters{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;background:#0b0d10;box-shadow:0 10px 12px -8px #0b0d10}.filters .seg{flex:none}.tcount{font-size:11px;color:var(--text-3);margin:4px 0 8px}.tbl{border:1px solid var(--line-2);border-radius:14px;overflow:clip}.tr{display:grid;grid-template-columns:104px minmax(220px,2.4fr) 52px 104px 86px 92px 80px 136px 104px;align-items:center;gap:12px;padding:0 16px;min-height:52px;border-top:1px solid var(--line);cursor:pointer;transition:background .15s}.tr:hover{background:#ffffff08}.tr.thead{position:sticky;top:58px;z-index:2;min-height:40px;border-top:0;background:#111418;cursor:default}.th{text-align:left;font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.th:hover{color:var(--text-2)}.th.is-sort{color:var(--text)}.th.is-sort:after{content:" \2191";color:var(--accent)}.th.is-sort.desc:after{content:" \2193"}.th.r,.td.r{text-align:right}.th.c,.td.c{text-align:center}.td{min-width:0;font-size:12.5px}.td.code{color:var(--text-2)}.td.prod{display:flex;flex-direction:column}.td.prod b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td.prod .muted{font-size:11px}.td.num{font-variant-numeric:tabular-nums;font-family:var(--f-mono);font-stretch:87.5%;font-size:11.5px}.td.sp .spark{width:100%;height:26px}.loc-chip{display:inline-block;padding:3px 7px;border-radius:6px;background:#ffffff0d;font-family:var(--f-mono);font-stretch:87.5%;font-size:10.5px;color:var(--text-2)}.tr:hover .loc-chip{background:#ff6a2b26;color:#ffd6c4}.banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:#ff6a2b12;border:1px solid rgba(255,106,43,.25);margin-bottom:14px;font-size:13px}.banner .ic{color:var(--accent)}.count-down{margin-left:auto;font-family:var(--f-mono);font-stretch:87.5%;font-size:12px;color:var(--accent-2)}.seg.tabs{display:inline-flex;margin-bottom:14px}.seg.tabs button{gap:8px}.seg.tabs .count{background:#ffffff1a;color:var(--text-2)}.seg.tabs .is-on .count{background:var(--accent);color:#140a05}.olist-v{display:grid;gap:6px}.orow{display:grid;grid-template-columns:150px minmax(180px,1.6fr) 150px 120px 130px 100px 220px;align-items:center;gap:14px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:#ffffff05;font-size:12.5px}.orow>div{display:flex;flex-direction:column;gap:2px;min-width:0}.orow .muted{font-size:11px}.orow-id{flex-direction:row!important;align-items:center;gap:6px!important;flex-wrap:wrap}.orow-id .code{font-size:12px;font-weight:600}.orow-cut b{font-family:var(--f-mono);font-stretch:87.5%;font-weight:500}.orow-prog{flex-direction:row!important;align-items:center;gap:8px!important}.prog{flex:1;height:5px;border-radius:5px;background:#ffffff12;overflow:hidden}.prog i{display:block;height:100%;background:var(--accent);border-radius:inherit}.r-shipped .prog i{background:var(--ok)}.r-packed .prog i{background:var(--in)}.orow-a{flex-direction:row!important;gap:6px!important;justify-content:flex-end}.orow.r-shipped{opacity:.6}.docks-grid{display:grid;grid-template-columns:1fr 320px;gap:14px;align-items:start}.glass-card{padding:14px;border-radius:14px;border:1px solid var(--line-2);background:#ffffff06}.gantt{position:relative;padding:14px 0 10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}.gt-inner{position:relative;min-width:1900px;padding:0 16px}.gt-axis{position:relative;height:20px;margin-left:128px;border-bottom:1px solid var(--line)}.gt-tick{position:absolute;transform:translate(-50%);font-family:var(--f-mono);font-stretch:87.5%;font-size:9.5px;color:var(--text-3)}.gt-rows{position:relative}.gt-row{display:grid;grid-template-columns:128px 1fr;align-items:center;height:54px;border-bottom:1px solid var(--line)}.gt-door{position:sticky;left:0;z-index:2;height:100%;align-content:center;background:#111418;box-shadow:14px 0 14px -6px #111418;display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:8px;font-size:11px}.gt-door b{grid-row:span 2;font-family:var(--f-mono);font-stretch:87.5%;font-size:13px;align-self:center}.gt-door .t-in{color:var(--in)}.gt-door .t-out{color:var(--out)}.gt-track{position:relative;height:38px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 6.25%)}.gt-b{position:absolute;top:3px;bottom:3px;display:flex;flex-direction:column;justify-content:center;padding:0 8px;border-radius:8px;overflow:hidden;text-align:left;font-size:10.5px;line-height:1.25;white-space:nowrap;border:1px solid transparent;transition:filter .2s}.gt-b b{font-weight:700;overflow:hidden;text-overflow:ellipsis}.gt-b span{color:inherit;opacity:.75;overflow:hidden;text-overflow:ellipsis}.gt-b.t-in{background:#6aa5ff29;color:#cfe0ff;border-color:#6aa5ff59}.gt-b.t-out{background:#5fd39a21;color:#c9f3dd;border-color:#5fd39a4d}.gt-b.s-done{opacity:.38}.gt-b.s-atDoor{background:#ff6a2b3d;border-color:var(--accent);color:#fff;box-shadow:0 0 18px -4px #ff6a2bcc}.gt-b.s-late{border:1px dashed var(--crit)}.gt-b.is-sel{outline:2px solid #fff;outline-offset:1px}.gt-b:hover{filter:brightness(1.2)}.gt-now{position:absolute;top:-20px;bottom:0;width:1px;background:var(--accent);box-shadow:0 0 10px var(--accent);pointer-events:none}.gt-now span{position:absolute;top:-2px;left:0;transform:translate(-50%);padding:1px 6px;border-radius:6px;background:var(--accent);color:#140a05;font-family:var(--f-mono);font-stretch:87.5%;font-size:10px;font-weight:700}.docks-side{display:grid;gap:12px}.docks-side .dcard .btn{margin-top:12px}.docks-side .lbl{margin-bottom:8px}body:not([data-route=warehouse]) .topbar{background:#0b0d10f0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.tabbar{display:none}@media(max-width:1180px){.search-btn{min-width:0}.search-btn kbd{display:none}.search-btn span{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.clock span{display:none}.tool{padding:0 12px}.tool kbd,.cam-hint{display:none}.tr{grid-template-columns:96px minmax(180px,2fr) 44px 96px 76px 70px 110px 96px}.tr>:nth-child(6){display:none}.orow{grid-template-columns:130px 1fr 130px 100px 110px 96px auto}}@media(max-width:760px){:root{--top: 56px;--m: 10px}.topbar{gap:10px;padding:0 10px;background:linear-gradient(180deg,#0a0c0ff2,#0a0c0f99)}.brand{min-width:0}.brand-txt b{font-size:16px}.nav,.clock{display:none}.search-btn{width:38px;padding:0;justify-content:center}.rail,.strip,.cam-hint{display:none}.mkpis{position:fixed;left:0;right:0;top:var(--top);z-index:10;display:flex;gap:6px;padding:4px 10px 8px;overflow-x:auto;scrollbar-width:none}.mkpis::-webkit-scrollbar{display:none}.mkpi{flex:none;display:flex;flex-direction:column;padding:7px 11px;border-radius:11px;background:#12151ad1;border:1px solid var(--line-2)}.mkpi b{font-family:var(--f-display);font-weight:500;font-size:18px;line-height:1.05}.mkpi span{font-size:9.5px;color:var(--text-3);white-space:nowrap}.legend{top:calc(var(--top) + 62px);right:10px;width:auto;padding:6px;gap:5px}.legend-l,.grad-l{display:none}.legend .seg button{height:28px;padding:0 8px;font-size:11px}.legend .seg button span{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.legend .grad{height:4px}.camctl{right:10px;top:calc(var(--top) + 118px);bottom:auto}.camctl .icon-btn:not(:last-child){display:none}.tooldock{left:50%!important;bottom:calc(94px + env(safe-area-inset-bottom));padding:4px;gap:2px;border-radius:14px}.tool{flex-direction:column;gap:3px;height:50px;padding:0 10px;font-size:10px;min-width:70px;justify-content:center}.tool .count{position:absolute;top:3px;right:8px;min-width:16px;height:16px;font-size:9px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#0c0e12f0;border-top:1px solid var(--line-2);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}.tab-a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-3);font-size:10.5px;font-weight:600}.tab-a .ic{width:20px;height:20px}.tab-a.is-on{color:var(--text)}.tab-a.is-on .ic{color:var(--accent)}.tab-a .count{position:absolute;top:6px;left:calc(50% + 6px);min-width:16px;height:16px;font-size:9px}.badge{left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));height:30px;justify-content:center;gap:8px;padding:0 12px;background:linear-gradient(180deg,transparent,rgba(10,12,15,.9))}.badge-full{display:none}.badge-short{display:inline}.badge-link{min-width:0;height:auto;border:0;background:none;padding:0;font-size:8.5px;line-height:1.3;font-stretch:75%;text-align:center}.badge-reset span{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}body:not([data-route=warehouse]) .badge{background:#0b0d10;border-top:1px solid var(--line)}.drawer{inset:auto 0 0;width:auto;max-height:60vh;height:60vh;border-radius:20px 20px 0 0;z-index:45;transform:translateY(105%);padding-bottom:env(safe-area-inset-bottom)}.drawer.is-open{transform:none}.drawer.is-min{transform:translateY(calc(100% - 118px))}.drawer-grip{display:block;position:absolute;top:0;left:0;right:0;height:22px;cursor:grab}.drawer-grip:after{content:"";position:absolute;left:50%;top:8px;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:#ffffff38}.drawer-head{padding:22px 16px 10px}.drawer-title{font-size:24px}.drawer-body{padding:12px 16px 24px}body.has-drawer .tooldock,body.has-drawer .badge{opacity:0;pointer-events:none}body.has-drawer .legend{transform:none}body.has-drawer .camctl{right:10px}.toasts{top:calc(var(--top) + 66px);width:calc(100vw - 24px)}.pal-wrap{padding-top:10px}.pal{max-height:calc(100vh - 20px)}.sheet{bottom:calc(60px + env(safe-area-inset-bottom))}.sheet-inner{padding:14px 14px 60px}.back-btn{display:none}.view-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.view-title{font-size:42px}.statcards{grid-template-columns:repeat(2,1fr)}.statcard b{font-size:24px}.filters{top:0}.search-field{min-width:0;flex:1 1 100%}.filters .seg{overflow-x:auto;max-width:100%}.tbl{border:0;border-radius:0}.tr.thead{display:none}.tr{grid-template-columns:1fr auto;grid-template-areas:"prod st" "code qty" "sp sp";gap:4px 10px;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:6px}.tr>.td{display:none}.tr>.td.prod{display:flex;grid-area:prod}.tr>.td:nth-child(1){display:block;grid-area:code;font-size:10.5px}.tr>.td:nth-child(5){display:block;grid-area:qty}.tr>.td:nth-child(8){display:block;grid-area:sp}.tr>.td:nth-child(9){display:block;grid-area:st;justify-self:end}.orow{grid-template-columns:1fr auto;gap:6px 10px}.orow-car,.orow-prog{display:none!important}.orow-a{grid-column:span 2;justify-content:flex-start!important}.docks-grid{grid-template-columns:1fr}.gantt{overflow-x:auto}.gt-axis,.gt-rows{min-width:900px}.intro-skip{right:50%;transform:translate(50%);bottom:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:761px)and (max-width:1420px){body.has-drawer .tool>span:not(.count){position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}body.has-drawer .tool{padding:0 13px}body.has-drawer .tool .count{position:absolute;top:2px;right:2px;min-width:16px;height:16px;font-size:9px}}
