:root{--green:#245b49;--dark:#1b3f30;--muted:#708276;--line:#e0e8e2;--bg:#f5f8f6;--surface:#fff;--gold:#c6a15b;--danger:#a13f36;--radius:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--dark);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green);padding:11px 15px;min-height:44px;font-weight:550}button:hover{background:#eef4f0}button:disabled{opacity:.48;cursor:not-allowed}input,select{width:100%;border:1px solid #cbd8cf;border-radius:7px;padding:11px 12px;background:white;color:var(--dark);min-height:46px;font-size:16px}input[type=checkbox]{width:21px;height:21px;min-height:21px;flex-shrink:0;accent-color:var(--green)}input[type=file]{padding:12px;max-width:100%}input:focus,select:focus,button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #9bbbaa;outline-offset:3px}label{display:flex;flex-direction:column;gap:7px;color:#51695a;font-size:13px}h1,h2,h3,p{margin-top:0}h1{font-size:27px;line-height:1.3;letter-spacing:-.8px;margin-bottom:8px}h2{font-size:18px;margin-bottom:8px;line-height:1.5}h3{font-size:16px;margin-bottom:9px}p{margin-bottom:14px}small,.muted{color:var(--muted)}small{font-size:12px}a{color:var(--green)}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#173f30}.danger{color:var(--danger)}.text-button{border:0;background:transparent;padding:8px;min-height:44px}.login-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:28px 20px}.login-panel{width:100%;max-width:410px}.brand{font-size:22px;letter-spacing:1px;font-weight:650}.brand-mark{display:inline-block;border:2px solid var(--green);border-radius:4px;width:19px;height:25px;vertical-align:-4px;margin-right:10px;transform:skewY(-10deg)}.login-panel .brand{margin-bottom:43px}.login-panel h1{font-size:30px}.login-panel form{display:grid;gap:20px;margin-top:30px}.login-panel .primary{margin-top:4px}.privacy-note{font-size:12px;line-height:1.9;color:var(--muted);margin-top:23px}.topbar{background:white;border-bottom:1px solid var(--line);padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar .brand{font-size:19px}.topbar .brand-mark{width:15px;height:21px;margin-right:8px}.tools{display:flex;gap:4px;align-items:center}.tools button{font-size:12px;padding:8px;min-height:40px}.main{max-width:1220px;margin:auto;padding:27px 18px 104px}.page-head{margin-bottom:23px}.page-head p{color:var(--muted);font-size:13px;line-height:1.8;margin:0}.nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:7px 6px calc(7px + env(safe-area-inset-bottom));z-index:10;box-shadow:0 -4px 22px #1b3f3005}.nav button{border:0;background:transparent;padding:8px 3px;font-size:12px;color:#7c8c80;border-radius:7px;min-height:47px}.nav button.active{background:#e9f1ec;color:var(--green);font-weight:650}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:21px 18px;margin-bottom:17px;min-width:0}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:13px;margin-bottom:20px}.section-head h2{margin:0}.section-head p{font-size:12px;color:var(--muted);margin:5px 0 0}.section-head button{font-size:12px;padding:5px 8px}.hero{padding:25px 22px;background:#eaf1ec;border-color:#dce7de}.hero .label{font-size:13px;color:#6b8071}.total{font-size:39px;line-height:1.5;letter-spacing:-1.5px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:8px 0}.total span{font-size:23px;margin-right:8px}.hero p{color:#6f8375;font-size:12px;margin:0}.stat-line{display:flex;gap:22px;margin-top:23px;padding-top:17px;border-top:1px solid #d3e1d7}.stat-line div{flex:1}.stat-line strong{display:block;font-size:17px;font-variant-numeric:tabular-nums}.stat-line small{font-size:11px}.split{display:grid;gap:0}.allocation{display:flex;flex-direction:column;align-items:center;gap:24px}.donut{height:190px;width:190px;border-radius:50%;display:grid;place-items:center;background:#e5ece7;flex-shrink:0}.donut-center{width:137px;height:137px;background:white;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column}.donut-center strong{font-size:21px;font-variant-numeric:tabular-nums;margin-top:4px}.legend{width:100%;display:grid;gap:3px}.legend-row{border:0;border-radius:5px;background:transparent;display:flex;align-items:center;gap:10px;padding:10px 3px;font-size:13px;min-height:42px;text-align:left}.legend-row i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-row span{flex:1}.legend-row b{font-weight:500;font-variant-numeric:tabular-nums}.bar-row{display:grid;grid-template-columns:85px 1fr 82px;gap:10px;align-items:center;border:0;background:none;width:100%;padding:11px 0;text-align:left;font-size:12px;font-weight:400}.bar-track{height:7px;border-radius:3px;background:#edf2ee;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--green);border-radius:3px;min-width:1px}.bar-row b{text-align:right;font-weight:550;font-variant-numeric:tabular-nums}.note{color:var(--muted);font-size:12px;line-height:1.9}.note strong{color:#4b6554}.notice{background:#eef4f0;border-radius:7px;padding:14px 15px;font-size:13px;color:#536d5b;line-height:1.8;margin:16px 0}.warning{background:#fff7e8;color:#836028}.error{background:#fff0ee;border:1px solid #eccbc7;color:#923e33;padding:13px 15px;border-radius:7px;margin-bottom:18px;font-size:13px;overflow-wrap:anywhere}.success{background:#eaf4ed;border:1px solid #cce0d1;color:#2a6641;padding:13px 15px;border-radius:7px;margin-bottom:18px;font-size:13px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 20px}.filters .search{grid-column:1/-1}.filters input,.filters select{font-size:14px}.holding{padding:17px 0;border-bottom:1px solid var(--line)}.holding:last-child{border:0;padding-bottom:0}.holding-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.holding h3{font-size:14px;line-height:1.7;margin-bottom:4px;overflow-wrap:anywhere}.holding .amount{white-space:nowrap;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.holding-bottom{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:13px}.holding-bottom select{font-size:12px;min-height:40px;max-width:160px;padding:8px}.holding small{font-size:11px}.empty{text-align:center;padding:33px 12px;color:var(--muted);font-size:13px}.empty h3{color:#4f6b58}.form-grid{display:grid;gap:16px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.actions button{flex:1;min-width:120px}.check{display:flex;flex-direction:row;gap:11px;align-items:flex-start;line-height:1.8;margin:18px 0;font-size:13px;color:#4f6858}.check input{margin:2px 0 0}.upload-guide{padding:0;margin:0 0 17px;list-style:none;counter-reset:step}.upload-guide li{display:flex;align-items:flex-start;gap:10px;margin:12px 0;color:#6b7c70;font-size:12px;line-height:1.8}.upload-guide li:before{counter-increment:step;content:counter(step);width:22px;height:22px;background:#eaf1ec;color:var(--green);border-radius:50%;text-align:center;line-height:22px;flex-shrink:0}.redactor{margin-top:19px}.redactor-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.redactor-head h3{margin:0}.canvas-frame{border:1px solid var(--line);background:#e7ece8;padding:8px;border-radius:7px;overflow:hidden}.canvas-frame canvas{display:block;max-width:100%;height:auto;margin:auto;touch-action:none;cursor:crosshair}.redactor .actions button{font-size:12px;min-width:80px;padding:9px}.final-preview{display:block;max-width:100%;height:auto;border:1px solid var(--line);margin-top:14px;border-radius:5px}.preview-caption{color:#35694c;font-size:12px;margin:10px 0}.batch-list{display:grid;gap:0}.batch-item,.version{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;padding:17px 0;text-align:left;font-size:13px}.batch-item:last-child,.version:last-child{border:0}.batch-item small,.version small{display:block;font-size:11px;font-weight:400;margin-top:3px}.batch-item>span:last-child{color:#6d8776;white-space:nowrap;font-size:12px}.version strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:15px}.version.selected{background:#f0f5f1;padding-left:10px;padding-right:10px;border-radius:6px}.draft-row{border:1px solid var(--line);border-radius:8px;padding:17px 14px;margin:14px 0;background:#fbfdfb}.draft-row .row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.draft-row h3{font-size:13px;margin:0}.draft-row .row-head button{min-height:36px;font-size:12px;padding:6px 10px}.draft-row label{margin-top:12px}.row-pair{display:grid;grid-template-columns:1fr;gap:0}.review-source{border-top:1px solid var(--line);padding-top:20px;margin-top:23px}.review-source img{display:block;max-width:100%;height:auto;margin-top:15px;border:1px solid var(--line);border-radius:6px}.image-error{font-size:12px;color:var(--danger)}.image-caption{font-size:12px;color:var(--muted);margin-top:10px}.reconcile{background:#eef4f0;border-radius:7px;padding:14px;margin:18px 0;font-size:13px}.reconcile>div{display:flex;justify-content:space-between;gap:12px;margin:6px 0}.reconcile strong{font-variant-numeric:tabular-nums}.confirmation{border-top:1px solid var(--line);margin-top:25px;padding-top:22px}.confirmation .primary{width:100%}.history-detail .holding-bottom{margin-top:7px}.history-total{font-size:30px;font-weight:550;margin:14px 0;display:block;font-variant-numeric:tabular-nums}.settings-form{max-width:510px;display:grid;gap:18px}footer{font-size:11px;line-height:1.9;color:#8a998e;margin:25px 3px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.busy{position:fixed;top:0;left:0;right:0;height:3px;background:var(--green);z-index:30}.busy:after{content:"";position:absolute;height:3px;left:0;width:35%;background:#b9d4c2;animation:loading 1s infinite alternate ease-in-out}@keyframes loading{to{left:65%}}@media(min-width:650px){.main{padding:35px 30px 110px}.panel{padding:25px}.split{grid-template-columns:1fr 1fr;gap:20px}.form-grid,.row-pair{grid-template-columns:1fr 1fr;gap:15px}.allocation{flex-direction:row}.donut{width:170px;height:170px}.donut-center{width:124px;height:124px}.topbar{padding:17px 30px}.tools{gap:10px}.tools button{padding:9px 12px;font-size:13px}.filters{grid-template-columns:minmax(200px,1fr) 180px 180px}.filters .search{grid-column:auto}.draft-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.review-source{border-top:0;border-left:1px solid var(--line);padding:0 0 0 24px;margin-top:14px}.redactor .canvas-frame{max-width:600px}.history-layout{display:grid;grid-template-columns:320px 1fr;gap:20px}.total{font-size:46px}.nav{max-width:560px;left:50%;transform:translateX(-50%);border:1px solid var(--line);border-bottom:0;border-radius:13px 13px 0 0;padding:8px}.hero{padding:30px}.stat-line{max-width:600px}.holding .amount{font-size:19px}}@media(min-width:1000px){.main{padding-top:43px}.topbar{padding-left:max(30px,calc((100vw - 1160px)/2));padding-right:max(30px,calc((100vw - 1160px)/2))}.split{grid-template-columns:1.12fr 1fr}.hero{margin-bottom:22px}.page-head{margin-bottom:27px}.donut{width:200px;height:200px}.donut-center{width:146px;height:146px}.holding-list{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.holding{min-width:0}.holding:last-child{border-bottom:1px solid var(--line);padding-bottom:17px}.history-detail .holding-list{display:block}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
