:root{--ink: #141A26;--ink-2: #1E2636;--canvas: #EDEFF3;--paper: #FFFFFF;--line: #DCE0E8;--text: #141A26;--muted: #667085;--spruce: #2F6F5E;--spruce-soft: #E3F0EC;--out: #B4321F;--out-soft: #FBE9E6;--warn: #B7791F;--warn-soft: #FDF3DC;--seam: #2F6F5E;--r: 14px;--display: "Space Grotesk", system-ui, sans-serif;--body: "Inter", system-ui, sans-serif;--mono: "Space Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--text);font:15px/1.45 var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}small{color:var(--muted);font-size:12.5px}h2,h3,h4{font-family:var(--display);margin:0}h4{margin:22px 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted);margin:6px 0 14px}.shell{display:grid;grid-template-columns:232px 1fr;height:100%}.side{background:var(--ink);color:#c9d1e0;display:flex;flex-direction:column;padding:20px 14px}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px;color:#fff}.brand b{font:700 19px var(--display);display:block}.brand small{color:#8a95ab}.drop{width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);display:inline-block;flex:none;background:conic-gradient(from 45deg,#c8202f,#f5b700,#1e8a4c,#1f4fbf,#6b3fa0,#c8202f)}.side nav{display:grid;gap:4px}.side nav button{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:10px;color:#aeb8cb;font-weight:500;text-align:left}.side nav button:hover{background:var(--ink-2);color:#fff}.side nav button.on{background:var(--ink-2);color:#fff;box-shadow:inset 3px 0 0 var(--seam)}.side-foot{margin-top:auto;font:11px var(--mono);color:#6f7b93;padding:8px}main{overflow-y:auto;min-width:0;padding-bottom:40px}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--paper);display:flex;gap:14px;align-items:center;padding:14px 24px}.search{flex:1;min-width:0;height:46px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--canvas);outline:none}.search:focus{border-color:var(--spruce);background:#fff}.who{display:flex;flex-direction:column;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.who select{height:30px;border:0;background:none;font-weight:600;font-size:15px;text-transform:none;letter-spacing:0;max-width:190px;outline:none}.seam{position:sticky;top:calc(74px + env(safe-area-inset-top,0px));z-index:5;height:6px;background:var(--paper);background-image:repeating-linear-gradient(90deg,var(--seam) 0 12px,transparent 12px 20px);background-size:auto 2px;background-repeat:repeat-x;background-position:0 2px;border-bottom:1px solid var(--line);transition:all .3s}section{padding:22px 24px 0}.banner{margin:16px 24px 0;padding:12px 16px;border-radius:10px;background:var(--out-soft);color:var(--out);display:flex;justify-content:space-between;gap:12px}.banner button{font-weight:600;text-decoration:underline}.empty{padding:70px 24px;text-align:center;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;text-align:left;display:grid}.stat span{font:700 26px var(--display)}.stat.warn span{color:var(--warn)}.stat.on{border-color:var(--warn);background:var(--warn-soft)}.stat:disabled{cursor:default}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:14px;scrollbar-width:none}.chip{flex:none;display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border-radius:99px;background:var(--paper);border:1px solid var(--line);font-weight:500}.chip i,.dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(20,26,38,.25);display:inline-block;flex:none}.dot{margin-right:8px;vertical-align:-1px}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;cursor:pointer;display:grid;gap:14px;transition:box-shadow .15s,transform .15s}.card:hover{box-shadow:0 6px 20px #141a2614;transform:translateY(-1px)}.card.out{border-color:#e9b7af}.card.low{border-color:#ebd49b}.card-top{display:flex;gap:12px;align-items:center;min-width:0}.sw{width:40px;height:40px;border-radius:10px;border:1px solid rgba(20,26,38,.2);flex:none;box-shadow:inset 0 -6px 10px #0000001f}.sw{display:block}.sw.big{width:56px;height:56px;border-radius:14px}.card-name{min-width:0}.card-name b{display:block;font:600 16.5px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-mid{display:flex;justify-content:space-between;align-items:end;gap:10px}.qty span{font:700 34px/1 var(--display);margin-right:6px}.card.out .qty span{color:var(--out)}.card.low .qty span{color:var(--warn)}.loc{text-align:right;display:grid}.loc b{font:700 13px var(--mono);background:var(--canvas);padding:5px 9px;border-radius:7px}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px dashed var(--line);padding-top:12px}.acts{display:flex;gap:8px}.btn{height:42px;padding:0 16px;border-radius:10px;font-weight:600;white-space:nowrap}.btn.xl{height:54px;padding:0 22px;font-size:16px;border-radius:12px}.btn.in{background:var(--spruce-soft);color:var(--spruce)}.btn.out{background:var(--out-soft);color:var(--out)}.btn.in.fill,.btn.solid{background:var(--spruce);color:#fff}.btn.out.fill{background:var(--out);color:#fff}.btn.ghost{background:var(--canvas)}.btn:disabled{opacity:.55;cursor:default}.btn:active{transform:scale(.98)}.link{color:var(--spruce);font-weight:600;text-decoration:underline;padding:6px 0}.shelves{display:grid;gap:22px}.shelf h3{font:700 14px var(--mono);display:flex;gap:10px;align-items:baseline;margin-bottom:8px}.plank{display:flex;flex-wrap:wrap;gap:10px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);border-bottom:5px solid #B9A58A}.can{width:132px;padding:0 10px 12px;border-radius:10px;background:var(--canvas);text-align:left;display:grid;gap:2px;overflow:hidden}.can .lid{height:16px;margin:0 -10px 8px;border-bottom:1px solid rgba(20,26,38,.2)}.can b{font-size:13.5px;line-height:1.25}.can.out small{color:var(--out);font-weight:600}.can.low small{color:var(--warn);font-weight:600}.feed{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.feed.slim{border-radius:12px}.txn{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line)}.txn:last-child{border-bottom:0}.tag{font:700 11px var(--mono);padding:5px 0;width:44px;text-align:center;border-radius:6px;flex:none}.tag.in{background:var(--spruce-soft);color:var(--spruce)}.tag.out{background:var(--out-soft);color:var(--out)}.txn-main{flex:1;min-width:0;display:grid}.txn-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txn-qty{text-align:right;display:grid}.txn-qty b{font:700 16px var(--mono)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a2673;z-index:20;display:flex;justify-content:flex-end;animation:fade .15s}.scrim.center{align-items:center;justify-content:center;z-index:30;padding:16px}.drawer{width:min(480px,100%);background:var(--canvas);height:100%;overflow-y:auto;animation:slide .2s}.drawer-head{background:var(--ink);color:#fff;padding:26px 24px 22px;position:relative;border-bottom:5px solid var(--c)}.drawer-head h2{font-size:25px;margin-top:14px}.drawer-head p{margin:4px 0 0;color:#aeb8cb}.x{position:absolute;top:12px;right:14px;color:#fff;font-size:32px;width:48px;height:48px}.drawer-body{padding:20px 24px 40px}.hero{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.hero>div{background:var(--paper);padding:14px 16px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.hero small:first-child{width:100%;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.num{font:700 46px/1 var(--display)}.num.out{color:var(--out)}.num.low{color:var(--warn)}.shelf-name{font:700 17px var(--mono);margin-right:8px}.move{display:flex;gap:8px;width:100%}.move input{flex:1;min-width:0}.move{flex-wrap:wrap}.move .err{width:100%}.pinbox{text-align:center;letter-spacing:.35em;font:700 20px var(--mono)!important}.pinbox.compact{width:96px!important;flex:none;letter-spacing:.2em;font-size:16px!important}.pinbar{grid-column:1 / -1}.pinbar .pinbox{max-width:220px}.big-acts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.modal{background:var(--paper);border-radius:18px;width:min(440px,100%);padding:22px;display:grid;gap:14px;max-height:100%;overflow-y:auto;border-top:6px solid var(--spruce)}.modal.is-out{border-top-color:var(--out)}.modal-head{display:flex;gap:12px;align-items:center}.modal-head b{display:block;font:600 19px var(--display)}.modal-head small{text-transform:uppercase;letter-spacing:.08em;font-weight:600}.qty-row{display:grid;grid-template-columns:64px 1fr 64px;gap:10px}.qty-row button{height:64px;border-radius:14px;background:var(--canvas);font-size:30px;font-weight:500}.qty-row input{height:64px;text-align:center;font:700 34px var(--display)}.quick{display:flex;gap:8px;align-items:center}.quick button{flex:1;height:42px;border-radius:10px;background:var(--canvas);font:700 14px var(--mono)}.quick span{color:var(--muted);font-size:13px;padding-left:4px}.after{margin:0;color:var(--muted)}.after b{color:var(--text)}.after.bad,.after.bad b{color:var(--out)}label{display:grid;gap:6px;font-size:13px;font-weight:500;color:var(--muted)}label em{font-style:normal;font-weight:400}input:not(.search):not([type=file]),label select{height:48px;border-radius:10px;border:1px solid var(--line);padding:0 12px;background:#fff;color:var(--text);font-size:16px;outline:none;width:100%}input:focus,label select:focus{border-color:var(--spruce)}.err{color:var(--out);margin:0;font-weight:500}.note{margin:14px 0 0;font-weight:500}.modal-foot{display:flex;gap:10px;justify-content:flex-end}.modal-foot .btn.xl{flex:1}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:14px}.panel h3{font-size:19px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mapper{display:grid;gap:10px;border-top:1px dashed var(--line);padding-top:14px}.preview{background:var(--canvas);border-radius:10px;padding:10px 12px;display:grid;gap:6px;font-size:13.5px}.preview div{display:flex;gap:8px;align-items:center}.preview b{flex:1}.preview span{font-family:var(--mono)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--ink);color:#fff;padding:14px 22px;border-radius:12px;z-index:40;font-weight:500;box-shadow:0 10px 30px #00000040;animation:fade .2s;max-width:calc(100% - 32px)}.pin{height:100%;display:grid;place-items:center;background:var(--ink);color:#fff}.pin form{display:grid;gap:14px;width:280px;text-align:center;justify-items:center}.pin p{margin:0;color:#aeb8cb}.pin input{text-align:center;letter-spacing:.4em}.pin .btn{width:100%}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translate(40px);opacity:0}}@media (max-width: 900px){.shell{grid-template-columns:1fr;grid-template-rows:1fr auto}.side{order:2;flex-direction:row;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.brand,.side-foot{display:none}.side nav{grid-auto-flow:column;grid-auto-columns:1fr;width:100%}.side nav button{flex-direction:column;gap:3px;font-size:11.5px;padding:8px 4px;justify-content:center;text-align:center}.side nav button.on{box-shadow:inset 0 3px 0 var(--seam)}.top{padding:12px 16px}section{padding:18px 16px 0}.banner{margin:14px 16px 0}.stats{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.toast{bottom:92px}}@media (max-width: 520px){.who span{display:none}.who select{max-width:120px}.grid{grid-template-columns:1fr}.can{width:calc(50% - 5px)}}.scrim.top{z-index:50}.teamhead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.teamhead b{display:block;font:600 18px var(--display)}.err.wide{grid-column:1 / -1}.txn.user{flex-wrap:wrap}.txn.user.off .txn-main{opacity:.5}.txn.user .acts{flex-wrap:wrap;justify-content:flex-end}label.check{display:flex;align-items:center;gap:10px;color:var(--text);font-size:15px}label.check input{width:22px!important;height:22px!important;flex:none;accent-color:var(--spruce)}@media (max-width: 900px){.side nav button span{font-size:10.5px}}.me{display:flex;align-items:center;gap:12px;flex:none}.me div{display:grid;text-align:right;line-height:1.2}.me b{font:600 15px var(--display);max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 520px){.me small{display:none}.me b{max-width:90px;font-size:13px}.me .btn{padding:0 10px}}.login{min-height:100%;display:grid;place-items:center;background:var(--ink);padding:24px 16px;background-image:repeating-linear-gradient(90deg,#2F6F5E 0 12px,transparent 12px 20px);background-size:auto 2px;background-repeat:repeat-x;background-position:0 28px}.login-card{width:min(360px,100%);text-align:center;color:#fff;display:grid;justify-items:center;gap:6px}.login-card .drop{width:40px;height:40px;margin-bottom:10px}.login-card h1{font:700 30px var(--display);margin:0}.login-card p{margin:0;color:#aeb8cb}.dots{display:flex;gap:14px;margin:22px 0 8px;height:18px;align-items:center}.dots i{width:16px;height:16px;border-radius:50%;border:2px solid #5B6780}.dots i.opt{border-style:dashed;opacity:.5}.dots i.on{background:#fff;border-color:#fff;opacity:1;border-style:solid}.dots.shake{animation:shake .3s}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-msg{min-height:40px;font-size:13.5px}.login-msg.bad{color:#ff9c8c!important;font-weight:600}.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;margin-top:6px}.keys button{height:72px;border-radius:16px;background:var(--ink-2);color:#fff;font:600 26px var(--display)}.keys button:active{background:#2a3550;transform:scale(.97)}.keys .alt{color:#aeb8cb}.keys .go{background:var(--spruce);font-size:17px}.keys .go:disabled{opacity:.4}@media (max-height: 640px){.keys button{height:56px}.dots{margin-top:12px}}.jobhit{display:flex;align-items:center;gap:8px;background:var(--canvas);border-radius:8px;padding:6px 8px;font-size:13px}.jobhit b{font-family:var(--mono);font-size:12.5px}.jobhit small{margin-left:auto;white-space:nowrap}.jobnote{font-family:var(--mono);color:var(--spruce)!important;font-weight:700}
