:root{color:#26332d;font-synthesis:none;text-rendering:optimizelegibility;--green:#246b49;--green-dark:#194d35;--green-soft:#e8f3ed;--line:#dfe6e1;--muted:#718078;--paper:#fff;background:#f4f7f5;font-family:Microsoft YaHei UI,PingFang SC,system-ui,sans-serif}.price-range{color:#89958e;white-space:nowrap;align-items:center;gap:4px;display:flex}.price-range input{width:76px;padding:0 7px}.toolbar>.search{width:min(280px,24vw)}.selection-head,.selection-cell{text-align:center!important;background:#f3f7f4!important}.select-row{color:#356149;cursor:pointer;justify-content:center;align-items:center;gap:3px;display:inline-flex}.select-row input{accent-color:#1677d2;width:14px;height:14px;margin:0}.quick-copy{color:#246b49;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0;font-size:12px;text-decoration:underline}.quick-copy:hover{color:#123f2a}.button.export{color:#205d3e;border-color:#7fa48f}.button.search-button,.button.confirm{color:#fff;background:#256f50;border-color:#256f50}.batchbar{background:#f7faf8;border:1px solid #d6e1db;border-radius:7px;justify-content:flex-end;align-items:center;gap:7px;min-height:36px;padding:5px 8px;display:flex}.batchbar strong{color:#27553e;margin-right:auto;font-size:13px}.batchbar .button{height:29px;padding:0 10px;font-size:12px}.cell-selection-note{color:#075ca8;white-space:nowrap;font-size:12px;font-weight:700}*{box-sizing:border-box}body{background:linear-gradient(#f8faf9,#eff4f1);min-width:1100px;min-height:100vh;margin:0}button,input,select{font:inherit}.app-shell{flex-direction:column;gap:8px;height:100vh;padding:14px 18px 10px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:18px;min-height:42px;display:flex}.brand{white-space:nowrap;align-items:center;gap:9px;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.brand strong{font-size:18px}.subtle{color:var(--muted);border-left:1px solid #cfd8d2;padding-left:8px;font-size:12px}.toolbar{flex:1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.search{width:min(310px,28vw)}input,select{color:#26332d;background:#fff;border:1px solid #ccd7d0;border-radius:6px;outline:none;height:32px;padding:0 10px}input:focus,select:focus{border-color:#3d8a64;box-shadow:0 0 0 2px #3d8a641f}select{min-width:105px}.button{color:#315241;cursor:pointer;background:#fff;border:1px solid #bfcfc5;border-radius:6px;height:32px;padding:0 13px;font-weight:600}.button:hover:not(:disabled){background:#edf5f0;border-color:#83a995}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:var(--green-dark)}button:disabled{opacity:.45;cursor:not-allowed}.table-wrap{background:var(--paper);scrollbar-color:#8da397 #edf1ef;scrollbar-width:auto;border:1px solid #d8e1dc;border-radius:8px;flex:1;min-height:260px;overflow:auto;box-shadow:0 3px 16px #1f402f0f}.table-wrap::-webkit-scrollbar{width:14px;height:14px}.table-wrap::-webkit-scrollbar-thumb{background:#8da397;border:3px solid #edf1ef;border-radius:8px}.table-wrap::-webkit-scrollbar-track{background:#edf1ef}table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:2520px;font-size:12px}thead{z-index:3;position:sticky;top:0}th{color:#3d5146;text-align:left;white-space:nowrap;background:#eef4f0;border-bottom:1px solid #cdd9d1;border-right:1px solid #dce4df;height:40px;padding:0 8px;font-weight:700}td{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;background:#fff;border-bottom:1px solid #e6ebe8;border-right:1px solid #edf1ef;outline:none;height:45px;padding:5px 7px;overflow:hidden}tr:hover td{background:#fbfdfc}tr.status-draft td{background:#fffef9}tr.editing td{background:#f4faf6}tr.selected-row td{border-bottom-color:#9bc7ef;box-shadow:inset 0 1px #2277c42e,inset 0 -1px #2277c42e;background:#d9ecff!important}tr.selected-row td:first-child{box-shadow:inset 4px 0 #1677d2,inset 0 1px #2277c42e,inset 0 -1px #2277c42e}tr.selected-row:hover td{background:#cce5ff!important}tr.copied-row td{outline-offset:-2px;outline:2px solid #0b63b6}td.cell-selected{position:relative;background:#c9e5ff!important;box-shadow:inset 0 0 0 2px #0875d1!important}td.cell-selected input{background:#eef7ff;border-color:#1683dc}td.cell-copied:after{content:"";pointer-events:none;border:2px dashed #064f91;position:absolute;inset:1px}td input{font-variant-numeric:tabular-nums;border-radius:4px;width:100%;height:29px;padding:0 7px;font-size:12px}td input[readonly]{color:#5d6b64;background:#f4f7f5}td.readonly{color:#324a3d;background:#f7faf8}.total-col{color:#174d34!important;background:#edf6f0!important;font-weight:800!important}.money-value{font-variant-numeric:tabular-nums}.placeholder{color:#9aa49e}.code{font-family:Consolas,monospace;font-weight:600}.code-entry{gap:4px;display:flex}.code-entry input{min-width:0}.code-entry button,.actions button{color:#2c6044;cursor:pointer;background:#f8fbf9;border:1px solid #c5d3ca;border-radius:4px;height:27px;padding:0 7px;font-size:12px}.code-entry button:hover,.actions button:hover{background:#e8f4ed;border-color:#80aa93}.actions{overflow:visible}.actions button{margin-right:4px}.actions .save{background:var(--green);border-color:var(--green);color:#fff}.actions .danger-link{color:#a54242}.status-pill{border-radius:12px;align-items:center;height:23px;padding:0 8px;font-weight:700;display:inline-flex}.status-pill.draft{color:#7d5d0d;background:#fff2cc}.status-pill.enabled{color:#17643e;background:#dff3e8}.status-pill.disabled{color:#66716b;background:#e9ecea}td small{color:#8a958f;margin-top:2px;font-size:10px;display:block}.empty{text-align:center;color:#849089;height:150px!important}.pagination{color:#607067;justify-content:center;align-items:center;gap:5px;height:34px;font-size:12px;display:flex}.pagination span{margin:0 8px}.pagination button{color:#315241;cursor:pointer;background:#fff;border:1px solid #c5d3ca;border-radius:5px;min-width:30px;height:28px;padding:0 9px}.pagination button:hover:not(:disabled){background:#edf5f0;border-color:#83a995}.pagination button.active{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.pagination button:disabled{opacity:.4}.footnote .version{color:#8a958f;font-family:Consolas,monospace}.footnote{color:#6f7e76;justify-content:center;align-items:center;gap:24px;height:24px;padding:0 4px;font-size:11px;display:flex}.toast{z-index:20;color:#fff;border-radius:6px;padding:9px 16px;font-size:13px;position:fixed;top:96px;left:50%;transform:translate(-50%);box-shadow:0 5px 18px #00000026}.toast.success{background:#256947}.toast.danger{background:#a44444}.modal-backdrop{z-index:30;background:#17231d57;justify-content:flex-end;display:flex;position:fixed;inset:0}.history-panel{background:#f7faf8;flex-direction:column;width:min(520px,92vw);height:100%;display:flex;box-shadow:-8px 0 28px #00000026}.history-panel>header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:flex-start;height:74px;padding:14px 18px;display:flex}.history-panel header strong{font-size:17px}.history-panel header p{color:var(--muted);margin:4px 0 0;font-size:12px}.close{color:#748078;cursor:pointer;background:0 0;border:0;font-size:28px}.history-list{padding:14px;overflow:auto}.history-list article{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:10px;padding:13px}.history-head{border-bottom:1px solid #edf1ef;justify-content:space-between;padding-bottom:9px;display:flex}.history-head time{color:#7b8780;font-size:11px}.change{grid-template-columns:110px 1fr 20px 1fr;align-items:center;gap:7px;margin-top:9px;font-size:12px;display:grid}.change span{color:#607067}.change del{color:#9b4e4e;background:#fff0f0;border-radius:4px;padding:4px 6px;text-decoration:none}.change b{text-align:center;color:#87938c}.change ins{color:#226445;background:#edf8f1;border-radius:4px;padding:4px 6px;text-decoration:none}@media (width<=1400px){.subtle{display:none}.app-shell{padding:10px}.toolbar{gap:6px}.search{width:210px}.batchbar{justify-content:flex-start;overflow-x:auto}.batchbar strong{min-width:70px}.toolbar .button{padding:0 9px}}.button.undo{color:#8a5a00;border-color:#d4a24b}.code-entry .delete-code{color:#a54242;border-color:#d9aaaa}.view-tabs{align-items:center;gap:4px;display:flex}.view-tabs button{color:#4b5563;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;height:30px;padding:0 12px;font-size:13px;font-weight:600}.view-tabs button:hover{background:#eef2f7}.view-tabs button.active{background:var(--green);border-color:var(--green);color:#fff}.material-status{color:var(--muted);margin-left:auto;font-size:12px}.material-vc{color:var(--muted);margin-left:8px;font-size:11px}.material-hint{color:#7b8780;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10px;line-height:1.2;display:block;overflow:hidden}.status-pill.pot{color:#1f4e8c;background:#e6eefb}.status-pill.plant{color:#17643e;background:#dff3e8}.status-pill.carton{color:#5b3a8c;background:#f3ecfb}td.link-actions{vertical-align:top;background:#f7faf8;border-left:1px solid #cdd9d1}td.link-actions .button.small{width:100%;height:26px;margin-bottom:4px;padding:0 8px;font-size:11px;display:block}td.link-actions .danger-link.block{margin-top:2px}.history-actor{color:#83918a;margin:2px 0 6px;font-size:11px}.search input[type=search]{width:100%}.status-filter{min-width:88px;height:32px}.sku-mismatch{color:#a54242;white-space:nowrap;cursor:help;margin-top:3px;font-size:11px;font-weight:700;display:block}.mismatch-note{color:#a54242;white-space:nowrap;cursor:help;font-size:12px;font-weight:700}.button.danger{color:#a54242;background:#fdf7f7;border-color:#d9aaaa}.button.danger:hover{background:#f8eaea}.button.active{color:#226445;background:#e8f3ec;border-color:#7fae95;font-weight:700}th.resizable{position:relative;overflow:visible}th.resizable .col-resizer{cursor:col-resize;z-index:6;width:9px;height:100%;position:absolute;top:0;right:-4px}th.resizable .col-resizer:hover{background:linear-gradient(90deg,#0000,#8fc4a6)}td.load-failed{color:#a54242}.load-failed-text{color:#a54242;font-weight:700}td.load-failed .button{margin-left:8px}.page-size{color:#4b5563;align-items:center;gap:4px;font-size:12px;display:inline-flex}.page-size select{min-width:66px;height:26px;padding:0 6px;font-size:12px}.page-jump{color:#4b5563;white-space:nowrap;align-items:center;gap:3px;font-size:12px;display:inline-flex}.page-input{text-align:center;font-variant-numeric:tabular-nums;width:58px;height:26px;padding:0 6px;font-size:12px}tr.status-draft td.row-gutter{background:#f7f4ea}th.pick-head,th.gutter-head{text-align:center;color:#8a958f;padding:0;font-size:11px}td.pick-cell{text-align:center;vertical-align:top;background:#f7faf8;border-right:1px solid #cdd9d1;padding-top:8px}td.pick-cell input{cursor:pointer;width:15px;height:15px}td.row-gutter{text-align:center;color:#8a958f;cursor:pointer;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;background:#f7faf8;width:40px;font-size:11px}tr.listing-alt td.row-gutter{background:#e0ede7}td.row-gutter:hover{color:#315241;background:#dcebe2}td.row-gutter.row-selected{color:#0b4a7d;font-weight:700;background:#c9e5ff!important}th.copy-head{cursor:pointer;-webkit-user-select:none;user-select:none}th.copy-head:hover{background:#e2ece6}th.copy-head.col-selected{color:#0b4a7d;background:#c9e5ff;box-shadow:inset 0 -2px #0875d1}.table-wrap.dragging-cells,.table-wrap.dragging-cells td,.table-wrap.dragging-cells input{-webkit-user-select:none;user-select:none}tr.listing-alt td{background:#e9f4ee}tr.listing-alt td.link-merged,tr.listing-alt td.link-actions{background:#e0ede7}tr.listing-alt:hover td{background:#e3efe9}tr.status-disabled td{opacity:.55}.rate-group{color:#4b5563;white-space:nowrap;align-items:center;gap:3px;font-size:12px;display:inline-flex}.rate-input{font-variant-numeric:tabular-nums;width:54px;height:26px;padding:0 6px;font-size:12px}.price-input{font-variant-numeric:tabular-nums;text-align:right;border-radius:4px;width:100%;height:29px;padding:0 7px;font-size:12px}.text-input{border-radius:4px;width:100%;height:29px;padding:0 7px;font-size:12px}td.link-merged{vertical-align:top;background:#f7faf8;border-right:1px solid #cdd9d1}.danger-link.block{color:#a54242;cursor:pointer;white-space:nowrap;background:#fdf7f7;border:1px solid #d9aaaa;border-radius:4px;height:24px;margin-top:5px;padding:0 8px;font-size:11px;display:block}.danger-link.block:hover{background:#f8eaea}td.suggest-open{z-index:6;position:relative;overflow:visible}.suggest-panel{z-index:20;text-align:left;background:#fff;border:1px solid #b9cbc0;border-radius:6px;min-width:340px;max-width:560px;max-height:320px;position:absolute;top:100%;left:0;overflow:auto;box-shadow:0 8px 24px #1f402f2e}.suggest-hint{color:#6b7a72;background:#f2f7f4;border-bottom:1px solid #e3eae6;padding:5px 9px;font-size:11px;position:sticky;top:0}.suggest-item{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f2f5f3;width:100%;padding:5px 9px;display:block}.suggest-item:hover{background:#eaf5ee}.suggest-name{color:#26332d;white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.suggest-meta{color:#83918a;white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.money-value.negative{color:#a54242!important}.table-wrap.picker{flex:none;min-height:0;max-height:230px}.table-wrap.picker tr.already-added td{color:#94a29b;background:#f4f7f5}.table-wrap.picker .added-tag{color:#3c7a5b;white-space:nowrap;background:#e4efe8;border-radius:10px;padding:1px 8px;font-size:11px;display:inline-block}.table-wrap.picker .other-link-tag{color:#9a6b1f;white-space:nowrap;text-overflow:ellipsis;background:#fdf3e3;border-radius:10px;max-width:160px;padding:1px 8px;font-size:11px;display:inline-block;overflow:hidden}.info-table{table-layout:auto}.info-table td{white-space:nowrap;vertical-align:middle}.info-table .text-input{width:100%}.export-picker{width:420px}.export-picker-toolbar{border-bottom:1px solid #e4ece7;align-items:center;gap:6px;padding:8px 0;display:flex}.export-picker-count{color:#7c8b83;margin-left:auto;font-size:12px}.export-picker-list{grid-template-columns:repeat(3,1fr);gap:4px;max-height:320px;padding:8px 0;display:grid;overflow:auto}.export-picker-item{color:#3c5246;cursor:pointer;border-radius:4px;align-items:center;gap:5px;padding:3px 6px;font-size:12px;display:flex}.export-picker-item:hover{background:#f0f6f2}.export-picker-item input{accent-color:#2c6044}.export-picker-footer{border-top:1px solid #e4ece7;justify-content:flex-end;padding-top:10px;display:flex}.select-row input[type=checkbox],.pick-cell input[type=checkbox]{pointer-events:none}.cost-log{border:1px solid #e2e9e4;border-radius:8px;margin-top:14px;overflow:hidden}.cost-log header{background:#f5f9f6;border-bottom:1px solid #e2e9e4;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.cost-log header strong{color:#2c6044;font-size:13px}.cost-log table{border-collapse:collapse;width:100%;font-size:12px}.cost-log th,.cost-log td{text-align:left;white-space:nowrap;border-bottom:1px solid #eef2ef;padding:7px 10px}.cost-log th{color:#6f7e76;background:#fafcfa;font-weight:600}.cost-log td small{color:#8a958f;font-size:10px;display:block}.prefill-panel{flex-direction:column;width:780px;max-width:94vw;max-height:88vh;display:flex}.prefill-form{border-bottom:1px solid #e4ece7;flex-direction:column;gap:8px;padding:10px 0;display:flex}.prefill-form label{align-items:center;gap:8px;font-size:13px;display:flex}.prefill-form input[type=text]{border:1px solid #d5e0da;border-radius:6px;flex:1;padding:6px 10px}.prefill-listings{flex-wrap:wrap;align-items:center;gap:6px;max-height:130px;display:flex;overflow:auto}.prefill-label{color:#6f7e76;font-size:12px}.prefill-check{background:#f3f8f5;border-radius:12px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;display:inline-flex}.prefill-actions{align-items:center;gap:10px;display:flex}.prefill-preview{flex:1;padding:8px 0;overflow:auto}.prefill-mode{color:#6f7e76;background:#f6faf7;border-radius:6px;margin:0 0 8px;padding:6px 10px;font-size:12px}.prefill-group{border:1px solid #e4ece7;border-radius:8px;margin-bottom:10px;padding:8px 10px}.prefill-group h4{color:#2c6044;margin:0 0 6px;font-size:13px}.prefill-bucket{margin-bottom:6px}.prefill-bucket-head{color:#4a5a52;margin-bottom:3px;font-size:12px}.prefill-products{flex-wrap:wrap;gap:4px;display:flex}.prefill-chip{white-space:nowrap;cursor:pointer;background:#eef4f0;border-radius:10px;align-items:center;gap:3px;padding:1px 8px;font-size:11px;display:inline-flex}.prefill-chip input{cursor:pointer;width:12px;height:12px;margin:0}.prefill-selection{padding:2px 0 6px}.prefill-hint{color:#3c7a5b;background:#f1f8f4;border-radius:6px;margin:0;padding:5px 9px;font-size:12px}.prefill-done{color:#246b49;padding:6px 0;font-size:12px}.prefill-footer{border-top:1px solid #e4ece7;justify-content:flex-end;gap:10px;padding-top:8px;display:flex}html,body{overscroll-behavior-x:none}.login-page{background:linear-gradient(135deg,#e8f0ec,#f4f8f5);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:14px;flex-direction:column;gap:12px;width:340px;padding:28px 30px;display:flex;box-shadow:0 12px 40px #246b491f}.login-card h1{color:#246b49;margin:0;font-size:20px}.login-sub{color:#7a8a82;margin:0 0 6px;font-size:12px}.login-card label{color:#3c4a43;flex-direction:column;gap:4px;font-size:13px;display:flex}.login-card input{border:1px solid #d5e0da;border-radius:8px;padding:8px 10px;font-size:14px}.login-card button{color:#fff;cursor:pointer;background:#246b49;border:none;border-radius:8px;margin-top:6px;padding:9px;font-size:14px}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:#a54242;margin:0;font-size:12px}.login-note{color:#8a958f;margin:0;font-size:11px}.user-box{color:#6f7e76;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.user-box .logout{color:#3c7a5b;cursor:pointer;background:#fff;border:1px solid #d5e0da;border-radius:10px;padding:2px 9px;font-size:11px}
