:root{--stone: #F7F4EF;--stone-mid: #EDE8DF;--ink: #1A1916;--ink-mid: #4A4843;--ink-light: #8C8A85;--blue: #185FA5;--blue-dark: #0C447C;--blue-light: #D6E8FB;--white: #ffffff;--line: #E4DED3;--line-soft: #F0EBE2;--ok-bg: #D1FAE5;--ok-text: #065F46;--new-bg: #D6E8FB;--new-text: #0C447C;--off-bg: #FDDEDE;--off-text: #A32D2D;--warn-bg: #FFF3CD;--warn-text: #854F0B;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(26,25,22,.04), 0 8px 24px rgba(26,25,22,.06)}*{box-sizing:border-box}html{background:var(--stone)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;padding:0;font-size:14px;line-height:1.45;color:var(--ink);background:var(--stone);-webkit-font-smoothing:antialiased}header.topbar{background:var(--ink);border-bottom:3px solid var(--blue);padding:0 28px}.topbar-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:14px 0}.topbar-logo{height:34px;width:auto;flex:0 0 auto}.topbar-text{flex:1;min-width:0}.topbar h1{margin:0;font-size:20px;font-weight:650;letter-spacing:-.01em;color:var(--white)}.topbar .tagline{margin:2px 0 0;font-size:13px;color:#b9b6af}#version{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--blue-light);background:#185fa547;border:1px solid rgba(214,232,251,.28);border-radius:999px;padding:4px 12px}.wrap{max-width:1180px;margin:0 auto;padding:20px 28px 44px}.layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}.col{display:flex;flex-direction:column;gap:18px;min-width:0}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card>h2{margin:0;padding:12px 20px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mid);background:#fcfaf7;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}.card>h2 .step{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--blue);color:var(--white);font-size:12px;font-weight:700;letter-spacing:0}.card-body{padding:16px 20px}.row{display:flex;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.row:first-child{padding-top:0}.row:last-child{border-bottom:none;padding-bottom:0}.row>label{flex:0 0 150px;font-weight:600;font-size:13px;color:var(--ink-mid)}.row .field{flex:1;min-width:0}.hint{display:block;margin-top:5px;font-size:12px;color:var(--ink-light)}select,input[type=number],input[type=file]{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--white);border:1px solid #D8D2C7;border-radius:var(--radius-sm);padding:9px 11px}select{cursor:pointer}select:focus,input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #185fa524}input[type=file]{padding:7px 10px;cursor:pointer}input[type=file]::file-selector-button{font-family:inherit;font-size:13px;font-weight:600;color:var(--blue-dark);background:var(--blue-light);border:1px solid #BCD8F5;border-radius:6px;padding:6px 12px;margin-right:12px;cursor:pointer}input[type=file]::file-selector-button:hover{background:#c6def8}#supplier-file-list-row{align-items:flex-start}#supplier-file-list{font-size:13px;line-height:1.7;color:var(--ink-mid)}.margins-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.margins-grid .m-cell{display:flex;flex-direction:column;gap:5px}.margins-grid .m-cell span{font-size:12px;font-weight:600;color:var(--ink-light)}.margins-grid input{text-align:right}.adjust-row .field{display:flex;gap:12px}.adjust-row select{flex:1}.adjust-row input[type=number]{flex:0 0 110px;text-align:right}.actions{display:flex;gap:12px;padding:14px 20px;background:#fcfaf7;border-top:1px solid var(--line-soft)}.actions button{flex:1;padding:12px 18px;border:1px solid transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:14px;font-weight:650;cursor:pointer;transition:background .15s,box-shadow .15s}.actions button.primary{background:var(--blue);color:var(--white);box-shadow:0 1px 2px #0c447c40}.actions button.primary:hover{background:var(--blue-dark)}.actions button#btn-export{background:var(--white);color:var(--blue-dark);border-color:#bcd8f5}.actions button#btn-export:hover:not(:disabled){background:var(--blue-light)}.actions button:disabled{background:var(--stone-mid);color:#a9a49a;border-color:transparent;box-shadow:none;cursor:not-allowed}.actions button.undo{flex:0 0 52px;background:var(--white);color:var(--ink-mid);border-color:#d8d2c7;font-size:18px;padding:0}.actions button.undo:hover{background:var(--stone-mid)}.summary.hidden{display:none}.counts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.count{padding:16px 10px;border-radius:var(--radius-sm);text-align:center;display:flex;flex-direction:column;gap:2px}.count.match{background:var(--ok-bg);color:var(--ok-text)}.count.new{background:var(--new-bg);color:var(--new-text)}.count.inactive{background:var(--off-bg);color:var(--off-text)}.count .num{font-size:30px;font-weight:700;line-height:1.05}.count span:last-child{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}#warnings{margin-top:14px}#warnings:empty{display:none}#warnings>div{font-size:13px;color:var(--warn-text);background:var(--warn-bg);border:1px solid #F5E3B0;border-radius:var(--radius-sm);padding:9px 12px;margin-top:8px}.guide ol{margin:0;padding-left:20px}.guide li{font-size:13px;color:var(--ink-mid);margin-bottom:8px}.guide li:last-child{margin-bottom:0}.guide strong{color:var(--ink)}.history-box .card-body{padding-top:6px}#history-list{font-size:13px;color:var(--ink-light);max-height:190px;overflow-y:auto}.h-item{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--ink-mid)}.h-item:last-child{border-bottom:none}.log-card:has(#log:empty){display:none}#log:empty{display:none}.log{margin:0;padding:14px 18px;background:var(--ink);color:#e5e1d8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;max-height:320px;overflow-y:auto;white-space:pre-wrap;line-height:1.55}.log .err{color:#fca5a5}.log .ok{color:#86efac}.log .warn{color:#fde68a}@media (max-width: 1000px){.layout{grid-template-columns:minmax(0,1fr)}}@media (max-width: 720px){header.topbar,.wrap{padding-left:16px;padding-right:16px}.row{flex-direction:column;align-items:stretch;gap:7px}.row>label{flex:none}.margins-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.actions{flex-wrap:wrap}}.back{color:#e5e1d8;text-decoration:none;font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:5px 12px;white-space:nowrap}.back:hover{background:#ffffff14}.ti{vertical-align:-2px}.actions button .ti{font-size:16px;margin-right:4px}.actions button.undo .ti{margin:0;font-size:18px}.sample-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--white);border:1px solid #BCD8F5;border-left:4px solid var(--blue);border-radius:var(--radius);padding:14px 18px;margin-bottom:18px;box-shadow:var(--shadow)}.sb-text{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-mid)}.sb-text>.ti{font-size:22px;color:var(--blue);margin-top:1px}.sb-text strong{color:var(--ink)}.sb-links{margin-top:4px;font-size:12.5px;color:var(--ink-light)}.sb-links a,.hint a{color:var(--blue);font-weight:600;text-decoration:none}.sb-links a:hover{text-decoration:underline}.sample-btn{flex:0 0 auto;background:var(--blue);color:#fff;border:0;border-radius:var(--radius-sm);padding:12px 18px;font:inherit;font-weight:650;cursor:pointer;box-shadow:0 1px 2px #0c447c40}.sample-btn:hover{background:var(--blue-dark)}.picked{color:var(--blue-dark);font-weight:600}.file-chip{display:flex;align-items:center;gap:6px}.file-chip a{color:#b91c1c;text-decoration:none;margin-left:4px}#supplier-rule{color:var(--ink-mid)}#supplier-rule .ti{color:var(--blue)}.count.alert{background:var(--warn-bg);color:var(--warn-text)}.count .num{font-size:26px}#warnings .ti{margin-right:4px}.results{margin-top:18px}.results.hidden{display:none}.rtabs{display:flex;gap:6px;flex-wrap:wrap;padding:12px 20px 0;border-bottom:1px solid var(--line-soft)}.rtab{font:inherit;font-size:13px;font-weight:600;color:var(--ink-mid);background:transparent;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;padding:8px 14px;cursor:pointer;margin-bottom:-1px}.rtab span{display:inline-block;min-width:20px;padding:1px 7px;margin-left:4px;border-radius:999px;background:var(--stone-mid);color:var(--ink-mid);font-size:11.5px}.rtab:hover{color:var(--blue-dark)}.rtab.on{background:var(--white);color:var(--blue-dark);border-color:var(--line)}.rtab.on span{background:var(--blue-light);color:var(--blue-dark)}.rtab.hot span{background:var(--off-bg);color:var(--off-text)}.tbl-wrap{overflow-x:auto}.rtable{width:100%;border-collapse:collapse;font-size:13px}.rtable th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-light);padding:10px 14px;background:#fcfaf7;border-bottom:1px solid var(--line);white-space:nowrap}.rtable td{padding:9px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}.rtable tr:hover td{background:#fbf9f5}.rtable .sub{font-size:11.5px;color:var(--ink-light);margin-top:2px}.rtable code,.rtable a.sku{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:nowrap}.rtable a.sku{color:var(--blue);text-decoration:none}.rtable a.sku:hover{text-decoration:underline}.pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}.pill.green{background:var(--ok-bg);color:var(--ok-text)}.pill.amber{background:var(--warn-bg);color:var(--warn-text)}.pill.red{background:var(--off-bg);color:var(--off-text)}.pill.blue{background:var(--blue-light);color:var(--blue-dark)}.pill.grey{background:var(--stone-mid);color:var(--ink-mid)}.d{font-weight:700;font-size:12px;white-space:nowrap}.d.red{color:var(--off-text)}.d.amber{color:var(--warn-text)}.d.grey{color:var(--ink-light);font-weight:500}.d.muted{color:var(--ink-mid)}.empty{padding:28px 20px;color:var(--ink-light);text-align:center;font-size:13px}@media (max-width: 720px){.sample-banner{flex-direction:column;align-items:stretch}.counts{grid-template-columns:repeat(2,1fr)}.topbar-inner{flex-wrap:wrap}}
