:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#102a3a;background:#f3f6f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.topbar{height:72px;background:#0b2234;color:#f5fafb;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1360px)/2));gap:20px}.brand{display:flex;align-items:center;gap:12px}.brandmark{display:grid;place-items:center;background:#f6bd64;color:#163044;border-radius:10px;width:38px;height:38px;font-weight:900;font-size:20px}.brand strong{display:block;font-size:17px;letter-spacing:.02em}.brand small{display:block;color:#aac2cc;font-size:11px;letter-spacing:.13em;margin-top:2px}.topright{display:flex;align-items:center;gap:12px;color:#b7cbd3;font-size:12px}.trial{border:1px solid #5c7986;border-radius:20px;padding:5px 10px;color:#f5ca83}main{max-width:1408px;margin:auto;padding:32px 24px 60px}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:24px}.eyebrow{font-size:11px;letter-spacing:.2em;color:#4d858a;font-weight:800}h1{font-size:36px;line-height:1.1;letter-spacing:-.05em;margin:8px 0 10px}h2{margin:0;font-size:22px;letter-spacing:-.03em}.heading p,.section-head p{color:#667b85;margin:0;font-size:13px}.inputs{display:flex;gap:10px;align-items:stretch}.upload{display:flex;align-items:center;gap:10px;min-width:185px;max-width:210px;background:#fff;border:1px solid #dce5e8;border-radius:11px;padding:11px 12px;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 2px 7px #14394a0b}.upload:hover{border-color:#5d9598}.upload small{display:block;font-size:11px;color:#82949d;font-weight:400;margin-top:4px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload input{position:absolute;width:1px;height:1px;opacity:0}.icon{display:grid;place-items:center;background:#e7f1f1;color:#24737a;border-radius:8px;min-width:30px;height:30px;font-size:17px}.primary,.secondary{border:0;border-radius:10px;padding:0 16px;font-weight:750;white-space:nowrap;min-height:50px}.primary{background:#0e5965;color:#fff}.primary:hover{background:#0a4450}.secondary{border:1px solid #d9e3e7;color:#214452;background:#fff;min-height:38px;font-size:12px}.secondary:hover{border-color:#79a0a6}.message{margin-top:16px;padding:12px 16px;border-radius:9px;background:#e5f4ee;color:#23634b;font-size:13px}.message.error{background:#fff1ec;color:#a3422f}.notice{display:flex;gap:12px;align-items:center;background:#fff9ea;border:1px solid #f2dfb6;border-radius:10px;padding:12px 16px;margin:24px 0 16px;color:#75552c;font-size:12px;line-height:1.6}.notice strong{white-space:nowrap;color:#8c551d}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:25px}.metric{background:#fff;border:1px solid #e0e9ec;border-radius:12px;padding:17px 18px;min-height:112px}.metric .label{font-size:12px;color:#69808b}.metric .value{display:block;font-size:28px;font-weight:850;letter-spacing:-.05em;margin:8px 0 3px;font-variant-numeric:tabular-nums}.metric small{color:#80939b;font-size:11px}.metric.accent{background:#0e5965;color:#fff;border-color:#0e5965}.metric.accent .label,.metric.accent small{color:#b8d8d9}.metric.warn .value{color:#b65b36}.workspace{background:#fff;border:1px solid #e0e9ec;border-radius:15px;min-height:500px;box-shadow:0 8px 25px #17394b08;overflow:hidden}.section-head{padding:23px 24px 17px;display:flex;justify-content:space-between;align-items:center}.section-head p{margin-top:6px}.filters{padding:0 24px;border-bottom:1px solid #e7eef0;display:flex;align-items:center;justify-content:space-between;gap:16px}.tabs{display:flex;gap:24px;overflow-x:auto}.tabs button{border:0;border-bottom:3px solid transparent;background:none;color:#738994;font-size:13px;font-weight:700;padding:14px 1px 13px;white-space:nowrap}.tabs button.active{border-color:#0e6570;color:#0c5561}.tabs b{font-size:11px;border-radius:20px;padding:2px 6px;background:#edf2f3;margin-left:3px}.search{display:flex;align-items:center;gap:7px;background:#f4f7f8;border:1px solid #e6edef;border-radius:8px;padding:0 10px;color:#8da0a8}.search input{background:transparent;border:0;outline:0;width:220px;height:36px;color:#1b3b4a;font-size:12px}.search:focus-within{border-color:#5d9598}.queue-list{padding:8px 24px 24px}.group{border:1px solid #e2eaed;border-radius:11px;margin-top:12px;overflow:hidden}.group.partial{border-color:#e8c3b0;background:#fffcfa}.group-head{display:flex;align-items:center;gap:12px;padding:14px 16px}.rank{color:#8298a1;font-size:12px;font-weight:800;min-width:30px}.group-main{min-width:0;flex:1}.group-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:800}.person{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{font-size:11px;border-radius:5px;padding:3px 7px;background:#e8f3f0;color:#21755e;white-space:nowrap;font-weight:750}.pill.partial{background:#ffede6;color:#b34c32}.pill.hold{background:#f1f2f3;color:#6f7b82}.group-sub{font-size:11px;color:#798f99;margin-top:6px}.profit{text-align:right;min-width:90px}.profit strong{display:block;font-size:18px;color:#124d55;font-variant-numeric:tabular-nums}.profit small{color:#80929b;font-size:10px}.detail-toggle{border:0;background:#edf3f4;color:#315c64;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:700;white-space:nowrap}.group-detail{border-top:1px solid #e9eff1;background:#fbfcfc;padding:0 16px 15px}.group-detail .callout{padding:10px 12px;background:#fff1ec;color:#a4412d;border-radius:7px;margin:12px 0 0;font-size:12px;font-weight:700}.group-detail .callout.blue{background:#e9f3f4;color:#27616a}.order-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(140px,1fr) minmax(80px,.35fr) minmax(70px,.35fr);gap:12px;align-items:center;border-bottom:1px solid #edf1f2;padding:13px 0;font-size:12px}.order-row .id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:650;word-break:break-all}.order-row .product{color:#526c78;line-height:1.45}.order-row .amount{text-align:right;color:#3c5c66;white-space:nowrap}.status{font-weight:750;text-align:right;color:#258169;font-size:11px}.status.stop{color:#c45338}.reason{font-size:11px;color:#a64f36;margin:2px 0 0}.group-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:13px}.group-actions .verify{font-size:12px;color:#486671;display:flex;align-items:center;gap:6px}.group-actions input{accent-color:#0e6570;width:16px;height:16px}.group-actions button{border:1px solid #cfdee1;border-radius:7px;background:#fff;color:#245967;padding:7px 10px;font-size:11px;font-weight:700}.group-actions button.done{background:#e5f3ef;color:#1d785e;border-color:#b5d9cf}.empty{padding:66px 24px;text-align:center;color:#6f858e;font-size:13px}.inventory-list{padding:16px 24px 24px}.stock-row{display:grid;grid-template-columns:minmax(180px,1fr) 80px 80px 80px 80px;gap:12px;border-bottom:1px solid #edf1f2;padding:12px 6px;font-size:12px;align-items:center}.stock-row.head{font-size:11px;color:#8b9da5;font-weight:800}.stock-row strong{font-weight:700}.stock-row .negative{color:#bf5336;font-weight:800}.stock-row small{color:#8b9da5}.footnotes{max-width:1120px;padding:18px 4px;color:#7e929b;font-size:11px;line-height:1.7}.footnotes p{margin:5px 0}.footnotes strong{color:#55717b}@media(max-width:1050px){.toolbar{align-items:stretch;flex-direction:column}.inputs{flex-wrap:wrap}.metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.topbar{padding:0 16px;height:64px}.topright #sourceName{display:none}.brand strong{font-size:14px}main{padding:22px 12px}.heading h1{font-size:30px}.heading p{line-height:1.5}.inputs{display:grid;grid-template-columns:1fr 1fr}.upload{min-width:0}.inputs .primary{grid-column:1/-1}.notice{align-items:flex-start;flex-direction:column;gap:3px}.metrics{grid-template-columns:repeat(2,1fr);gap:8px}.metric{padding:13px;min-height:95px}.metric .value{font-size:23px}.section-head{padding:18px 14px}.filters{padding:0 14px;flex-direction:column;align-items:stretch;gap:2px}.tabs{gap:15px}.search{margin:0 0 12px}.search input{width:100%}.queue-list,.inventory-list{padding:5px 10px 15px}.group-head{padding:12px 9px;gap:6px}.group-title{font-size:13px;flex-wrap:wrap;gap:5px}.profit{min-width:60px}.profit strong{font-size:15px}.detail-toggle{padding:7px}.group-detail{padding:0 10px 12px}.order-row{grid-template-columns:1fr auto;gap:4px 8px}.order-row .product{grid-column:1/-1;grid-row:2}.order-row .amount{text-align:left}.order-row .status{text-align:right}.stock-row{grid-template-columns:minmax(120px,1fr) repeat(4,38px);gap:4px;font-size:10px}.footnotes{padding:16px 4px}}
.sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 12px}.sources>div{background:#fff;border:1px solid #dbe6e9;border-radius:11px;padding:14px 16px;min-width:0}.sources .source-label{display:block;color:#647d88;font-size:12px;font-weight:700;margin-bottom:5px}.sources strong{display:block;color:#173b49;font-size:15px;line-height:1.4;overflow-wrap:anywhere}.sources small{display:block;color:#6a818b;font-size:12px;line-height:1.5;margin-top:5px}.sync-button{min-height:50px;font-size:13px}.sources+.notice{margin-top:0}.upload:focus-within{outline:2px solid #0e6570;outline-offset:2px}@media(max-width:1050px){.sources{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.sources{grid-template-columns:1fr;gap:7px;margin-top:16px}.sources>div{padding:10px 12px}.inputs .sync-button{grid-column:1/-1}.sources strong{font-size:14px}}
.note-color{display:inline-block;padding:3px 6px;border-radius:5px;margin-bottom:4px;font-size:10px}.note-color.green{background:#e4f3ec;color:#217454}.note-color.yellow{background:#fff2cc;color:#8a641a}
.actions{display:flex;gap:8px;align-items:center}.batch-copy{min-height:38px;font-size:12px}.batch-copy[hidden]{display:none}@media(max-width:700px){.section-head{align-items:stretch;gap:12px;flex-direction:column}.actions{flex-wrap:wrap}.batch-copy{flex:1}}
.order-row{grid-template-columns:minmax(180px,1.05fr) minmax(245px,1.3fr) minmax(75px,.35fr) minmax(95px,.4fr)}
.order-row.scanned{background:#e9f7ed;border:1px solid #b9dfc5;border-radius:9px;padding:13px 10px;margin:5px -10px}
.order-row.scanned .status{color:#176345}
.scan-box,.scan-reason{grid-column:1/-1}
.scan-box{border-top:1px solid #e4ecee;padding-top:10px;min-width:0}
.scan-label{color:#456979;font-size:11px;line-height:1.5;margin-bottom:7px;overflow-wrap:anywhere}
.scan-controls{display:flex;align-items:flex-end;gap:9px;width:100%}
.barcode-input{flex:1;min-width:180px;height:48px;padding:0 14px;border:1px solid #afc5cc;border-radius:8px;background:#fff;font:15px ui-monospace,SFMono-Regular,Consolas,monospace}
.barcode-input:focus,.quantity-field:focus-within{outline:2px solid #0e6570;outline-offset:1px}
.quantity-wrap{flex:none;width:104px}
.quantity-wrap>label{display:block;font-size:11px;font-weight:750;color:#58717c;margin-bottom:3px}
.quantity-field{display:flex;height:48px;background:#fff;border:1px solid #afc5cc;border-radius:8px;overflow:hidden}
.quantity-field input{border:0;outline:0;width:75px;min-width:0;padding:0 5px;text-align:center;color:#173b49;font-size:17px;font-weight:750;appearance:textfield;-moz-appearance:textfield}
.quantity-field input::-webkit-inner-spin-button,.quantity-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.quantity-arrows{display:flex;flex-direction:column;width:29px;border-left:1px solid #cfdee1}
.quantity-arrows button{height:50%;width:100%;border:0;border-radius:0;background:#f0f6f7;color:#315f69;font-size:10px;line-height:1;padding:0}
.quantity-arrows button+button{border-top:1px solid #cfdee1}
.quantity-arrows button:hover{background:#dbecef}
.scan-controls .scan-submit{flex:none;min-width:110px;height:48px;border:0;border-radius:8px;background:#0e5965;color:white;font-size:13px;font-weight:750;padding:0 13px}
.scan-controls .scan-submit:hover{background:#0a4450}
.auto-note{flex:none;align-self:center;color:#207356;background:#e7f5ed;border-radius:7px;padding:9px 12px;font-size:12px;font-weight:750}
.scan-undo{margin-top:8px;border:0;background:transparent;color:#577985;font-size:11px;padding:3px 0}
.scan-undo:hover{text-decoration:underline}
.order-row .reason{line-height:1.5}.inputs{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.order-row{grid-template-columns:1fr auto}.order-row .product{grid-column:1/-1;grid-row:2}.order-row .amount{grid-column:1;grid-row:3}.order-row .status{grid-column:2;grid-row:3}.scan-box,.scan-reason{grid-column:1/-1;grid-row:4}.scan-controls{flex-wrap:wrap;gap:8px}.barcode-input{flex-basis:100%;min-width:0}.quantity-wrap{width:104px}.scan-controls .scan-submit{flex:1}.order-row.scanned{margin:5px -5px;padding:13px 5px}}
/* The shared scanner sits in the footer between the verified count and copy button. */
.group-actions{display:grid;grid-template-columns:max-content minmax(340px,1fr) max-content;align-items:end;gap:14px;width:100%;padding-top:14px}
.group-actions .verify{align-self:center;white-space:nowrap}
.group-scan-panel{min-width:0;width:100%}
.group-scan-controls{display:flex;align-items:flex-end;gap:8px;width:100%}
.group-scan-controls .barcode-input{min-width:0;flex:1;height:48px}
.group-scan-controls .quantity-wrap{width:102px}
.group-scan-controls .scan-submit{height:48px;min-width:94px;border:0;border-radius:8px;background:#0e5965;color:#fff;font-size:12px;font-weight:750;padding:0 10px}
.group-scan-controls .scan-submit:hover{background:#0a4450}
.group-scan-hint{display:block;min-height:16px;margin-top:6px;color:#377265;font-size:11px;line-height:1.4}
.group-scan-hint.wait{color:#aa5439}
.group-actions .copy-group{height:48px;min-width:175px;align-self:end;white-space:normal;line-height:1.3}
.row-expected{display:block;font-size:11px;color:#607e88;margin-top:4px;line-height:1.5;overflow-wrap:anywhere}
.order-row .status .scan-undo{display:block;margin:5px 0 0 auto;text-align:right;white-space:nowrap}
@media(max-width:980px){.group-actions{grid-template-columns:1fr}.group-actions .verify{justify-self:start}.group-actions .copy-group{justify-self:end}.group-scan-panel{grid-row:2}}
@media(max-width:700px){.group-scan-controls{flex-wrap:wrap}.group-scan-controls .barcode-input{flex-basis:100%}.group-scan-controls .scan-submit{flex:1}.group-actions .copy-group{width:100%}}
/* Inventory site navigation and same-origin stock login. */
.topbar .brand{text-decoration:none;color:inherit}
.home-link{color:#dceaf2;text-decoration:none;font-weight:700;padding:9px 12px;border:1px solid #7b98a7;border-radius:10px}
.home-link:focus-visible,.auth-panel input:focus-visible{outline:3px solid #73b9ec;outline-offset:2px}
.auth-panel[hidden]{display:none}
.auth-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}
.auth-panel label{display:flex;align-items:center;gap:8px;font-size:14px}
.auth-panel input{min-width:210px;max-width:100%;padding:10px 12px;border:1px solid #b9cad1;border-radius:9px;font-size:16px}

/* Feishu mapping review */
.mapping-panel{background:#fff;border:1px solid #dbe6e8;border-radius:15px;padding:22px;margin:0 0 24px}.mapping-panel .section-head{padding:0;border:0}.mapping-note{font-size:12px;line-height:1.7;color:#627781;margin:12px 0 18px}.mapping-toggle{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.mapping-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.5fr) 154px;gap:18px;border:1px solid #dce7e8;border-radius:12px;padding:18px;margin-top:12px;background:#fffdf7}.mapping-card.confirmed{background:#f1f9f5;border-color:#c4e0d0}.mapping-check{display:flex;align-items:start;gap:10px;line-height:1.6}.mapping-check input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:#0e5965}.mapping-spec small,.mapping-choice small{display:block;color:#617680;font-size:12px;line-height:1.7;margin-top:4px;overflow-wrap:anywhere}.mapping-spec strong{font-size:14px;overflow-wrap:anywhere}.mapping-tag{display:inline-block;font-size:11px;padding:3px 7px;background:#f6edd7;color:#805b20;border-radius:5px;margin-bottom:8px}.confirmed .mapping-tag{background:#dcefe4;color:#286747}.mapping-product{font-size:14px;font-weight:750;line-height:1.6;overflow-wrap:anywhere}.mapping-barcode{font-size:12px;margin:6px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.mapping-search{margin-top:12px;border:1px solid #c6d9dc;border-radius:8px;padding:10px;width:100%;font-size:12px;min-height:42px}.mapping-results button{display:block;width:100%;border:1px solid #e2eaea;background:white;text-align:left;padding:10px;line-height:1.5}.mapping-results button:hover{background:#eaf4f3}.mapping-results strong{font-size:12px}.mapping-operations{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px}.mapping-operations .primary{padding:10px;font-size:12px;min-height:42px}.mapping-operations small{font-size:12px;color:#85662d;line-height:1.5}.mapping-complete{padding:20px;color:#2c6954;background:#edf8f2;border-radius:10px;margin-top:16px;font-size:14px}.toolbar .inputs{flex-wrap:wrap;justify-content:flex-end}.sources strong{overflow-wrap:anywhere}.auth-panel[hidden]{display:none}.mapping-panel .actions{flex-wrap:wrap}#mappingStatus{line-height:1.6;max-width:680px}.mapping-panel .section-head{align-items:start;gap:14px;flex-wrap:wrap}
@media(max-width:800px){.mapping-card{grid-template-columns:1fr}.mapping-panel{padding:16px}.mapping-operations{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.mapping-operations small{width:100%}.mapping-choice{padding:12px;background:#ffffffa8;border-radius:8px}.mapping-panel h2{font-size:19px}.toolbar .inputs{justify-content:flex-start;width:100%}.mapping-panel .actions{width:100%;gap:8px}.mapping-panel .actions .primary{min-height:42px;font-size:12px}.mapping-spec small{margin-left:28px}}
.catalog-tools{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.catalog-tools .upload{max-width:330px;min-width:285px;box-shadow:none}.catalog-tools .upload small{max-width:260px}.catalog-tools>input{flex:1;min-width:220px;min-height:50px;border:1px solid #c6d9dc;border-radius:10px;padding:0 14px}.mapping-more{padding:18px;text-align:center;color:#6b7f87;font-size:12px}@media(max-width:700px){.catalog-tools .upload,.catalog-tools>input{max-width:none;min-width:0;width:100%}}

/* Order synchronization, 2026-10-04 */
.sync-panel{background:#fff;border:1px solid #dce4e8;border-radius:16px;padding:22px;margin:18px 0}.sync-panel h2{margin:0}.sync-options{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:14px 0}.sync-options label{display:flex;align-items:center;gap:8px}.sync-options select{border:1px solid #c7d2da;border-radius:8px;padding:8px;background:#fff;font:inherit}.sync-muted,#syncNext{font-size:13px;color:#526777;line-height:1.7}.sync-error{color:#a13b23;font-weight:600}.sync-panel details{border-top:1px solid #e2e8ec;margin-top:14px;padding-top:14px}.sync-panel summary{cursor:pointer;font-weight:600}.sync-confirm{display:block;line-height:1.8;font-size:14px}.sync-pending{margin-top:14px;padding:16px;background:#fff6e5;border:1px solid #f1c978;border-radius:10px}.sync-pending button{margin:4px 8px 0 0}.sync-panel [hidden]{display:none!important}@media(max-width:600px){.sync-panel{padding:16px}.sync-panel .section-head{align-items:flex-start;gap:12px}.sync-options{gap:12px}.sync-panel .primary{white-space:normal}}

.mapping-evidence{margin-top:8px;font-size:12px;color:#476678;overflow-wrap:anywhere}.mapping-evidence summary{cursor:pointer;color:#126574}.mapping-evidence p{margin:8px 0;line-height:1.7}.mapping-evidence a{color:#126574;text-decoration:underline}#orderMatchSummary{line-height:1.7}
.group-head {
 display: grid;
 grid-template-columns: auto minmax(175px, 0.85fr) minmax(230px, 1.5fr) auto auto;
}
.parcel-items {
 list-style: none;
 display: grid;
 gap: 6px;
 min-width: 0;
 margin: 0 8px;
 padding: 0 0 0 14px;
 border-left: 2px solid #dce9e8;
}
.parcel-items li { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.parcel-item-text { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.parcel-item-text strong { display: block; color: #264b51; font-size: 13px; line-height: 1.45; }
.parcel-item-text span { display: block; color: #526b74; font-size: 12px; line-height: 1.45; }
.parcel-qty { color: #315c64; font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.parcel-held { color: #835728; white-space: nowrap; }
@media (max-width: 820px) {
 .group-head { grid-template-columns: auto minmax(0, 1fr) auto auto; }
 .group-head > .parcel-items { grid-column: 2 / -1; grid-row: 2; margin: 2px 0 0; padding-left: 10px; }
 .group-head > .profit { grid-column: 3; grid-row: 1; }
 .group-head > .detail-toggle { grid-column: 4; grid-row: 1; }
}
