:root{font-family:-apple-system,BlinkMacSystemFont,'Noto Sans TC',sans-serif;color:#202a32;background:#f5f6f7;line-height:1.5;font-size:17px}*{box-sizing:border-box}body{margin:0;padding:20px}main{max-width:1100px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin:12px 0 24px}h1{margin:2px 0;font-size:1.7rem}h2{font-size:1.15rem;margin:0 0 12px}h3{font-size:1rem;margin:8px 0}small,.muted{color:#66717a}button,input,select,textarea{font:inherit;min-height:44px;border-radius:7px}button{padding:8px 14px;border:1px solid #8c272b;background:#982f33;color:white;font-weight:650;cursor:pointer}button.secondary{background:white;color:#35424c;border-color:#cbd2d8}button:disabled{opacity:.55;cursor:wait}input,select,textarea{padding:8px 10px;border:1px solid #bdc6cd;background:#fff;color:#202a32;max-width:100%;width:100%}input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:#982f33}label{display:block;font-weight:550;margin:8px 0}label input,label select{display:block;margin-top:5px}.box{background:white;border:1px solid #dce1e5;padding:20px;border-radius:10px;margin:16px 0}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.totals{padding:14px 0;color:#515d66;border-top:1px solid #dce1e5;margin-top:20px}.filters{display:flex;gap:12px;align-items:end}.search{flex:1}.filters>label:last-child{width:160px}details.record{border-bottom:1px solid #dce1e5;background:#fff}summary{cursor:pointer;padding:16px 12px;list-style:none}summary::-webkit-details-marker{display:none}.row{display:grid;grid-template-columns:76px minmax(130px,1fr) minmax(160px,2fr) 115px 110px 16px;gap:10px;align-items:center}.row .money{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.badge{font-size:.85rem;background:#f5ece1;color:#785323;padding:3px 8px;border-radius:5px;text-align:center}.badge.paid{background:#edf6f1;color:#226247}.record[open]>summary{background:#f7f3f0}.record .body{padding:8px 18px 22px;border-top:1px solid #e9edf0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.image-preview{max-width:100%;max-height:420px;object-fit:contain;display:block;margin:12px 0}.transaction{border-top:1px solid #dce1e5;padding:14px 0}.allocation{display:grid;grid-template-columns:24px 1fr 130px;gap:10px;align-items:center;border-bottom:1px solid #e8ecef;padding:10px 0}.allocation label{font-weight:400;margin:0}.allocation label small{display:block}#message{white-space:pre-line}#message.error{color:#af241c}#message:empty{display:none}footer{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:24px 0;font-size:.85rem}a{color:#7d272b}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #cda656;outline-offset:3px}[hidden]{display:none!important}.source{white-space:pre-wrap;overflow-wrap:anywhere}.warn{color:#9c3c16}.nowrap{white-space:nowrap}@media(max-width:680px){body{padding:12px}header{margin-bottom:16px}.toolbar button{font-size:.9rem;padding:8px 10px}.row{grid-template-columns:55px 1fr 95px 18px;gap:6px}.row .item{grid-column:2;grid-row:2;font-size:.85rem;color:#69737c}.row .money{grid-column:3;grid-row:1}.row .badge{grid-column:3;grid-row:2;font-size:.75rem}.row .arrow{grid-column:4;grid-row:1}.grid{grid-template-columns:1fr}.allocation{grid-template-columns:24px 1fr 95px}.box{padding:14px}summary{padding:12px 8px}.filters{gap:8px}.filters>label:last-child{width:115px}.record .body{padding:8px 12px 18px}.totals{font-size:.9rem}}

.batch-row{display:block;padding:12px;border-bottom:1px solid #ddd}.batch-row input{width:auto;min-height:0;margin-right:10px}.batch-row small{display:block;color:#686056;margin:4px 0}

.table-scroll{overflow-x:auto;margin:12px 0}.ledger-table{border-collapse:collapse;width:100%;background:#fff}.ledger-table th,.ledger-table td{border-bottom:1px solid #dce1e5;padding:12px;text-align:left;vertical-align:top}.ledger-table th{background:#f3f0ec;white-space:nowrap}.ledger-table .item-cell{white-space:pre-wrap;min-width:180px;overflow-wrap:anywhere}.ledger-table .amount-cell{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-table td:last-child .badge{display:inline-block;margin-bottom:6px}.ledger-table td:last-child button{display:block;margin-top:6px}.ledger-table>tbody>tr>td[colspan]{background:#faf9f7;padding:16px}.filters{flex-wrap:wrap}#kind-filter-label{width:150px}#list-paste{min-height:140px}textarea{resize:vertical}@media(max-width:680px){.ledger-table{min-width:760px}.ledger-table th,.ledger-table td{padding:10px}.table-scroll{max-width:100%}}

.bank-review{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);gap:16px;align-items:start}.bank-original{position:sticky;top:12px;max-height:75vh;overflow:auto}.bank-original img{display:block;width:100%;height:auto}.bank-result-table{width:100%;border-collapse:collapse;background:#fff;font-size:.88rem}.bank-result-table th,.bank-result-table td{padding:9px 6px;border-bottom:1px solid #dce1e5;text-align:left;vertical-align:top}.bank-result-table th{white-space:nowrap;background:#f3f0ec}.bank-result-table .money{white-space:nowrap;text-align:right}.bank-result-table .match-note{min-width:130px;overflow-wrap:anywhere}.bank-result-table button{font-size:.85rem;padding:5px 8px}.upload-notice.error{color:#ad241c}.bank-card .table-scroll{margin-top:0}.claim-quantity{font-weight:650;white-space:nowrap}@media(max-width:850px){.bank-review{grid-template-columns:1fr}.bank-original{position:static;max-height:45vh}.bank-original img{max-height:45vh;object-fit:contain}.bank-result-table{min-width:540px}}
