:root{--ink:#14181d;--slate:#1e252d;--slate-2:#28313b;--line:#333f4b;--paper:#f2f4f5;--paper-2:#e7ebee;--amber:#f2b705;--amber-dk:#c99500;--green:#2fb380;--green-dk:#1f8f65;--red:#e0523b;--blue:#2f7de0;--muted:#8a97a3;--muted-2:#5c6874;--white:#fff;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--shadow:0 1px 2px rgba(20,24,29,.06),0 8px 24px rgba(20,24,29,.08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--ui);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.4}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.hidden{display:none!important}.topbar{background:var(--ink);color:#fff;display:flex;align-items:center;gap:14px;padding:12px 20px;position:sticky;top:0;z-index:40;border-bottom:3px solid var(--amber)}.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:18px}.brand .mark{width:26px;height:26px;border-radius:6px;background:repeating-linear-gradient(45deg,var(--amber) 0 6px,var(--ink) 6px 12px);box-shadow:inset 0 0 0 2px var(--ink)}.brand small{color:var(--muted);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.topbar .spacer{flex:1}.who{font-size:12.5px;color:var(--muted)}.who b{color:#fff}.rolebadge{font-size:10px;text-transform:uppercase;letter-spacing:.08em;background:var(--slate-2);color:var(--amber);padding:3px 8px;border-radius:999px;font-weight:700;margin-left:6px}.wrap{max-width:1160px;margin:0 auto;padding:26px 20px 90px}.view{display:none}.view.active{display:block}h1.page{font-size:23px;margin:0 0 2px}.page-sub{color:var(--muted-2);font-size:13px;margin:0 0 22px}button{font-family:inherit}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 15px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.1s}.btn:hover{background:var(--paper-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--amber);border-color:var(--amber-dk);color:#241c00}.btn.primary:hover{background:var(--amber-dk);color:#000}.btn.go{background:var(--green);border-color:var(--green-dk);color:#fff}.btn.go:hover{background:var(--green-dk)}.btn.blue{background:var(--blue);border-color:#2266c0;color:#fff}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted-2)}.btn.ghost:hover{background:var(--paper-2);color:var(--ink)}.btn.danger{color:var(--red);border-color:#eecbc4;background:#fff}.btn.danger:hover{background:#fbeae6}.btn.sm{padding:6px 10px;font-size:12.5px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.input{width:100%;background:#fff;border:1px solid var(--paper-2);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--ink);font-family:inherit}.input:focus{outline:2px solid var(--amber);border-color:transparent}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--ink)}.login{background:#fff;border-radius:16px;padding:30px;width:100%;max-width:380px;box-shadow:0 24px 60px #0006}.login .brand{color:var(--ink);margin-bottom:20px}.login label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:600;display:block;margin:14px 0 5px}.login .err{color:var(--red);font-size:13px;margin-top:12px;min-height:16px}.login .btn{width:100%;justify-content:center;margin-top:18px}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--paper-2);border-radius:10px;padding:13px 16px;min-width:130px;box-shadow:var(--shadow)}.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:600}.stat .v{font-size:26px;font-weight:700;margin-top:3px}.search-row{margin-bottom:14px}.grn-list{display:flex;flex-direction:column;gap:9px}.grn-card{background:#fff;border:1px solid var(--paper-2);border-radius:10px;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto auto auto auto;gap:14px;align-items:center;cursor:pointer;box-shadow:var(--shadow);transition:.1s}.grn-card:hover{border-color:var(--amber)}.grn-no{font-family:var(--mono);font-weight:700;font-size:14px}.grn-meta{color:var(--muted-2);font-size:12.5px;margin-top:2px}.grn-meta b{color:var(--ink)}.pill{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.pill.draft{background:#fff4d1;color:#7a5b00}.pill.done{background:#d9f5ea;color:#166b4c}.card-qty{text-align:right}.card-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}.card-qty .big{font-size:22px;font-weight:700}.card-qty .lbl{font-size:11px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.08em}.empty{text-align:center;padding:56px 20px;color:var(--muted-2);border:1.5px dashed var(--paper-2);border-radius:14px;background:#fff}.empty h3{color:var(--ink);margin:0 0 6px}.editor-top{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.editor-top .spacer{flex:1}.doc{background:#fff;border:1px solid var(--paper-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.doc-head{background:var(--slate);color:#fff;padding:18px 22px;display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:16px}.fld{display:flex;flex-direction:column;gap:5px}.fld label{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}.fld input{background:var(--slate-2);border:1px solid var(--line);color:#fff;border-radius:7px;padding:9px 11px;font-size:14px;font-family:inherit}.fld input.code{font-family:var(--mono);font-weight:700}.fld input:focus{outline:2px solid var(--amber);border-color:transparent}.add-bar{background:var(--paper-2);padding:14px 18px;display:grid;grid-template-columns:2.4fr 1fr .9fr auto;gap:10px;align-items:end}.add-bar .fld label{color:var(--muted-2)}.add-bar input{background:#fff;border:1px solid #d4dbe0;color:var(--ink);border-radius:8px;padding:11px 12px;font-size:14px;font-family:inherit;width:100%}.add-bar input.qty{font-family:var(--mono);font-weight:700;text-align:right}.add-bar input:focus{outline:2px solid var(--amber);border-color:transparent}.addone{background:var(--paper-2);padding:14px 18px;display:flex;gap:10px;align-items:flex-end}.addone .fld{flex:1;min-width:0}.addone .fld label{color:var(--muted-2)}.addone input{background:#fff;border:1px solid #d4dbe0;color:var(--ink);border-radius:8px;padding:11px 12px;font-size:14px;font-family:inherit;width:100%}.addone input:focus{outline:2px solid var(--amber);border-color:transparent}.addone .btn.go{white-space:nowrap;align-self:flex-end}@media (max-width:640px){.addone{padding:12px;gap:8px}.addone input{font-size:16px}.addone .btn.go{padding:11px 14px}}.list-tools{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--paper-2);flex-wrap:wrap}.list-tools .find{flex:1;min-width:180px;max-width:340px}.count-note{font-size:12.5px;color:var(--muted-2)}table.items{width:100%;border-collapse:collapse}table.items thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:700;padding:10px 18px;border-bottom:1px solid var(--paper-2);background:#fafbfc}table.items th.r,table.items td.r{text-align:right}table.items tbody td{padding:12px 18px;border-bottom:1px solid #eef1f3;vertical-align:middle;font-size:14px}.it-name{font-weight:600}.it-idx{color:var(--muted);font-family:var(--mono);font-size:12px}.rack-tag{display:inline-block;font-family:var(--mono);font-weight:700;font-size:12.5px;background:var(--ink);color:var(--amber);padding:3px 9px;border-radius:6px}.rack-tag.empty{background:#f0eded;color:#b0b0b0}.it-qty{font-family:var(--mono);font-weight:700;font-size:17px}.it-exp{font-family:var(--mono);font-weight:600;font-size:15px;color:var(--muted-2)}.vchip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;margin-left:2px;white-space:nowrap}.vchip.ok{background:#d9f5ea;color:#166b4c}.vchip.short{background:#fff4d1;color:#7a5b00}.vchip.over{background:#fde0da;color:#a33322}.vchip.wait{background:#eef1f3;color:#6b7883}.row-actions{display:flex;gap:5px;justify-content:flex-end}.iconbtn{width:30px;height:30px;border-radius:7px;border:1px solid var(--paper-2);background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--muted-2)}.iconbtn:hover{background:var(--paper-2);color:var(--ink)}.iconbtn.plus{border-color:var(--green);color:var(--green-dk)}.iconbtn.plus:hover{background:var(--green);color:#fff}.iconbtn.del:hover{background:#fbeae6;color:var(--red)}.quickadd{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 18px;background:#fafbfc;border-bottom:1px solid #eef1f3}.quickadd input{width:120px;text-align:right;font-family:var(--mono);font-weight:700;border:1px solid #d4dbe0;border-radius:7px;padding:8px 10px}.log{font-size:12px;color:var(--muted-2)}.log .chip{display:inline-block;font-family:var(--mono);background:#eef1f3;border-radius:5px;padding:2px 7px;margin:2px 4px 2px 0}.totbar{display:flex;align-items:center;gap:26px;padding:16px 20px;background:var(--ink);color:#fff;flex-wrap:wrap}.totbar .t{display:flex;flex-direction:column}.totbar .t .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.totbar .t .v{font-size:24px;font-weight:700;font-family:var(--mono)}.totbar .t.grand .v{color:var(--amber)}.totbar .t.short .v{color:#ffcf6b}.totbar .t.over .v{color:#ff8a72}.totbar .spacer{flex:1}.items-empty{padding:40px 20px;text-align:center;color:var(--muted-2)}#toasts{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{background:var(--ink);color:#fff;padding:11px 16px;border-radius:10px;font-size:13.5px;box-shadow:0 10px 30px #00000047;border-left:4px solid var(--green)}.toast.info{border-left-color:var(--amber)}.toast.err{border-left-color:var(--red)}.toast b{font-family:var(--mono)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181d8c;display:none;align-items:center;justify-content:center;z-index:150;padding:20px;overflow:auto}.modal-bg.show{display:flex}.modal{background:#fff;border-radius:14px;padding:22px;max-width:520px;width:100%;box-shadow:0 24px 60px #0000004d;margin:auto}.modal h3{margin:0 0 12px}.modal .row{display:flex;gap:8px;margin-bottom:8px}.modal .row input,.modal .row select{flex:1}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}textarea.paste{width:100%;min-height:150px;border:1px solid #d4dbe0;border-radius:10px;padding:12px;font-family:var(--mono);font-size:13px;resize:vertical}.rev-row{display:grid;grid-template-columns:24px 1fr 90px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #eef1f3}.rev-row input[type=text]{border:1px solid #d4dbe0;border-radius:7px;padding:7px 9px;width:100%}#printArea{display:none}@media print{body{background:#fff}.topbar,.wrap,#toasts{display:none!important}#printArea{display:block}.p-title{display:flex;justify-content:space-between;border-bottom:2px solid #000;padding-bottom:10px;margin-bottom:12px}.p-title h1{font-size:22px;margin:0}.p-title .pno{font-family:var(--mono);font-weight:700;text-align:right}.p-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 24px;margin-bottom:14px;font-size:13px}.p-fields span{color:#555;text-transform:uppercase;font-size:10px;display:block}table.p-items{width:100%;border-collapse:collapse;font-size:13px}table.p-items th,table.p-items td{border:1px solid #000;padding:6px 8px;text-align:left}table.p-items th{background:#eee;font-size:11px;text-transform:uppercase}table.p-items td.r,table.p-items th.r{text-align:right;font-family:var(--mono);font-weight:700}table.p-items td.c{text-align:center;font-family:var(--mono)}.p-tot{font-weight:700;background:#f2f2f2}.p-sign{display:flex;justify-content:space-between;margin-top:44px;font-size:12px}.p-sign div{border-top:1px solid #000;padding-top:5px;width:30%;text-align:center}}.topnav{display:flex;align-items:center;gap:14px}.navtoggle{display:none;font-size:18px;color:#fff}.items-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.rackpick{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:6px;padding:6px 8px;font-family:var(--mono);font-weight:600;font-size:12.5px;color:var(--ink);cursor:pointer;text-align:left;min-width:0}.rackpick .v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rackpick .ph{color:var(--muted)}.rackpick .car{color:var(--muted-2);font-size:11px;flex:0 0 auto}.rackpop{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px #0000003d}.rackpop-q{width:100%;border:none;border-bottom:1px solid var(--paper-2);border-radius:10px 10px 0 0;padding:11px 12px;font-size:16px;font-family:var(--mono);outline:none;box-sizing:border-box}.rackpop-list{max-height:252px;overflow-y:auto;-webkit-overflow-scrolling:touch}.rackpop-opt{padding:10px 12px;font-family:var(--mono);font-size:13.5px;cursor:pointer;border-bottom:1px solid #f2f4f5}.rackpop-opt:hover,.rackpop-opt.sel{background:var(--paper-2)}.rackpop-opt.clear{color:var(--red);font-weight:600}.rackpop-empty,.rackpop-more{padding:10px 12px;color:var(--muted-2);font-size:12.5px}@media (max-width:900px){.wrap{padding:20px 14px 80px}.doc-head,.add-bar{grid-template-columns:1fr 1fr}.add-bar .btn.go{grid-column:1/-1;justify-content:center}}@media (max-width:720px){.topbar{gap:8px;padding:11px 14px}.brand{font-size:16px}.brand small{display:none}.navtoggle{display:inline-flex}.topnav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:6px;background:var(--ink);padding:12px 14px;border-bottom:3px solid var(--amber);box-shadow:0 14px 26px #00000057}.topnav.open{display:flex}.topnav .btn.sm{width:100%;justify-content:flex-start;padding:11px 12px;font-size:14px;color:#e7ebee}.topnav .btn.sm:hover{background:var(--slate-2)}.topnav .master-badge{align-self:flex-start;color:var(--muted)}.topnav .who{align-self:flex-start;font-size:13.5px;padding:4px 0}h1.page{font-size:20px}.dash-head{margin-bottom:16px}.stats{gap:8px}.stat{flex:1 1 calc(50% - 4px);min-width:0}.grn-card{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:13px 14px}.grn-card>div:first-child{order:1}.grn-card .card-mid{order:2;flex:1 1 auto;min-width:0}.grn-card .card-qty{order:3;text-align:left}.grn-card .card-qty .big{font-size:19px}.grn-card>div:last-child{order:4;margin-left:auto}.editor-top{gap:8px}.editor-top .btn{padding:8px 11px;font-size:12.5px}.doc-head{padding:14px 16px;gap:12px}.add-bar,.list-tools{padding:12px 14px}table.items{min-width:600px}table.items thead th{padding:9px 12px}table.items tbody td{padding:10px 12px}.totbar{gap:16px;padding:14px 16px}.totbar .t .v{font-size:20px}.modal{padding:18px}.mtiles{gap:8px}.mtile .v{font-size:20px}.rev-row{display:flex;flex-wrap:wrap;gap:6px 8px}.rev-row input[type=text]{flex:1 1 100%}.rev-row input.rn2{flex:1 1 48%}.rev-row input.qn{flex:1 1 30%}.rev-extra{margin-left:0}}@media (max-width:640px){.wrap{padding:16px 8px 80px}.list-tools{padding:10px}.items-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table.items{min-width:0;width:100%}table.items thead th{padding:8px 4px;font-size:9px;letter-spacing:.03em}table.items tbody td{padding:8px 4px;font-size:12px;vertical-align:top}table.items td.it-idx,table.items th.it-idx{width:14px;padding:8px 1px 8px 3px;font-size:11px}table.items td.it-name,table.items th:nth-child(2){width:1%}.it-name{font-size:12px;font-weight:600;line-height:1.22;word-break:break-word}.it-qty{font-size:14px}.it-exp{font-size:13px}table.items td[data-label=Rack] input{width:104px!important;min-width:0;font-size:12px;padding:5px 6px}table.items td[data-label=Rack] .rackpick{width:104px!important;font-size:11.5px;padding:5px 6px}table.items td[data-label=Received] input[type=number]{width:44px!important;font-size:12px;padding:4px}table.items td[data-label=Rack] input[id^=gr-]{width:104px!important}table.items td[data-label=Rack] input[id^=gq-]{width:76px!important}table.items .btn.go.sm{padding:5px 7px;font-size:11px}table.items .iconbtn{width:26px;height:26px}.vchip{font-size:9.5px;padding:2px 6px}.detail-row td{font-size:11.5px}}@media (max-width:480px){.doc-head,.add-bar{grid-template-columns:1fr}.stat{flex:1 1 100%}.input,.fld input,.add-bar input,.login input,.modal input,textarea.paste{font-size:16px}}.tabs{display:flex;gap:6px;margin-bottom:14px}.tab{padding:8px 14px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--muted-2);border:1px solid var(--paper-2);background:#fff}.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.drop{border:2px dashed #cdd6dc;border-radius:12px;padding:30px 20px;text-align:center;color:var(--muted-2);cursor:pointer}.drop:hover{border-color:var(--amber);background:#fffdf3}.drop b{color:var(--ink)}.engine-note{font-size:12px;color:var(--muted-2);margin-top:10px;text-align:center}.rev-item{border-bottom:1px solid #eef1f3;padding:8px 0}.rev-item.off{opacity:.42}.rev-row{display:grid;grid-template-columns:24px 66px 1fr 90px 84px;gap:8px;align-items:center}.rev-row input[type=text]{border:1px solid #d4dbe0;border-radius:7px;padding:7px 9px;width:100%;font-size:13.5px}.rev-row input.qn,.rev-row input.rn2{font-family:var(--mono);font-weight:700}.rev-row input.qn{text-align:right}.rev-extra{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0 2px 90px;font-size:12px;color:var(--muted-2)}.nchip{font-family:var(--mono);font-size:11px;background:#eef1f3;border:1px solid #dbe1e6;border-radius:5px;padding:2px 6px;cursor:pointer}.nchip:hover{background:var(--amber);border-color:var(--amber-dk)}.from b{color:var(--ink)}.addmaster{display:inline-flex;align-items:center;gap:5px}.mbadge{font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.04em;text-align:center;white-space:nowrap}.mbadge.match{background:#d9f5ea;color:#166b4c}.mbadge.fuzzy{background:#fff4d1;color:#7a5b00}.mbadge.newp{background:#e2ecfb;color:#1d5bb8}.master-badge{font-size:11px;color:var(--muted);font-family:var(--mono);border:1px solid var(--paper-2);padding:5px 9px;border-radius:999px}.mtiles{display:flex;gap:10px;margin-bottom:16px}.mtile{flex:1;background:#fff;border:1px solid var(--paper-2);border-radius:10px;padding:12px;text-align:center}.mtile .v{font-size:24px;font-weight:700;font-family:var(--mono)}.mtile .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2)}.master-status{font-size:13px;margin-top:10px;padding:9px 11px;border-radius:8px;background:#f4f6f7;color:var(--muted-2)}.master-status.ok{background:#d9f5ea;color:#166b4c}.master-status.err{background:#fbeae6;color:#a33322}.revcount b{font-family:var(--ui)}
