:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#233c35;background:#f5f5ef;font-synthesis:none;--green:#215c4b;--muted:#77877f;--line:#dfe4db}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 15px;color:inherit;background:white}button:hover{border-color:var(--green);background:#f1f6f1}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--green);color:white;border-color:var(--green)}button.danger{color:#a14235}a{color:var(--green)}header{display:flex;align-items:center;justify-content:space-between;padding:23px 4vw;border-bottom:1px solid var(--line);background:#fafbf7}.brand{font-family:Georgia,"Songti SC",serif;font-size:27px;font-weight:600;letter-spacing:3px}.brand small{font-size:12px;letter-spacing:1px;color:var(--muted);display:block;margin-top:5px;font-family:inherit}nav{display:flex;gap:8px;align-items:center}nav button{border:0;background:none;color:var(--muted)}nav button.active{color:var(--green);background:#e8eee4}.wrap{max-width:1350px;margin:auto;padding:36px 4vw 70px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--muted);text-transform:uppercase}h1{font-family:Georgia,"Songti SC",serif;font-size:36px;font-weight:500;margin:12px 0}h2{font-size:20px;margin:0 0 18px;font-weight:600}h3{font-size:16px}p{line-height:1.8}.muted{color:var(--muted);font-size:13px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px;gap:20px}.actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.stat{border:1px solid var(--line);border-radius:14px;background:#fcfdf9;padding:22px}.stat:first-child{background:var(--green);color:#fff;border-color:var(--green)}.stat span{font-size:12px;opacity:.75}.stat strong{display:block;font-family:Georgia,serif;font-size:31px;font-weight:500;margin-top:13px;font-variant-numeric:tabular-nums}.panel{background:#fcfdf9;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:20px}.filters{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.filters input{flex:1;min-width:180px}.filters select{width:auto;min-width:120px}label{display:block;font-size:12px;margin-bottom:14px;color:#5c7067}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #d6ddd3;border-radius:8px;padding:11px 12px;background:white;color:#233c35;outline:none}input:focus,select:focus,textarea:focus{border-color:#42785f;box-shadow:0 0 0 3px #e8f0e3}textarea{min-height:80px;resize:vertical}input[type=checkbox]{display:inline-block;width:auto;margin:0 8px 0 0}input[type=file]{font-size:12px}.check{display:flex;align-items:center;padding:8px 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:11px;letter-spacing:1px;color:var(--muted);font-weight:500;padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:18px 12px;border-bottom:1px solid #edf0e8;font-size:13px}tbody tr{cursor:pointer}tbody tr:hover{background:#f3f6ec}td .sub{color:var(--muted);font-size:11px;margin-top:5px}.amount{font-variant-numeric:tabular-nums;font-weight:600}.badge{font-size:11px;border-radius:5px;padding:5px 8px;background:#f5ecd4;color:#8e6928;display:inline-block}.badge.confirmed{background:#e2eddf;color:#356347}.badge.void{background:#eceeeb;color:#7c877f}.empty{text-align:center;padding:65px 20px}.empty .symbol{font-family:Georgia;font-size:46px;color:#b6c6ad}.empty p{color:var(--muted);font-size:13px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.full{grid-column:1/-1}.notice{padding:13px 17px;border-radius:9px;font-size:13px;line-height:1.7;background:#eff3e7;color:#60714c;margin-bottom:20px}.warning{background:#fff2d7;color:#8e6928}.login{max-width:450px;margin:9vh auto;padding:35px}.login h1{font-size:30px}.login button{width:100%;margin-top:10px}.login .brand{margin-bottom:35px}dialog{border:1px solid var(--line);border-radius:17px;padding:0;max-width:820px;width:calc(100% - 30px);max-height:90vh;color:inherit;background:#fcfdf9}dialog::backdrop{background:#173d3277;backdrop-filter:blur(3px)}#modal-body{padding:28px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{margin:0}.receipts{display:flex;gap:12px;overflow-x:auto;margin-bottom:20px}.receipt{position:relative;flex:0 0 150px}.receipt img{width:150px;height:170px;object-fit:contain;background:#eef0e7;border:1px solid var(--line);border-radius:8px}.receipt span{display:block;font-size:11px;color:#a66a21}.activity{border-top:1px solid var(--line);padding:12px 0;font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#1e493e;color:white;border-radius:10px;box-shadow:0 5px 24px #102b2a33;display:none;z-index:9;max-width:90vw;font-size:13px}.project{padding:23px;border:1px solid var(--line);border-radius:12px;background:#fcfdf9}.project h3{margin:0 0 8px}.project .badge{margin:4px}.steps{padding-left:19px;color:var(--muted);font-size:13px;line-height:2}.status-line{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.line-item{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px}code{font-family:ui-monospace,monospace;background:#eef2e8;padding:4px 7px;border-radius:4px;word-break:break-all}.footer{margin-top:22px;font-size:11px;color:var(--muted)}@media(max-width:760px){header{padding:18px;align-items:flex-start}.brand{font-size:22px}nav{gap:0;flex-wrap:wrap;justify-content:flex-end;max-width:230px}nav button{padding:8px;font-size:12px}.wrap{padding:25px 18px}.heading{align-items:flex-start;flex-direction:column}h1{font-size:30px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:17px}.stat strong{font-size:26px}.grid2{grid-template-columns:1fr}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.login{margin:5vh 16px}.filters select{flex:1}.full{grid-column:auto}#modal-body{padding:20px}}

.fields{border:0;padding:0;min-width:0}.separated{margin-top:24px}

.test-area{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.test-result{white-space:pre-line;overflow-wrap:anywhere;font-size:13px;line-height:1.85;padding:14px 16px;margin-top:14px;border-radius:9px;border:1px solid var(--line);max-height:360px;overflow:auto}
.test-result.working{background:#f4f1e7;color:#746342}.test-result.success{background:#edf5ea;color:#315e43}.test-result.error{background:#fff1e9;border-color:#eed4c6;color:#964c35}
.test-area input[type=file]{margin-bottom:12px}#settings hr{border:0;border-top:1px solid var(--line);margin:22px 0}
