:root{--ink:#20251f;--muted:#7c806f;--paper:#f3f2ec;--card:#fff;--line:#dedfd5;--green:#315744;--green2:#426d56;--gold:#b77d35;--danger:#96493f;--shadow:0 18px 55px rgba(42,48,36,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#252a24;color:#fff;padding:32px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;flex-direction:column;gap:3px;padding:0 12px 28px}.brand b{font:800 24px/1 Arial;letter-spacing:.16em}.brand span{font:11px/1.4 Arial;letter-spacing:.14em;color:#afb9ae}.sidebar nav{display:grid;gap:8px}.nav{border:0;background:transparent;color:#c9cec6;padding:14px 16px;border-radius:12px;text-align:left;font-size:15px;cursor:pointer}.nav:hover,.nav.active{background:#3c483d;color:#fff}.service-status{margin-top:auto;border-top:1px solid #41473f;padding:18px 10px 0;font-size:12px;color:#bac1b8}.service-status div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;margin:8px 0}.service-status i{width:7px;height:7px;border-radius:50%;background:#a25b4f}.service-status i.ok{background:#71c890;box-shadow:0 0 0 3px rgba(113,200,144,.12)}.service-status strong{font-weight:500;color:#e7e9e5}.service-status small{display:block;margin-top:10px;color:#889087}main{margin-left:238px;padding:32px 3vw 60px;max-width:1900px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}header h1{font:700 clamp(28px,3vw,44px)/1.2 Georgia,"Microsoft YaHei",serif;margin:5px 0}.kicker{font:700 11px/1 Arial;letter-spacing:.18em;color:var(--gold)}.header-actions{display:flex;gap:9px}.ghost,.copy-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 15px;cursor:pointer;color:var(--ink)}.page{display:none}.page.active{display:block}.columns{display:grid;grid-template-columns:minmax(330px,420px) minmax(0,1fr);gap:22px;align-items:start}.stack{display:grid;gap:22px}.card{background:var(--card);border:1px solid rgba(60,70,55,.08);border-radius:24px;padding:26px;box-shadow:var(--shadow)}.step-title{display:flex;align-items:center;gap:13px;margin-bottom:22px}.step-title>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf1eb;color:var(--green);font:800 14px Arial}.step-title h2{font-size:20px;margin:0}.step-title p,.cardhead p{font-size:13px;color:var(--muted);margin:5px 0 0}.step-title.compact{margin:0}.step-title.compact>span{width:37px;height:37px}.upload{height:260px;border:1px dashed #c9ccbf;background:#f8f8f4;border-radius:18px;display:grid;place-items:center;position:relative;overflow:hidden;cursor:pointer;margin-bottom:22px}.upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload img{display:none;width:100%;height:100%;object-fit:contain;background:#ecece6}.upload>span{display:grid;text-align:center;gap:8px;color:var(--green)}.upload small{font-weight:400;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid .wide{grid-column:1/-1}label{display:grid;gap:7px;color:#606557;font-size:13px}input,textarea,select{width:100%;border:1px solid var(--line);background:#fbfbf8;color:var(--ink);border-radius:12px;padding:12px 14px;font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:#829b86;box-shadow:0 0 0 3px rgba(66,109,86,.09)}textarea{min-height:105px;resize:vertical}.primary,.ai{border:0;border-radius:12px;background:var(--green);color:#fff;padding:13px 18px;font-weight:700;cursor:pointer}.primary:hover,.ai:hover{background:var(--green2)}.primary:disabled,.ai:disabled{opacity:.48;cursor:not-allowed}.full{width:100%;margin-top:18px}.gold{background:var(--gold)}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.image-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.finance{display:grid;grid-template-columns:1.2fr repeat(3,1fr);background:linear-gradient(135deg,#29392f,#3e5444);color:#fff;padding:22px 26px}.finance div{display:grid;gap:6px;border-left:1px solid rgba(255,255,255,.14);padding-left:22px}.finance div:first-child{border:0;padding-left:0}.finance small{color:#bfc9bf}.finance strong{font:700 24px/1.2 Georgia,"Microsoft YaHei",serif}.empty{height:150px;border:1px dashed var(--line);border-radius:16px;display:grid;place-items:center;color:#a0a393}.result-head{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.result-head h3{font-size:14px;margin:0}.copy-btn{font-size:12px;padding:7px 11px}.result{background:#f5f5f0;border-radius:15px;padding:17px 20px;line-height:1.75;margin-top:9px}.detail section+section{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.detail h4{margin:0 0 7px;color:var(--green)}.detail p{white-space:pre-wrap;margin:0;color:#4e5349}.batch-note{font-size:12px;color:#8c7759;margin:10px 0 16px}.image-result{height:440px;background:#f2f2ed;border-radius:18px;overflow:hidden;display:grid;place-items:center;color:#969a8c}.image-result img,.image-card img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#ecece7}.image-result:has(img){height:auto;min-height:200px;display:block}.image-meta{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#f7f7f2}.image-meta a{color:var(--green);font-size:13px}.image-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px}.image-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#f7f7f2}.image-card.pending{min-height:230px;display:grid;place-items:center;padding:20px;color:var(--muted);text-align:center}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.table{margin-top:22px;display:grid}.tr{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:16px;align-items:center;padding:15px 8px;border-top:1px solid #ecece5;font-size:13px}.tr.head{color:var(--muted);border-top:0}.badge{display:inline-flex;background:#edf1eb;color:var(--green);border-radius:999px;padding:5px 9px;width:max-content}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#252a24;color:#fff;border-radius:13px;padding:14px 22px;z-index:50;max-width:min(90vw,760px);box-shadow:0 10px 35px rgba(0,0,0,.2);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#f8efe1,transparent 35%),var(--paper);padding:24px}.login-card{margin:0;width:min(440px,100%);background:#fff;border-radius:28px;padding:42px;box-shadow:var(--shadow)}.login-brand{padding:0 0 40px}.login-brand b{color:var(--green)}.login-brand span{color:#8e968c}.login-card h1{font:700 34px Georgia,"Microsoft YaHei",serif;margin:0 0 8px}.login-card>p{color:var(--muted);margin:0 0 30px}.login-card form{display:grid;gap:18px}.login-error{min-height:20px;color:var(--danger);font-size:13px;text-align:center}
@media(max-width:1050px){.sidebar{position:static;width:auto;height:auto;padding:18px;display:block}.brand{padding:0 0 16px}.sidebar nav{display:flex;overflow:auto}.service-status{display:none}main{margin:0;padding:24px}.columns{grid-template-columns:1fr}.form-card{order:0}}
@media(max-width:680px){main{padding:18px 12px 40px}header{align-items:flex-start}header h1{font-size:28px}.header-actions{flex-direction:column}.card{border-radius:18px;padding:18px}.grid{grid-template-columns:1fr}.grid .wide{grid-column:auto}.finance{grid-template-columns:1fr 1fr;gap:18px}.finance div,.finance div:first-child{border:0;padding:0}.finance strong{font-size:19px}.cardhead{align-items:flex-start;flex-direction:column}.image-actions{width:100%}.image-actions button{flex:1}.image-result{height:300px}.image-gallery{grid-template-columns:1fr}.tr{grid-template-columns:1fr 1fr}.tr.head{display:none}.login-card{padding:30px 24px}}
