:root{--bg: #f4f7f3;--ink: #183127;--ink-soft: #587066;--line: #dce5df;--green: #2e8058;--green-deep: #174b32;--green-pale: #eaf5ee;--green-chip: #cfe6d8;--white: #fff}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Segoe UI,Microsoft YaHei,Arial,sans-serif;color:var(--ink)}button{font-family:inherit}.matching-page{min-height:100vh;background:var(--bg);color:var(--ink)}.topbar{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 38px;border-bottom:1px solid var(--line);background:var(--white)}.brand-group{display:flex;align-items:center;gap:17px}.brand-group strong{color:#173f2e;font-size:17px}.account{display:flex;align-items:center;gap:16px;font-size:13px}.account button{border:0;background:transparent;color:#718078;cursor:pointer}.workspace{max-width:1720px;margin:auto;padding:18px 30px 44px}.system-status{margin-bottom:15px;padding:13px 16px;border:1px solid #dce8df;border-radius:12px;background:var(--white);color:var(--ink-soft);font-size:13px}.system-status i{display:inline-block;width:9px;height:9px;margin-right:10px;border-radius:50%;background:#2c9b62;box-shadow:0 0 0 4px #e6f5ec}.system-status.error{border-color:#efcfc8;color:#9b4436}.system-status.error i{background:#c85343;box-shadow:0 0 0 4px #f9e9e6}.sync-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 0;font-size:13px;color:#46594e}.sync-status button{background:var(--white);border:1px solid #aac5b4;border-radius:6px;padding:6px 12px;color:#225f3f;cursor:pointer}.sync-status button:disabled{opacity:.6;cursor:wait}.sync-failed{color:#a33025}.workbench{border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:0 8px 24px #1738280d;overflow:hidden}.workbench-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:24px 28px;border-bottom:1px solid var(--line)}.workbench-head small,.workbench-head p,.workbench-tools>span{color:#70847a}.workbench-head h1{margin:4px 0;font-size:25px}.workbench-head p{margin:0;font-size:14px}.workbench-tools{display:flex;flex-direction:column;align-items:flex-end;gap:9px;font-size:13px}.workbench-tools label{display:flex;align-items:center;gap:8px;width:365px;padding:10px 13px;border:1px solid #dbe5df;border-radius:10px;background:#f8faf8}.workbench-tools input{width:100%;border:0;outline:0;background:transparent;color:#203c2f}.table-scroll{overflow-x:auto}.match-table{min-width:980px;background:var(--white)}.group-tabs{display:flex;align-items:stretch;justify-content:flex-start;gap:0;padding:0;background:var(--green-pale);border-bottom:1px solid var(--line)}.group-tab{display:flex;align-items:center;gap:10px;min-height:62px;padding:0 24px;border:0;border-right:1px solid #c9dacf;background:transparent;color:#526c60;font-size:16px;font-weight:700;cursor:pointer}.group-tab.active{background:var(--white);color:var(--green-deep);box-shadow:inset 0 -3px var(--green)}.group-tab b{min-width:30px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;background:var(--green-chip);color:#1f6041;font-size:13px;border-radius:15px}.group-tab.active b{background:var(--green);color:var(--white)}.match-row{display:grid;grid-template-columns:1.5fr 1.05fr .9fr .85fr;border-bottom:1px solid #e3ebe6;align-items:stretch}.match-row.table-head{border-bottom:1px solid #b9c8bf}.match-row.table-head>span{padding:12px 16px;font-size:13px;font-weight:700;color:#526c60}.match-row:last-child{border-bottom:0}.match-row.source-changed{box-shadow:inset 0 0 0 2px #e4a126}.match-row.row-pending{background:#f1f3f2}.match-row.status-ignored .product-cell{color:#77857d}.product-cell{display:flex;flex-direction:column;justify-content:center;min-height:84px;padding:12px 16px;border-right:1px solid #eef3ef}.product-cell h3{margin:0 0 4px;font-size:15px;line-height:1.4}.product-cell small{color:#7a8a80;line-height:1.3}.product-cell p{margin:6px 0 0;color:#6f8278;font-size:13px}.review-change{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:8px;border-radius:6px;background:#fff3e9;color:#8a3815;font-size:13px;overflow-wrap:anywhere}.review-change strong{font-weight:600}.review-change span{line-height:1.5}.picker-cell{display:flex;align-items:center;position:relative;min-height:84px;padding:12px 14px;border-right:1px solid #eef3ef}.picker{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:0 14px;border:1px solid #c9d8cf;border-radius:9px;background:var(--white);color:#203c2f;font-size:14px;cursor:pointer;text-align:left}.picker:hover{border-color:#9fbfad}.picker svg{color:#6f8278;flex:0 0 auto}.picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker.search-mode{display:flex;gap:8px;background:#f8faf8}.picker.search-mode input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#203c2f;font-size:14px}.picker.search-mode button{display:flex;align-items:center;border:0;background:transparent;color:#6f8278;cursor:pointer;padding:0}.row-pending .picker:not(.search-mode){border-color:#d3dad6;background:#e5e9e7;color:#6f7c75}.row-pending .picker:not(.search-mode) svg{color:#7d8983}.picker-menu{position:absolute;top:56px;left:14px;right:14px;z-index:50;display:flex;flex-direction:column;max-height:320px;border:1px solid #b9cbc1;border-radius:10px;background:var(--white);box-shadow:0 12px 30px #1738282e;overflow:hidden}.picker-menu>div{flex:1 1 auto;min-height:0;overflow-y:auto}.picker-menu>div>button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 14px;border:0;border-bottom:1px solid #eef3ef;background:var(--white);color:#203c2f;font-size:14px;cursor:pointer;text-align:left}.picker-menu>div>button:hover{background:#f3f8f5}.picker-menu>div>button.selected{background:#e8f3ec}.picker-menu>div>button span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-menu>div>button small{color:#8a988f;font-size:12px}.picker-menu>div>button b{padding:2px 8px;border-radius:10px;background:#f3dba9;color:#805711;font-size:11px;font-weight:700}.picker-menu>div>p{margin:0;padding:16px;color:#87938d;font-size:13px;text-align:center}.creation-request{position:sticky;bottom:0;z-index:2;flex:0 0 auto;min-height:42px;border:0;border-top:1px solid #e5ece7;background:#f7faf8;color:#225f3f;font-size:13px;cursor:pointer}.creation-request:hover{background:#eef6f1}.creation-request:disabled{cursor:not-allowed;opacity:.65}.planter-menu{left:50%;right:auto;width:290px;transform:translate(-50%)}.actions{display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:8px;min-height:84px;padding:12px 16px}.actions button{min-height:40px;padding:0 14px;border-radius:9px;font-size:14px;cursor:pointer}.actions button:disabled{cursor:not-allowed;opacity:.6}.actions .match-button{border:1px solid var(--green);background:var(--green);color:var(--white);font-weight:600}.actions .match-button.active{background:var(--green-deep);border-color:var(--green-deep)}.actions .ignore-button{border:1px solid #c4d0c8;background:var(--white);color:#526c60}.actions .ignore-button.active{border-color:#2e8058;color:#1f6041}.actions small{width:100%;color:#9a5c22;font-size:12px}.row-pending .actions button:disabled{border-color:#d8dedb;background:#e4e8e6;color:#99a19d}.group-empty{padding:34px;text-align:center;color:#849189}.empty{padding:48px;text-align:center;color:#849189}.error-empty{display:flex;align-items:center;justify-content:center;gap:9px;color:#9b4436}.history-panel{margin:0 20px 20px;padding:20px;border:1px solid #cbd7e3;border-radius:8px;background:#f7faff}.history-panel p{font-size:14px;margin:8px 0;color:#475569}.history-panel output{display:block;font-size:14px;color:#475569;margin:8px 0}.history-results{max-height:350px;overflow-y:auto}.history-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid #dce4ed}.history-item strong{font-size:15px}.history-item p{margin:4px 0 0;font-size:13px;color:#64748b}.history-item button{border:1px solid #b9cbdc;border-radius:6px;background:#f0f6fc;color:#194e7e;padding:9px 14px;cursor:pointer;font-size:14px}.history-item button:disabled{opacity:.55;cursor:default}.workbench footer{padding:12px 28px;border-top:1px solid var(--line);color:#8a988f;font-size:12px}.loginpage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.logincard{width:360px;padding:40px 36px;border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:0 12px 32px #17382814;text-align:center}.loginmark{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto 14px;border-radius:14px;background:var(--green);color:#fff;font-size:24px;font-weight:700}.logincard h1{margin:0 0 6px;font-size:21px;color:#173f2e}.logincard p{margin:0 0 22px;color:#70847a;font-size:13px}.logincard form{display:flex;flex-direction:column;gap:14px;text-align:left}.logincard label{display:flex;flex-direction:column;gap:6px;color:#4c665a;font-size:13px}.logincard input{padding:10px 12px;border:1px solid #d3dfd8;border-radius:8px;font-size:14px;outline:none}.logincard input:focus{border-color:var(--green)}.logincard button{min-height:42px;border:0;border-radius:8px;background:var(--green);color:#fff;font-size:15px;font-weight:600;cursor:pointer}.logincard button:disabled{opacity:.6;cursor:wait}.loginerror{padding:8px 12px;border-radius:8px;background:#fdecea;color:#9b4436;font-size:13px}
