.shepherd-button{background:#3288e6;border:0;border-radius:3px;color:#ffffffbf;cursor:pointer;margin-right:.5rem;padding:.5rem 1.5rem;transition:all .5s ease}.shepherd-button:not(:disabled):hover{background:#196fcc;color:#ffffffbf}.shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:#000000bf}.shepherd-button.shepherd-button-secondary:not(:disabled):hover{background:#d6d9db;color:#000000bf}.shepherd-button:disabled{cursor:not-allowed}.shepherd-footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:flex;justify-content:flex-end;padding:0 .75rem .75rem}.shepherd-footer .shepherd-button:last-child{margin-right:0}.shepherd-cancel-icon{background:transparent;border:none;color:#808080bf;cursor:pointer;font-size:2em;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:#000000bf}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:#808080bf}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:#000000bf}.shepherd-title{color:#000000bf;display:flex;flex:1 0 auto;font-size:1rem;font-weight:400;margin:0;padding:0}.shepherd-header{align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:flex;justify-content:flex-end;line-height:2em;padding:.75rem .75rem 0}.shepherd-has-title .shepherd-content .shepherd-header{background:#e6e6e6;padding:1em}.shepherd-text{color:#000000bf;font-size:1rem;line-height:1.3em;padding:.75em}.shepherd-text p{margin-top:0}.shepherd-text p:last-child{margin-bottom:0}.shepherd-content{border-radius:5px;outline:none;padding:0}.shepherd-element{background:#fff;border:none;border-radius:5px;box-shadow:0 1px 4px #0003;margin:0;max-width:400px;opacity:0;outline:none;padding:0;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{height:16px;position:absolute;width:16px;z-index:-1}.shepherd-arrow:before{background:#fff;content:"";transform:rotate(45deg)}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:#e6e6e6}.shepherd-target-click-disabled.shepherd-target-click-disabled.shepherd-target-click-disabled,.shepherd-target-click-disabled.shepherd-target-click-disabled.shepherd-target-click-disabled *{pointer-events:none}.shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0s .3s,opacity .3s 0s;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transform:translateZ(0);transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}.shepherd-element.relay-shep{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #00000040;max-width:380px;font:14px/1.45 var(--font)}.shepherd-element.relay-shep .shepherd-arrow:before{background:var(--panel);border:1px solid var(--line)}.shepherd-element.relay-shep .shepherd-header{background:transparent;padding:12px 14px 0}.shepherd-element.relay-shep .shepherd-title{color:var(--ink);font-weight:600;font-size:15px}.shepherd-element.relay-shep .shepherd-cancel-icon{color:var(--mute)}.shepherd-element.relay-shep .shepherd-cancel-icon:hover{color:var(--ink)}.shepherd-element.relay-shep .shepherd-text{color:var(--ink);padding:10px 14px;font-size:13.5px}.shepherd-element.relay-shep .shep-count{color:var(--mute);font-family:var(--num);font-size:12px;margin-top:8px}.shepherd-element.relay-shep .shepherd-footer{padding:0 14px 12px;gap:6px}.shepherd-element.relay-shep .shepherd-button{background:var(--accent);color:var(--accent-ink);border-radius:6px;font:600 13px var(--font);padding:7px 14px}.shepherd-element.relay-shep .shepherd-button:not(:disabled):hover{background:var(--accent);filter:brightness(.94);color:var(--accent-ink)}.shepherd-element.relay-shep .shepherd-button.shepherd-button-secondary{background:var(--bg);color:var(--ink);border:1px solid var(--line)}.shepherd-element.relay-shep .shepherd-button.shepherd-button-secondary:not(:disabled):hover{background:var(--bg);color:var(--ink)}.shepherd-modal-overlay-container.shepherd-modal-is-visible{opacity:.45}.shepherd-element.relay-shep:focus-visible{outline:2px solid var(--accent)}.dock{min-height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-size:16px}.dockhead{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--slate);color:#fff;position:sticky;top:0;z-index:5}.dockhead .dockbrand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:600}.dockhead .btn{background:transparent;color:#fff;border-color:#ffffff59}.hubpick{font:inherit;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff}.hubpick option{color:var(--slate)}.net{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:13px;color:#ffffffd9;white-space:nowrap}.net i{width:10px;height:10px;border-radius:50%;background:var(--ok);display:inline-block}.net.off i{background:var(--warn)}.scanbox{display:flex;gap:8px;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:52px;z-index:4}.scanbox input{flex:1;font:inherit;font-size:18px;padding:12px 14px;border-radius:10px;border:2px solid var(--line);background:var(--bg);color:var(--ink);min-width:0}.scanbox input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.dockmain{flex:1;padding:14px 12px 90px;max-width:760px;width:100%;margin:0 auto;box-sizing:border-box}.docknav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);z-index:5}.docknav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;font-size:11.5px;color:var(--mute);text-decoration:none}.docknav a .ic{font-size:20px;line-height:1}.docknav a.on{color:var(--ink);font-weight:600;box-shadow:inset 0 3px 0 var(--accent)}.dock .btn.big{font-size:17px;padding:14px 18px;border-radius:10px;min-height:54px}.dock .btn.big.cam{padding:0 16px}.dock .btn.primary.big{font-size:18px}.dock .btn.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.dock .btn.danger{border-color:var(--bad);color:var(--bad)}.dock input,.dock select,.dock textarea{font:inherit;font-size:17px;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);width:100%;box-sizing:border-box}.dock label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--mute)}.dock h2{margin:0 0 6px;font-size:20px}.dock h3{margin:14px 0 6px;font-size:13px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}.dock .muted{color:var(--mute);font-size:14px}.dock .lead{font-size:18px;line-height:1.5}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:12px 0}.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:110px;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;font-weight:600}.tile .ic{font-size:30px}.banner{border-radius:12px;padding:18px 16px;margin:10px 0 14px;font-size:20px;font-weight:600;display:flex;align-items:center;gap:12px}.banner .big{font-size:34px;line-height:1}.banner small{display:block;font-size:14px;font-weight:400;margin-top:4px;opacity:.9}.banner.ok{background:var(--ok);color:#fff}.banner.bad{background:var(--bad);color:#fff}.banner.queued{background:var(--warn);color:#fff}.banner.info{background:var(--panel);border:1px solid var(--line);color:var(--ink)}.nextcard{background:var(--panel);border:2px solid var(--accent);border-radius:14px;padding:16px;margin-bottom:12px}.nextcard .id{font-family:var(--num);font-size:30px;font-weight:600;letter-spacing:.02em}.nextcard .meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;color:var(--mute);font-size:15px}.nextcard .meta b{color:var(--ink);font-family:var(--num)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tags .badge{font-size:12.5px;padding:3px 9px}.progress{height:10px;border-radius:999px;background:var(--line);overflow:hidden;margin:6px 0 12px}.progress i{display:block;height:100%;background:var(--accent)}.slotlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.slotlist li{display:flex;gap:10px;align-items:center;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:15px}.slotlist li.done{opacity:.55;text-decoration:line-through}.slotlist li.next{border-color:var(--accent);border-width:2px}.slotlist .seq{font-family:var(--num);font-weight:600;min-width:28px;text-align:right}.slotlist .st{width:10px;height:10px;border-radius:50%;background:var(--line);display:inline-block}.slotlist .st.received,.slotlist .st.measured,.slotlist .st.labeled,.slotlist .st.staged{background:var(--s1)}.slotlist .st.loaded,.slotlist .st.departed,.slotlist .st.at_hub,.slotlist .st.delivered{background:var(--ok)}.slotlist .st.expected{background:var(--warn)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin:10px 0;display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{flex:1;min-width:120px}.toggle{display:flex;gap:0}.toggle .btn{flex:1;border-radius:0}.toggle .btn:first-child{border-radius:10px 0 0 10px}.toggle .btn:last-child{border-radius:0 10px 10px 0}.toggle .btn.on.bad{background:var(--bad);border-color:var(--bad);color:#fff}.toggle .btn.on.good{background:var(--ok);border-color:var(--ok);color:#fff}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.checklist li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.checklist li.fail{border-color:var(--bad)}.checklist textarea{grid-column:1 / 3;min-height:44px}.photo{display:inline-flex;align-items:center;gap:8px}.photo .thumb{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.camwrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}.camwrap video{width:100%;max-width:560px;border-radius:12px}.camfallback{color:#fff;font-size:16px;text-align:center;max-width:420px}.docktoast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);padding:12px 18px;border-radius:10px;font-weight:600;z-index:60;max-width:92vw;color:#fff;background:var(--ok)}.docktoast.bad{background:var(--bad)}.docktoast.info{background:var(--slate)}.osdlist li{flex-direction:column;align-items:flex-start;gap:4px}@media (min-width: 720px){.dock{font-size:15px}.dockmain{padding-bottom:80px}}:root{--slate: #2B3440;--orange: #FF9F1C;--bg: #EEF0F2;--panel: #FFFFFF;--line: #CCD2D9;--ink: #2B3440;--mute: #5B6878;--accent: #FF9F1C;--accent-ink: #2B3440;--accent-soft: rgba(255, 159, 28, .14);--ok: #2F8F5B;--bad: #C8352B;--warn: #C9920A;--s1: #2F6DB5;--s2: #2C8F7A;--s3: #B9791C;--font: "IBM Plex Sans", system-ui, sans-serif;--num: "IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1B2129;--panel: #2B3440;--line: #3E4A58;--ink: #F2F4F7;--mute: #A3AEBB;color-scheme:dark}}:root[data-theme=dark]{--bg: #1B2129;--panel: #2B3440;--line: #3E4A58;--ink: #F2F4F7;--mute: #A3AEBB;color-scheme:dark}header .nav{display:flex;gap:6px;align-items:center;overflow-x:auto;white-space:nowrap}header .nav a{text-decoration:none}header .queue .qlabel{font-size:12.5px}header .who{text-transform:capitalize}.bell,.helpmenu,.docs{position:relative;display:inline-block}.bell .pill{position:relative}.bell .count{position:absolute;top:-6px;right:-6px;background:var(--bad);color:#fff;font:600 10.5px var(--num);border-radius:999px;padding:1px 5px;min-width:16px;text-align:center}.dropdown{position:absolute;right:0;top:calc(100% + 6px);min-width:280px;max-width:min(420px,92vw);max-height:70vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #0000002e;z-index:20;padding:6px;text-align:left;white-space:normal;color:var(--ink)}.docs .dropdown{left:0;right:auto;min-width:240px}.dropdown .item{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--ink);padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.dropdown .item:hover,.dropdown .item:focus-visible{background:var(--bg);outline:none}.dropdown .item:disabled{opacity:.5;cursor:default}.dropdown .dd-section{color:var(--mute);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:10px 10px 4px;border-top:1px solid var(--line);margin-top:4px}.dd-head{display:flex;align-items:center;gap:10px;padding:4px 6px 8px;font-size:12.5px;color:var(--mute);flex-wrap:wrap}.dd-head .spacer,.bar-row .spacer,.actions .spacer{flex:1}.feed{list-style:none;margin:0;padding:0}.feed li{padding:8px 10px;border-top:1px solid var(--line);font-size:13px}.feed li.read{opacity:.7}.feed .subj{font-weight:600;display:flex;align-items:center;gap:6px}.feed .dot-new{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}.feed .body{color:var(--mute);font-size:12.5px;white-space:pre-line;margin-top:2px}.feed .meta{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--mute);font-size:12px;margin-top:4px}.fieldhelp{margin:0 0 6px;padding:0 10px;font-size:12.5px}.fieldhelp dt{font-weight:600;margin-top:6px;text-transform:capitalize}.fieldhelp dd{margin:0;color:var(--mute)}.ex{color:var(--mute);font-style:italic}.muted{color:var(--mute)}.small{font-size:12px}.ok-text{color:var(--ok)}.bad-text{color:var(--bad)}.help{position:relative;display:inline-block;margin-left:4px;vertical-align:middle}.help-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--mute);font:600 11px var(--font);cursor:help;padding:0;line-height:16px}.help-btn:hover,.help-btn[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.help-pop{position:absolute;left:0;top:calc(100% + 4px);z-index:30;width:260px;background:var(--ink);color:var(--bg);padding:8px 10px;border-radius:8px;font-size:12.5px;line-height:1.4;font-weight:400;text-transform:none;box-shadow:0 8px 24px #00000040}.help-pop .ex{color:var(--line)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px}.panel.sub{background:var(--bg);padding:10px 12px}.panel h3{margin-top:0}.row2,.row3,.row4{display:grid;gap:10px 14px;margin:8px 0}.row2{grid-template-columns:repeat(2,minmax(0,1fr))}.row3{grid-template-columns:repeat(3,minmax(0,1fr))}.row4{grid-template-columns:repeat(4,minmax(0,1fr))}.row2 label,.row3 label,.row4 label,.mapgrid label,.units label,.scen-form>label,.lbl{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--mute);min-width:0}.row2 input,.row3 input,.row4 input,.row2 select,.row3 select,.row4 select,.mapgrid select,.units select,.scen-form input{width:100%;min-width:0}.lbl{flex-direction:row;align-items:center;gap:6px}.chk{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;color:var(--ink)!important}.chk.big{font-size:14px;margin-bottom:8px}.optrow{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.triple{display:flex;gap:4px}.tablewrap{overflow-x:auto;margin:8px 0}table.grid{width:100%;border-collapse:collapse;font-size:13px}table.grid th{text-align:left;color:var(--mute);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}table.grid td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.grid .num{font-family:var(--num);text-align:right;white-space:nowrap}table.grid tr.exc td{background:#c8352b12}table.grid tr.dirty td{background:var(--accent-soft)}table.grid tr.yard td{opacity:.7}table.grid tr[tabindex]{cursor:pointer}table.grid tr[tabindex]:hover td{background:var(--bg)}table.grid td.acts{white-space:nowrap;display:flex;gap:4px}table.grid td.wrap{white-space:normal}table.grid th.mapped{color:var(--accent);border-bottom-color:var(--accent)}table.grid caption{caption-side:top;text-align:left;padding:4px 0 6px;font-size:12.5px}table.grid td.cell,table.matrix td.cell{text-align:center}table.grid input,table.grid select{padding:3px 6px}.viol.inline li{margin-bottom:2px;padding:3px 6px;font-size:12px}.excs{display:flex;flex-wrap:wrap;gap:4px}.excs .badge{font-size:10.5px;padding:1px 6px}.badge.late{cursor:pointer;background:var(--panel)}.nums{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--mute);align-items:center}.nums b{color:var(--ink);font-family:var(--num)}.sugg{list-style:none;margin:0 0 12px;padding:0;font-size:12.5px}.sugg li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;background:var(--bg);border-radius:6px;margin-bottom:4px}.panel .sugg li{background:var(--panel);border:1px solid var(--line)}.scen{margin:0 0 12px}.scen .opt{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;margin-bottom:4px;font-size:12.5px}.scen .opt.on{border-color:var(--accent);background:var(--accent-soft)}.scen .opt b{font-family:var(--num)}.scen .opt .m{color:var(--mute)}.scen-form{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.scen-form .variant{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.scen-form .variant input:first-child{flex:1;min-width:140px}.optgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.optgrid h3{margin-top:4px}.optgrid>div:last-child{grid-column:1 / -1}.totals{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:13px}.inbound li{background:var(--panel);border:1px solid var(--line)}.card.plan .open{all:unset;display:flex;flex-direction:column;gap:6px;cursor:pointer;width:100%;box-sizing:border-box}.card.plan .open:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.card.plan.st-bad{border-left:4px solid var(--bad)}.card.plan.st-warn{border-left:4px solid var(--warn)}.card.plan.st-ok{border-left:4px solid var(--ok)}.card.plan .late{align-self:flex-start;margin-top:6px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;width:min(560px,100%);max-height:90vh;overflow:auto}.zpl{font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px;white-space:pre-wrap;word-break:break-all;max-height:160px;overflow:auto}.empty a{color:var(--accent)}.mapgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px}.mapgrid label.req span:first-child{color:var(--ink);font-weight:500}.units{display:flex;gap:14px;flex-wrap:wrap}.preview details summary{cursor:pointer;color:var(--mute);font-size:12.5px;margin:6px 0}.dockwrap{padding:10px}svg.dock,svg.dockplan{width:100%;height:auto;display:block;max-height:520px}svg.dock .floor,svg.dockplan .floor{fill:var(--bg);stroke:var(--line)}svg.dock .wall,svg.dockplan .wall{fill:var(--line)}svg.dock .axis,svg.dockplan .axis{fill:var(--mute);font-family:var(--font)}svg.dock .lane rect:first-of-type{fill:var(--panel);stroke:var(--line);stroke-width:2}svg.dock .lane.sel rect:first-of-type{stroke:var(--accent);stroke-width:4}svg.dock .lane.free rect:first-of-type{stroke-dasharray:10 8}svg.dock .lane .title{fill:var(--ink);font-family:var(--font);font-weight:600}svg.dock .lane .meta{fill:var(--mute);font-family:var(--num)}svg.dock .lane[role=button]{cursor:pointer}svg.dock .lane:focus-visible{outline:none}svg.dock .lane:focus-visible rect:first-of-type{stroke:var(--accent);stroke-width:4}svg.dock .exc{fill:var(--bad)}svg.dock .chip text{font-family:var(--num);pointer-events:none}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin-top:8px;align-items:center}.legend span{display:inline-flex;align-items:center}.stage-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}.stagecard{background:var(--panel);margin-bottom:14px}.stagecard.sel{border-color:var(--accent)}.stagecard .head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.stagecard .head h4{margin:0}.stagecard .head h4 a{text-decoration:none}.stagecard .head .btn{margin-left:auto}.stagecard .fit{font-size:12.5px;margin:6px 0}.stagecard table.pallets select{max-width:110px}.split{background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:10px}table.mini{border-collapse:collapse;font-size:12.5px}table.mini th,table.mini td{padding:3px 6px;text-align:left;color:var(--mute)}.side h3{margin-top:12px}.side .sugg li{background:var(--panel);border:1px solid var(--line)}.wizard{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;max-width:1300px;margin:0 auto;align-items:start}.rail{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;position:sticky;top:0}.rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.rail .step{all:unset;display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:13px}.rail .step:hover{background:var(--bg)}.rail .step.on{background:var(--ink);color:var(--bg)}.rail .step:focus-visible{outline:2px solid var(--accent)}.rail .tick{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font:600 11px var(--num);flex:none}.rail .step.done .tick{background:var(--ok);color:#fff;border-color:var(--ok)}.rail .step.on .tick{border-color:var(--bg)}.rail .lbl{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rail .badge{font-size:10px;padding:0 6px}.rail .counts{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:10px}.steppanel{min-height:400px}.stephead{margin-bottom:10px}.stephead .q{font-size:15px;color:var(--ink);margin-bottom:6px;padding-left:10px;border-left:3px solid var(--accent)}.nav-steps{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.dockgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.dockside .card{background:var(--bg)}.dockside .row2{grid-template-columns:1fr 1fr}svg.dockplan{touch-action:none;-webkit-user-select:none;user-select:none}svg.dockplan .lane rect:first-of-type{fill:#2f6db52e;stroke:var(--s1);stroke-width:2;cursor:grab}svg.dockplan .lane text{fill:var(--ink);font-family:var(--font);pointer-events:none}svg.dockplan .lane.sel rect:first-of-type{stroke:var(--accent);stroke-width:4}svg.dockplan .lane.bad rect:first-of-type{stroke:var(--bad);fill:#c8352b2e}svg.dockplan .obstacle rect:first-of-type{fill:var(--mute);stroke:var(--ink);cursor:grab;opacity:.8}svg.dockplan .obstacle text{fill:#fff;font-family:var(--font);pointer-events:none}svg.dockplan .obstacle.sel rect:first-of-type{stroke:var(--accent);stroke-width:4}svg.dockplan .door rect{fill:var(--accent);stroke:var(--ink);cursor:ew-resize}svg.dockplan .door text{fill:#fff;font-family:var(--num);pointer-events:none}svg.dockplan .door.sel rect{stroke:var(--ink);stroke-width:4}svg.dockplan .door.bad rect{fill:var(--bad)}svg.dockplan .handle{fill:var(--panel);stroke:var(--ink);cursor:nwse-resize}svg.dockplan g:focus-visible{outline:none}svg.dockplan g:focus-visible rect:first-of-type{stroke:var(--accent);stroke-width:4}table.matrix-t td,table.matrix-t th{white-space:nowrap}table.matrix{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}table.matrix th{text-align:left;color:var(--mute);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line)}table.matrix th:not(:first-child){text-align:center}table.matrix td{padding:8px;border-bottom:1px solid var(--line)}table.matrix tr.dim td{opacity:.45}table.matrix input[type=checkbox]{width:18px;height:18px}@media (max-width: 900px){header .nav{gap:4px;flex:0 1 auto;min-width:0}header .nav a{padding:3px 7px;font-size:11.5px}header .queue .qlabel,header .who{display:none}.app.single>main{padding:12px}.row2,.row3,.row4{grid-template-columns:1fr 1fr}.stage-grid,.dockgrid,.wizard{grid-template-columns:1fr}.rail{position:static}.rail ol{flex-direction:row;flex-wrap:wrap}.rail .step{width:auto}.rail .lbl .badge{display:none}.dropdown{position:fixed;left:8px;right:8px;top:56px;max-width:none}.optgrid,.mapgrid{grid-template-columns:1fr}svg.dock,svg.dockplan{max-height:60vh}}@media (max-width: 560px){.row2,.row3,.row4{grid-template-columns:1fr}.board .bar-row h3{width:100%}}.analytics .toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.analytics .toolbar h2{margin:0;font-size:18px}.analytics .err{color:var(--bad)}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:16px}.tile-kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border-left-width:4px}.tile-kpi.ok{border-left-color:var(--line)}.tile-kpi.warn{border-left-color:var(--warn)}.tile-kpi.bad{border-left-color:var(--bad)}.tile-kpi .k{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em}.tile-kpi .v{font-family:var(--num);font-size:24px;font-weight:600;color:var(--ink);line-height:1.15}.tile-kpi .s{font-size:12px;color:var(--mute)}.daybars{display:flex;align-items:flex-end;gap:2px;height:140px;padding:0 2px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.daybars .day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;padding:8px 2px 6px;min-width:0}.daybars .col{flex:1;width:100%;max-width:36px;display:flex;align-items:flex-end}.daybars .col i{display:block;width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:0;transition:height .2s}.daybars .v{font-family:var(--num);font-size:12px;color:var(--ink);margin-top:4px}.daybars .d{font-size:11px;color:var(--mute);white-space:nowrap}.regs{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:10px}html{scroll-padding-top:env(safe-area-inset-top,0px)}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font)}*{box-sizing:border-box}button{font:inherit}a{color:inherit}.app{display:grid;grid-template-columns:240px 1fr 280px;grid-template-rows:52px 1fr 44px;height:100%;gap:1px;background:var(--line)}.app.single{grid-template-columns:1fr;grid-template-rows:52px 1fr 44px}.app.single>main{grid-column:1 / 2;overflow:auto;padding:16px}header.top{grid-column:1 / 4;background:var(--panel);display:flex;align-items:center;gap:20px;padding:0 16px;min-width:0}.app.single>header.top,.app.single>footer{grid-column:1 / 2}header .brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;letter-spacing:.01em;white-space:nowrap;text-decoration:none;color:var(--ink)}header .brand svg{flex:none}header .brand b{font-weight:600}header .brand span{color:var(--mute);font-weight:400}header .queue{margin-left:auto;display:flex;gap:8px;align-items:center;color:var(--mute);overflow-x:auto;white-space:nowrap}.pill{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12.5px;background:var(--bg);color:var(--ink);cursor:pointer}.pill.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pill.static{cursor:default}.pill.approved{border-color:var(--ok);color:var(--ok)}.pill.rejected,.pill.bad{border-color:var(--bad);color:var(--bad)}aside,.right{background:var(--panel);overflow:auto;padding:12px}h3{margin:0 0 8px;font-size:12.5px;font-weight:600;color:var(--mute)}footer{grid-column:1 / 4;background:var(--panel);display:flex;align-items:center;gap:24px;padding:0 16px;font-size:13px;color:var(--mute);overflow:hidden;white-space:nowrap}footer b{color:var(--ink);font-family:var(--num);font-size:15px}.btn{font-size:13px;padding:6px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);width:100%;padding:10px;font-weight:600;font-size:14px}.btn.small{font-size:12px;padding:3px 8px}.btn:focus-visible,.pill:focus-visible,.pal:focus-visible,.card.plan:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}input[type=range]{padding:0;border:0;background:transparent}.route{display:flex;align-items:center;gap:4px;margin:0 0 12px;font-size:12.5px;flex-wrap:wrap}.route button{font-size:12.5px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:4px 8px;cursor:pointer}.route button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.route .arr{color:var(--mute)}.stopgroup{margin-bottom:12px}.stopgroup h4{margin:0 0 4px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.pal{display:flex;justify-content:space-between;gap:6px;width:100%;text-align:left;padding:5px 8px;border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:13px;background:transparent;color:var(--ink)}.pal:hover{background:var(--bg)}.pal.sel{background:var(--accent);color:var(--accent-ink)}.pal .w{font-family:var(--num);color:var(--mute);white-space:nowrap}.pal.sel .w,.pal.sel .tag{color:var(--accent-ink)}.pal .tag{font-size:11px;color:var(--mute);margin-left:6px}.pal.yard{opacity:.75;border:1px dashed var(--line)}.pal.flag{border-left:3px solid var(--accent)}main.stage{position:relative;background:var(--bg);overflow:hidden;touch-action:none;min-height:0}main.stage canvas{display:block}.stage .r3f{position:absolute;top:0;right:0;bottom:0;left:0}.views{position:absolute;top:12px;left:12px;display:flex;gap:6px;z-index:3;flex-wrap:wrap}.stopbar{position:absolute;top:12px;right:12px;display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 8px;z-index:3}.stopbar label{color:var(--mute);font-size:12.5px;margin-right:4px}.walk{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:3}.presets{position:absolute;bottom:14px;right:12px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:70%;z-index:3}.presets .btn{padding:8px 12px;min-width:40px}.hint{position:absolute;bottom:14px;left:12px;color:var(--mute);font-size:12px;background:var(--panel);padding:5px 9px;border-radius:6px;border:1px solid var(--line);z-index:3;max-width:40%}.label{position:absolute;left:0;top:0;pointer-events:none;background:var(--ink);color:var(--bg);font-size:12px;padding:4px 8px;border-radius:6px;transform:translate(-50%,-140%);white-space:nowrap;z-index:4}.label.bad{background:var(--bad);color:#fff}.wt{pointer-events:none;font:600 11px var(--num);color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8);white-space:nowrap;-webkit-user-select:none;user-select:none}.counters{position:absolute;top:56px;left:12px;display:flex;gap:6px;flex-wrap:wrap;max-width:70%;z-index:2}.counters span{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:3px 8px;font-size:12px;color:var(--mute)}.counters span b{color:var(--ink);font-family:var(--num);font-size:13px}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--panel);overflow:auto;padding:56px 12px 12px;z-index:2}.sheet table{width:100%;border-collapse:collapse;font-size:13px}.sheet th{text-align:left;color:var(--mute);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel)}.sheet td{padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.sheet tr[data-id]{cursor:pointer}.sheet tr.sel td{background:var(--accent-soft)}.sheet .num{font-family:var(--num);text-align:right}.sheet .sum{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 10px;color:var(--mute);font-size:12.5px;align-items:center}.sheet .sum b{color:var(--ink);font-family:var(--num)}.st{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--line)}.st.received{background:var(--s1)}.st.measured{background:var(--s2)}.st.labeled{background:var(--warn)}.st.staged{background:var(--ok)}.st.loaded{background:var(--ink)}.slotmap{width:100%;height:auto;display:block;touch-action:none}.slotmap rect.slot{cursor:grab}.slotmap rect.slot.locked{cursor:default}.slotmap text{font-family:var(--num);font-size:9px;fill:#fff;pointer-events:none}.slotmap text.axis{fill:var(--mute);font-size:8px}.slotmap .yardrow{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px dashed var(--line);border-radius:6px;padding:3px 8px;font-size:12px;cursor:grab;background:var(--bg)}.toast{position:absolute;left:50%;top:60px;transform:translate(-50%);background:var(--ok);color:#fff;padding:8px 14px;border-radius:8px;font-weight:500;z-index:5;max-width:90%}.toast.bad{background:var(--bad)}.toast.global{position:fixed}.note{position:absolute;left:12px;top:56px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;gap:6px;z-index:4}.note input{width:220px}.tandem{margin:4px 0 14px}.tandem input{width:100%}.tandem .row{display:flex;justify-content:space-between;font-size:12.5px}.gauge{margin-bottom:12px}.gauge .row{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:3px}.gauge .row b{font-family:var(--num);font-weight:600;font-size:14px}.bar{height:8px;background:var(--bg);border:1px solid var(--line);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ok);transition:width .15s}.bar i.warn{background:var(--warn)}.bar i.bad{background:var(--bad)}.viol{list-style:none;margin:0 0 12px;padding:0;font-size:12.5px}.viol li{padding:6px 8px;border-left:3px solid var(--bad);background:var(--bg);margin-bottom:4px;border-radius:0 6px 6px 0}.viol li.ok{border-color:var(--ok);color:var(--mute)}.card{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:12px;background:var(--bg)}.card h4{margin:0 0 6px;font-size:14px}.card p{margin:0 0 6px;color:var(--mute);font-size:12.5px}.card .actions{display:flex;gap:6px;flex-wrap:wrap}.flags{list-style:none;margin:0 0 12px;padding:0;font-size:12.5px}.flags li{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;background:var(--bg);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;margin-bottom:4px}.flags li.done{opacity:.55;border-color:var(--line)}.stack{display:flex;flex-direction:column;gap:8px}.board{max-width:1200px;margin:0 auto}.board .bar-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.board .bar-row .spacer{flex:1}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.card.plan{cursor:pointer;margin:0;background:var(--panel);display:flex;flex-direction:column;gap:6px;text-align:left;width:100%}.card.plan:hover{border-color:var(--ink)}.card.plan .head{display:flex;justify-content:space-between;align-items:center;gap:8px}.card.plan .head h4{margin:0;font-size:15px}.card.plan .lane{color:var(--mute);font-size:12.5px}.card.plan .nums{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--mute)}.card.plan .nums b{color:var(--ink);font-family:var(--num)}.card.plan .cut{font-size:12.5px;color:var(--mute)}.badge{font-size:11.5px;border-radius:999px;padding:2px 8px;border:1px solid var(--line);white-space:nowrap}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.bad{color:var(--bad);border-color:var(--bad)}.badge.warn{color:var(--warn);border-color:var(--warn)}.empty{color:var(--mute);padding:24px;text-align:center;border:1px dashed var(--line);border-radius:8px}.login{max-width:360px;margin:48px auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:10px}.login label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--mute)}.login .err{color:var(--bad);font-size:12.5px}.lockup{display:flex;align-items:center;gap:12px;margin-bottom:6px;color:var(--ink)}.lockup-text{display:flex;flex-direction:column;line-height:1}.lockup-boia{font-weight:600;font-size:26px;letter-spacing:.02em}.lockup-relay{font-weight:500;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--mute);margin-top:5px}@media (max-width: 900px){.presets{left:12px;right:12px;max-width:none;justify-content:center}.stopbar label{display:none}.app{grid-template-columns:1fr;grid-template-rows:52px 70vh auto auto 44px;height:auto;min-height:100%}aside{order:3;max-height:260px}.right{order:2}main.stage{order:1}header.top{grid-column:1 / 2;gap:10px;padding:0 10px}header .brand span{display:none}footer{grid-column:1 / 2;font-size:12px;gap:12px;order:4}.hint{display:none}.counters{max-width:none;right:12px}.app.single{grid-template-rows:52px 1fr 44px;height:100%}}@media (prefers-reduced-motion: reduce){.bar i{transition:none}}
