:root{--ink:#183b2b;--line:#a9b9ad;--green:#237348;--green-dark:#155333;--green-pale:#eaf5ed;--orange:#e8842b;--pale:#f5faf4;--soft:#fffdf8}*{box-sizing:border-box}body{margin:0;font:14px/1.55 "Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:#edf3ed}aside{position:fixed;width:225px;top:0;bottom:0;padding:22px 14px;background:linear-gradient(#f8fcf7,#eef7ef);border-right:2px solid var(--green);overflow:auto}h1{font-size:23px;line-height:1.22;margin:0 0 18px;color:var(--green-dark)}h1 small{font-size:13px;font-weight:400;color:#52725f}#batchName{border:1px solid var(--line);background:#fff;padding:8px;margin-bottom:12px;font-size:12px}nav button{display:block;width:100%;text-align:left;padding:9px;border:0;border-bottom:1px solid #dce8dc;background:transparent;cursor:pointer;color:var(--ink)}nav button.active,nav button:hover{background:var(--green);color:#fff}.secondary{margin-top:18px;width:100%;padding:9px;background:#fff;border:1px solid var(--green);color:var(--green-dark);cursor:pointer}main{margin-left:225px;min-height:100vh;padding:28px;max-width:1440px}header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--green);margin-bottom:20px}header h2{margin:0;font-size:25px;color:var(--green-dark)}header p{margin:4px 0 12px;color:#597063}.header-actions{display:flex;gap:10px;align-items:center}.header-actions select,button{padding:7px;border:1px solid var(--green);background:#fff;color:var(--ink)}#saveBatch{background:var(--green);color:#fff}button{cursor:pointer}.page{display:none}.page.active{display:block}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.card,.box{background:#fff;border:1px solid #c5d5c8;padding:15px;box-shadow:0 1px 2px #15331a0d}.card b{font-size:25px;display:block;color:var(--green)}.card span{color:#597063}.two{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.box h3{font-size:17px;margin:0 0 10px;border-bottom:1px solid #b6cdb9;padding-bottom:6px;color:var(--green-dark)}.notice{border-left:5px solid var(--orange);background:#fffaf2;padding:12px 14px;margin:12px 0}.muted{color:#667d6d;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 15px}.form-grid label{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:7px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:7px;border:1px solid #b3c6b7;background:#fff}.form-grid textarea{min-height:60px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid #a6d5ad;border-color:var(--green)}.full{grid-column:1/-1}table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}th,td{border:1px solid #c2d0c4;padding:7px;vertical-align:top}th{background:var(--green-pale);color:var(--green-dark);text-align:center}tr.selected,tr:hover{background:#f5faf4}.scroll{overflow:auto;max-height:440px}.pill{display:inline-block;border:1px solid #78a485;color:var(--green-dark);padding:1px 5px;margin:1px;font-size:11px}.result{font-size:16px;font-weight:bold;color:var(--orange)}.formula{background:#f8fcf7;border:1px dashed #82a98b;padding:10px;margin:8px 0;font-family:Consolas,monospace;font-size:12px}.checklist label{display:block;margin:8px 0}.sales-input{width:100%;min-height:140px;padding:8px;border:1px solid #b3c6b7}@media(max-width:900px){aside{position:static;width:auto;border-right:0;border-bottom:2px solid var(--green)}nav{display:flex;overflow:auto}nav button{min-width:130px;border:1px solid #dce8dc}main{margin:0;padding:14px}.grid,.two{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid label{grid-template-columns:115px 1fr}header{display:block}.header-actions{margin:8px 0}}

/* 参考销售与采购机会分析页：深绿侧栏、米白工作区、轻卡片。 */
:root{--ink:#16241e;--green:#358a6e;--green-dark:#0f2c22;--green-pale:#e4efe9;--orange:#b8801f;--line:#e2e6e3}body{background:#faf8f3;color:var(--ink)}aside{width:236px;padding:0;background:#0f2c22;border:0;color:#cbdcd4}aside h1{padding:22px 20px 16px;margin:0;color:#fff;font-size:14px;border-bottom:1px solid rgba(255,255,255,.09)}aside h1 small{color:#7fa294;font-size:11px}#batchName{margin:12px 14px;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#cbdcd4}nav{padding:4px 0}nav button{padding:9px 20px;color:#a9c2b8;border:0;border-left:3px solid transparent}nav button.active,nav button:hover{background:rgba(53,138,110,.22);border-left-color:#5aa88c;color:#fff}.secondary{margin:16px 14px;width:calc(100% - 28px);background:transparent;border-color:#5aa88c;color:#cbdcd4}main{margin-left:236px;padding:30px 40px;background:#faf8f3}header{border-color:#14392c}header h2{color:#0f2c22}.card,.box{border-color:#e2e6e3;border-radius:9px;box-shadow:0 1px 2px rgba(16,40,32,.05)}.card{border-left:3px solid #5aa88c}.notice{border-left-color:#358a6e;background:#f2f7f4}.box h3{border-color:#eef1ef}.decision-head{display:flex;align-items:end;justify-content:space-between;margin:22px 0 14px}.decision-head span{font-size:11px;color:#26705a;letter-spacing:.16em;font-weight:bold}.decision-head h3{font-size:19px;margin:3px 0}.decision-head p{margin:0;color:#6d7a73}.decision-head>b{font-size:12px;color:#26705a}.opportunity-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}.map-card{background:#fff;border:1px solid #e2e6e3;border-radius:9px;padding:15px;box-shadow:0 1px 2px rgba(16,40,32,.05)}.map-card h3{margin:0 0 10px;color:#14392c}.map-card h3 small{font-size:11px;font-weight:normal;color:#6d7a73}.china-map{height:335px;position:relative;overflow:hidden;border-radius:7px;background:radial-gradient(circle at 50% 43%,#f4f7f4 0 32%,#e9f0eb 33% 62%,#dde9e0 63%)}.map-base{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:48%;height:34%;border:2px solid #b7cfc0;border-radius:45% 56% 38% 52%;display:grid;place-content:center;text-align:center;color:#7e9c8a;background:#f8fbf8;font-size:16px}.map-base small{font-size:10px}.xining{position:absolute;left:52%;top:43%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:#0f2c22;color:#fff;text-align:center;padding-top:8px;font-size:11px;z-index:2;box-shadow:0 0 0 5px #d3e3d8}.xining small{font-size:9px;color:#b9d3c6}.map-dot{position:absolute;transform:translate(-50%,-50%);border:0!important;border-radius:14px!important;padding:4px 7px!important;background:#fff!important;color:#14392c!important;box-shadow:0 2px 8px #173c2a30;font-size:10px}.map-dot:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#358a6e;left:50%;top:-7px}.map-dot b,.map-dot span{display:block;white-space:nowrap}.map-dot span{color:#6d7a73}.fit-中:before{background:#b8801f}.opportunity-rows{font-size:13px}.opp-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid #eef1ef}.tag-fit{background:#e4efe9;color:#26705a;font-size:11px;border-radius:12px;padding:2px 8px}.data-link{background:#f2f7f4;border-left:3px solid #5aa88c;padding:10px;margin:12px 0}.data-link b,.data-link span{display:block}.data-link span{color:#52645a;font-size:12px;margin-top:3px}@media(max-width:1000px){.opportunity-layout{grid-template-columns:1fr}.decision-head{display:block}.decision-head>b{display:block;margin-top:6px}}@media(max-width:900px){aside{width:auto;background:#0f2c22}main{margin:0;padding:16px}}
:root{--map-green:#358a6e}.map-svg{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}.china-shape{fill:#f7fbf7;stroke:#b6cdb9;stroke-width:.8}.map-route{fill:none;stroke:#6fab89;stroke-width:.55;stroke-dasharray:1.6 1.4;opacity:.9}.map-base{width:34%;height:22%;border:0;background:transparent;color:#86a491;font-size:14px;z-index:1}.map-dot{z-index:3;transition:transform .15s,box-shadow .15s}.map-dot:hover{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 4px 15px #173c2a42}.map-legend{position:absolute;right:10px;bottom:9px;z-index:4;background:#fffffff0;border:1px solid #e2e6e3;border-radius:5px;padding:5px 7px;font-size:10px;color:#61766b}.map-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#358a6e;margin:0 3px 0 7px}.map-legend i:first-child{margin-left:0}.map-legend .mid{background:#b8801f}.map-legend span{margin-left:6px;color:#7b8b81}.lifecycle-box{margin-top:16px}.lifecycle-box h3 small{font-size:11px;font-weight:400;color:#6d7a73}.life-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:5px}.life-meta b{font-size:16px;color:#14392c}.life-meta span{font-size:12px;color:#61766b}.legend{font-size:11px;color:#61766b;margin:7px 0}.legend i,.legend em{display:inline-block;width:13px;height:8px;margin:0 4px 0 11px;background:#8fc2aa}.legend i:first-child{margin-left:0}.legend em{height:2px;background:#b8801f;vertical-align:middle}.life-svg{display:block;width:100%;height:245px;background:#fbfdfb}.life-svg text{font:9px Arial;fill:#77887d}
:root{--map-green:#358a6e}.map-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0}.map-filters select,.map-filters button,.map-tools button{font-size:11px;padding:5px 7px;border:1px solid #c7d5cb;background:#fff}.map-filters label{font-size:11px;color:#52645a}.map-tools{display:flex;gap:5px;align-items:center;padding:6px 8px;background:#f2f7f4;border:1px solid #e2e6e3;font-size:11px;color:#667d6d}.map-tools span:last-child{margin-left:auto}.china-chart{height:540px;width:100%;background:#fbfdfb;border:1px solid #e2e6e3;border-top:0}.origin-row{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eef1ef;padding:9px;cursor:pointer}.origin-row:hover,.origin-row.active{background:#f2f7f4;border-left:3px solid #358a6e}.origin-row b,.origin-row span,.origin-row em{display:block}.origin-row span{font-size:11px;color:#61766b;margin-top:2px}.origin-row em{font-size:10px;color:#26705a;font-style:normal;margin-top:3px}@media(max-width:900px){.china-chart{height:420px}.map-tools span:last-child{display:none}}
:root{--life-green:#5aa88c}.life-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 0 12px}.life-title b{font-size:22px;color:#14392c;margin-right:10px}.life-title span{font-size:12px;color:#61766b;margin-right:8px}.life-title .life-stage{background:#e4efe9;color:#26705a;border-radius:12px;padding:3px 8px;font-weight:700}.life-note{color:#8a9a90!important}.life-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}.life-kpis div{background:#f7f9f7;border:1px solid #edf1ee;border-radius:8px;padding:10px 12px}.life-kpis small,.life-kpis b{display:block}.life-kpis small{color:#7b8b81;font-size:11px}.life-kpis b{font-size:18px;color:#14392c;margin-top:3px}.life-chart-canvas{height:355px;background:#fff}@media(max-width:900px){.life-title{display:block}.life-note{display:block;margin-top:5px}.life-kpis{grid-template-columns:repeat(2,1fr)}.life-chart-canvas{height:310px}}
:root{--peak-gold:#d69b23}.price-peak-note{color:#9a6810}
:root{--picker:#f7f9f7}.life-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:16px}.life-picker{border:1px solid #e2e6e3;border-radius:8px;background:#fff;max-height:530px;overflow:hidden}.life-picker-head{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #eef1ef;color:#14392c}.life-picker-head small{color:#7b8b81}.life-picker input{width:calc(100% - 20px);margin:10px;border:1px solid #c7d5cb;border-radius:5px;padding:7px}.life-product-list{max-height:430px;overflow:auto}.life-product{display:block;width:100%;padding:9px 11px;text-align:left;background:#fff;border:0;border-bottom:1px solid #eef1ef;cursor:pointer}.life-product:hover,.life-product.active{background:#eaf3ec;border-left:3px solid #358a6e;padding-left:8px}.life-product b,.life-product span{display:block}.life-product b{color:#183b2b}.life-product span{font-size:10.5px;color:#6d7a73;margin-top:2px}.life-main{min-width:0}@media(max-width:900px){.life-layout{grid-template-columns:1fr}.life-picker{max-height:none}.life-product-list{max-height:190px;display:grid;grid-template-columns:repeat(2,1fr)}}
:root{--profit-ok:#237348;--profit-risk:#a33c32}.profit-section{border-top:1px solid #edf1ee;padding:11px 0}.profit-section>b{display:block;color:#155333;margin-bottom:8px}.profit-rules{margin-top:16px}.profit-rules p{line-height:1.8;color:#405348}.profit-decision{margin-top:13px;padding:10px 12px;border-left:4px solid;border-radius:0 6px 6px 0;line-height:1.65}.profit-decision.pass{background:#edf7ef;border-color:var(--profit-ok);color:#155333}.profit-decision.risk{background:#fff3ef;border-color:var(--profit-risk);color:#7c3028}.result.loss{color:#a33c32}
:root{--picker-fix:#fff}#lifecycleChart .life-picker{position:static;top:auto;right:auto;bottom:auto;left:auto;width:auto;padding:0;margin:0;background:#fff;border:1px solid #e2e6e3;overflow:hidden;color:#16241e}#lifecycleChart .life-layout{width:100%;align-items:start}#lifecycleChart .life-main{width:100%;margin:0;padding:0;max-width:none;min-height:0;background:transparent}
.history-price{margin:16px 0;padding:13px 14px;border-left:4px solid #2c8a67;background:#eef6f1;line-height:1.65}.history-price>div{display:flex;gap:16px;margin-top:7px;flex-wrap:wrap}.history-price strong{color:#b8801f;font-size:1.08em}.history-price p{margin:8px 0 0}.history-price em{color:#ad3b2c;font-style:normal;font-weight:700}.history-price.warn{border-left-color:#bd4838;background:#fff1ee}.history-price.empty{border-left-color:#b8801f;background:#fff8e9}.history-price.empty span{display:block;margin-top:5px;color:#65766d}.history-price.compact{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:9px 10px;font-size:12px;line-height:1.45}.history-price.compact strong{font-size:1em}.history-price.compact em{margin-left:auto}.history-price.compact em.ok{color:#277451}.weight-math-warning{margin:8px 0 12px;border-left:4px solid #bd4838;background:#fff1ee;padding:9px 10px;line-height:1.6;color:#7c3028;font-size:12px}
/* 第6步 收货入库成本测算 */
.insp-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.insp-kpis div{background:#f7f9f7;border:1px solid #edf1ee;border-radius:8px;padding:10px 12px}.insp-kpis small{display:block;color:#7b8b81;font-size:11px}.insp-kpis b{display:block;font-size:17px;color:#14392c;margin-top:3px}.insp-kpis b.unit-cost{color:#b8801f}.insp-kpis b.result.loss{color:#a33c32}.insp-basis{margin:4px 0 10px;color:#65766d;font-size:12px}.sync-btn{margin-left:10px;background:#0f2c22;color:#fff;border-color:#0f2c22}.sync-btn:hover{background:#155333}.checklist{margin-top:8px}.checklist b{display:block;margin-bottom:6px;color:#155333}.checklist label{display:inline-flex;align-items:center;gap:5px;margin-right:16px;font-size:13px;color:#405348}.checklist input{width:auto}@media(max-width:900px){.insp-kpis{grid-template-columns:repeat(2,1fr)}}
.price-grid,.grade-board{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.price-grid div,.grade-board div{padding:10px;border:1px solid #e2e6e3;border-radius:7px;background:#f7f9f7}.price-grid small,.price-grid b,.grade-board b,.grade-board span,.grade-board small{display:block}.price-grid b{margin-top:3px;color:#155333}.price-grid .missing{background:#fff5ef;border-color:#ecd1c7}.price-grid .missing b{color:#a33c32}.route-name{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px}.route-name b{color:#14392c}.route-name span{font-size:11px;color:#61766b}.route-line{display:flex;justify-content:space-between;position:relative}.route-line:before{content:"";position:absolute;left:8%;right:8%;top:12px;border-top:2px dashed #c5d5c8}.route-line span{position:relative;z-index:1;text-align:center;font-size:11px;color:#829188;background:#fff;padding:0 3px}.route-line i{display:block;width:24px;height:24px;margin:auto auto 4px;border-radius:50%;background:#dbe6de;color:#61766b;font-style:normal;padding-top:3px}.route-line .done{color:#155333}.route-line .done i{background:#358a6e;color:#fff}.grade-board span{font-size:20px;font-weight:700;color:#14392c;margin:4px 0}.grade-board small{color:#667d6d}.shelf{border:3px solid #8b6f4d;border-radius:4px;background:#f5ede2;padding:11px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between}.shelf.cooler{border-color:#4b88a3;background:#ecf7fb}.shelf-head{border-bottom:2px solid #b89d7d;padding-bottom:7px;font-weight:700}.cooler .shelf-head{border-color:#8ab6c9}.shelf-product{background:#fff;border:1px solid #d9d1c7;border-radius:4px;padding:13px;margin:16px 8px}.shelf-product b,.shelf-product span,.shelf-product strong{display:block}.shelf-product strong{color:#b8801f;font-size:18px;margin-top:4px}.shelf-meta{font-size:12px;color:#5d645f}.shelf-layout{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;background:#e9f1ec;padding:12px;border:1px solid #c8dacf}.shelf-layout>div{min-height:64px;padding:8px;border:1px solid #9cbcac;background:#fff;display:flex;flex-direction:column;gap:5px}.shelf-layout small{font-weight:700;color:#397c62}.shelf-layout b{font-size:14px}.shelf-layout>div:nth-child(3n){background:#f2ece0}.shelf-layout>div.active{background:#d8ece1;border:3px solid #2f8a6a;padding:6px}@media(max-width:700px){.price-grid,.grade-board,.shelf-layout{grid-template-columns:repeat(2,1fr)}.route-line span{font-size:9px}.route-line i{width:20px;height:20px;padding-top:2px}}
