:root{font-family:Inter,"Noto Sans CJK SC","Microsoft YaHei",system-ui,sans-serif;color:#223a31;background:#f5f6f3;font-size:15px;--accent:#245c4b;--line:#dce3dc;--muted:#68796f;--radius:12px;line-height:1.6}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer;line-height:1.4}button:hover{background:#edf2ed}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#1b483a}.quiet{background:transparent}.small-button{font-size:12px;padding:8px 10px;flex-shrink:0}.danger-link{color:#9a3e28}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.7}.eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--accent);margin:0 0 6px}.full{width:100%}a{color:var(--accent);text-underline-offset:4px}header{min-height:80px;background:#fff;border-bottom:1px solid var(--line);padding:14px 4vw;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-size:26px;font-weight:700;text-decoration:none;white-space:nowrap}.brand span{font-size:13px;font-weight:400;color:var(--muted);margin-left:18px}#identity{display:flex;align-items:center;gap:14px;font-size:13px}#identity span{overflow-wrap:anywhere}.context-bar{display:flex;justify-content:space-between;gap:12px;padding:8px 4vw;background:#eaf0e9;color:#526b5c;font-size:11px}main{max-width:1560px;margin:0 auto;padding:30px 4vw;min-height:76vh}h1{font-size:30px;font-weight:600;letter-spacing:-.6px;margin:4px 0 12px;line-height:1.4;overflow-wrap:anywhere}h2{font-size:19px;margin:0 0 8px;font-weight:600}h3{font-size:15px;margin:0;font-weight:600}p{margin:10px 0 14px;overflow-wrap:anywhere}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0}.compact{padding:15px 20px;margin-bottom:24px}.compact[open]{padding-bottom:20px}.auth-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:8vw;align-items:center;max-width:1060px;margin:42px auto}.auth-intro h1{font-size:39px;line-height:1.5;margin:16px 0 24px}.auth-intro p{color:#597064;line-height:1.9}.intro-rule{width:52px;height:3px;background:#698e74;margin:32px 0}.auth-panel{padding:28px 32px}.auth-tabs,.workspace-nav{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:25px}.auth-tabs button,.workspace-nav button{border:0;border-radius:0;padding:10px 2px;background:transparent;color:var(--muted);border-bottom:2px solid transparent}.auth-tabs button.selected,.workspace-nav button.selected{color:var(--accent);border-color:var(--accent);font-weight:600}.status-page{max-width:660px;margin:65px auto;padding:40px}.status-page h1{margin-top:18px}label{display:block;font-size:12px;line-height:1.8}input,select,textarea{display:block;width:100%;border:1px solid #cbd6cd;background:#fff;border-radius:7px;padding:10px 11px;margin:6px 0 14px;min-height:44px;min-width:0;max-width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b6d2be;outline-offset:2px}input[readonly]{background:#f6f7f4}input[type=checkbox]{display:inline-block;width:18px;height:18px;min-height:0;vertical-align:middle;margin:0 10px 0 0;flex-shrink:0;accent-color:var(--accent)}.checkbox-label{display:flex;align-items:center;gap:4px;margin:12px 0;overflow-wrap:anywhere}.form-status{font-size:12px;min-height:20px;color:#5e7767;margin:12px 0 0}.error{color:#a3442c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0 24px}.page-heading p{margin:0}.summary-strip{font-size:13px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px;color:var(--muted)}#create-box{margin-bottom:24px;max-width:760px}.filters{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr 1fr auto;gap:12px;align-items:end;margin:12px 0 20px}.filters input,.filters select{margin-bottom:0}.filters button{margin-bottom:0}.claim-list{display:grid;gap:10px}.claim-card{display:flex;align-items:center;gap:22px;width:100%;padding:22px 24px;border-radius:10px;text-align:left}.claim-card .claim-info{flex:1;min-width:0}.claim-card strong{display:block;overflow-wrap:anywhere;margin-bottom:5px;font-size:16px}.claim-card .money{font-size:21px;white-space:nowrap;font-variant-numeric:tabular-nums}.badge{display:inline-block;font-size:11px;padding:5px 9px;background:#edf2ed;color:#3d6752;border-radius:5px;line-height:1.6}.detail-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0}.detail-heading h1{font-size:26px}#version{font-size:12px;margin-left:12px;display:inline-block}.save-indicator{font-size:12px;color:var(--muted);flex-shrink:0}.notice{padding:12px 14px;background:#eef3ee;color:#47614f;border:1px solid #dce6db;border-radius:7px;line-height:1.7;overflow-wrap:anywhere;margin-bottom:16px}.notice p:last-child{margin-bottom:0}.notice.warning{background:#fff6e9;color:#845327;border-color:#ecd5b2}.global-message{margin-top:24px}.review-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1.12fr) minmax(0,.88fr);gap:18px;align-items:start}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h2{margin:0;font-size:18px}.tabs{display:none}.upload{border:1px dashed #a5bca9;border-radius:8px;padding:12px;background:#f7f9f5;font-size:13px}.upload input{font-size:12px;padding:5px 0;border:0;background:transparent;margin-bottom:0}.upload-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;border-bottom:1px solid var(--line);padding:10px 0}.upload-item strong{font-size:12px;overflow-wrap:anywhere}.upload-item p,.upload-item progress{grid-column:1/-1;margin:0}.upload-item progress{width:100%;height:5px}.viewer-tools{display:flex;align-items:center;gap:6px;margin:18px 0 10px}.viewer-tools select{flex:1;margin:0;font-size:12px;width:0;min-width:0}.viewer-tools button{padding:8px 12px}.viewer-tools span{min-width:36px;text-align:center}.image-canvas{width:100%;max-height:550px;overflow:auto;background:#f0f1ed;border:1px solid var(--line);border-radius:7px}.image-canvas img{height:auto;display:block;transform-origin:top left}.page-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.page-caption p{min-width:0;overflow-wrap:anywhere}.page-caption a{flex-shrink:0}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.material-summary{padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.material-summary p{margin:4px 0}.material-summary button{margin-top:8px}summary{font-size:13px;cursor:pointer;padding:6px 0;min-height:36px}details>form{padding-top:16px}#material-editor{margin-top:18px}.expense{border-bottom:1px solid var(--line);padding:0 0 24px;margin-bottom:24px}.expense>.badge{margin-bottom:14px}.expense .source{padding:10px 12px;background:#f5f7f2;border-radius:7px;line-height:1.7}.expense-amount{font-size:24px;font-variant-numeric:tabular-nums}.source-button{display:block;width:100%;text-align:left;font-size:12px;margin:6px 0;overflow-wrap:anywhere}.allocation{padding:8px 0;border-bottom:1px solid #edf0e9}.allocation>label:first-child{display:flex;align-items:center;margin:4px 0;line-height:1.6}.allocation input[type=text]{margin-bottom:6px}fieldset{border:1px solid var(--line);border-radius:7px;padding:10px 12px;margin:14px 0;min-width:0}legend{font-size:12px;padding:0 5px}.total{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.total strong{font-size:24px;color:var(--accent);white-space:nowrap}.amount-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #edf0e9;font-size:13px}.amount-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}#actions{margin:24px 0}#actions form>button{display:block;width:100%;margin:9px 0}#actions h3{margin-bottom:14px}.subheading{margin:26px 0 10px}.snapshot{padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}.snapshot p{margin:6px 0}.snapshot summary{font-size:12px}.text-link{display:inline-block;font-size:12px;margin-top:16px}.history-details{margin-top:26px}.timeline{list-style:none;padding:0;margin-top:20px}.timeline li{position:relative;border-left:2px solid #dce6dd;padding:0 0 20px 16px;line-height:1.6;font-size:12px;overflow-wrap:anywhere}.timeline p{margin:6px 0}.timeline li:before{content:"";height:8px;width:8px;border-radius:50%;background:#73937b;position:absolute;left:-5px;top:6px}.timeline time{display:block;color:var(--muted);font-size:10px}.admin-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:24px;margin:28px 0}.admin-side{display:grid;gap:24px;min-width:0}.account-row{padding:14px 0;border-bottom:1px solid var(--line)}.account-row summary strong,.account-row summary span{display:block}.account-row summary span{margin:5px 0}.account-row[open]{padding-bottom:25px}.reset-issue{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.setting-record{padding:14px 0;border-top:1px solid var(--line);margin-top:14px}.setting-record p{margin:0 0 8px}.secret-output input{font-family:monospace;letter-spacing:.5px}.secret-output{margin-top:20px}.empty{padding:45px 18px;text-align:center;color:var(--muted)}footer{padding:24px 4vw;color:#788b7d;text-align:center;font-size:11px}#load-more{display:block;margin:20px auto}[hidden]{display:none!important}
@media(max-width:1150px){.review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#review-pane{grid-column:1/-1}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-layout{gap:5vw}.auth-intro h1{font-size:32px}.panel{padding:21px}}
@media(max-width:800px){header{min-height:68px;padding:12px 20px}.brand{font-size:23px}.brand span{display:none}.context-bar{padding:8px 20px;font-size:10px;flex-wrap:wrap;gap:4px 12px}main{padding:20px;min-height:75vh}.auth-layout{display:block;margin:20px auto;max-width:480px}.auth-intro{margin-bottom:24px}.auth-intro h1{font-size:28px;line-height:1.5;margin:8px 0 12px}.auth-intro>p:not(.eyebrow),.intro-rule{display:none}.auth-panel{padding:24px}.auth-tabs{gap:24px;margin-bottom:22px}.auth-tabs button{font-size:13px}.status-page{margin:32px auto;padding:26px}.status-page h1{font-size:25px}h1{font-size:26px}.page-heading{margin:22px 0;align-items:flex-start}.page-heading .primary{font-size:12px;padding:10px 12px;white-space:nowrap}.page-heading p{font-size:12px}.workspace-nav{margin-bottom:20px;font-size:13px}.summary-strip{font-size:12px;line-height:1.8}.filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filters button{align-self:end}.review-grid{display:block}.pane{display:none}.pane.active{display:block}.tabs{display:flex;gap:4px;margin:18px 0;background:#e9eee7;border-radius:9px;padding:4px;position:sticky;top:0;z-index:2}.tabs button{flex:1;background:transparent;border:0;font-size:13px}.tabs button.selected{background:#fff;font-weight:600}.panel{padding:20px}.compact{padding:12px 16px;margin-bottom:18px}.detail-heading{display:block;margin:22px 0 18px}.detail-heading h1{font-size:24px}#version{margin-left:8px;font-size:11px}.save-indicator{margin-top:12px;font-size:11px}.claim-card{padding:18px;gap:12px;flex-wrap:wrap}.claim-card .money{font-size:19px}.claim-card .claim-info{flex-basis:100%}.claim-card .badge{flex:1}.claim-card strong{font-size:15px}.total strong{font-size:22px}#identity{gap:8px;font-size:11px}#identity button{padding:8px 10px;flex-shrink:0}.form-grid{grid-template-columns:1fr;gap:0}.admin-grid{display:block;margin:22px 0}.admin-side{margin-top:20px;gap:20px}.image-canvas{max-height:60vh}.notice{font-size:12px}.section-heading h2{font-size:17px}.button-row button{flex:1;font-size:12px;white-space:nowrap}.source-button{min-height:44px}.auth-tabs button{flex:1}.auth-tabs{gap:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.expense-card-shell{border:1px solid var(--line);border-radius:9px;padding:14px 16px;margin-bottom:16px;background:#fafbf8}.expense-card>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;align-items:center}.expense-card>summary>strong{overflow-wrap:anywhere}.expense-card>summary .badge{justify-self:start}.expense-card>summary .draft-note{grid-column:1/-1;color:var(--muted)}.expense-card>summary .expense-amount{font-size:21px;white-space:nowrap}.expense-card[open]>summary{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.expense-card .expense{border-bottom:0;margin:0;padding:0}.expense-sources{margin-top:8px}.expense-sources>summary,.allocation-details>summary{color:var(--accent)}.allocation-details{margin:14px 0}.allocation-details fieldset{margin-top:4px}.expense-card-shell>p{margin-bottom:6px}#retained-drafts textarea{background:#fff;font-size:12px}

.recognition-panel,.recognition-summary{margin:16px 0}.recognition-task{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.recognition-task>span{flex:1;min-width:160px}.candidate-comparison{padding:16px;background:#fafbf9;border:1px solid #dce4da;border-radius:12px}.candidate-comparison fieldset{margin:14px 0}.field-evidence-box{position:absolute;border:3px solid #ca721f;background:#efb86220;pointer-events:none}.candidate-comparison button{min-height:44px}

.image-stage{position:relative;line-height:0;flex:none}.image-stage img{display:block}.material-region-box{position:absolute;border:2px solid #517d7655;pointer-events:none;line-height:1.3}.field-evidence-box{line-height:1.3}.region-label{display:inline-block;padding:3px 5px;background:#fffde8;color:#613b0d;font-size:12px}.selecting-region{cursor:crosshair;touch-action:none}.region-editor{margin:12px 0}.region-editor input{min-height:44px}

.issue-card{padding:12px;margin:12px 0;border:1px solid #dce1dd;border-radius:10px}.issue-card summary{font-weight:650;line-height:1.6;min-height:44px}.issue-card form{margin-top:12px}.related-record{padding:8px;background:#f5f7f5}#checks-panel{margin:20px 0}
.historical-ticket-evidence img{display:block;max-width:100%;max-height:55vh;object-fit:contain;margin:8px 0}.historical-ticket-evidence{overflow-wrap:anywhere;margin:8px 0}
.batch-confirmation{padding:14px;border:1px solid #cbdccf;border-radius:9px;background:#f7faf6;margin-bottom:20px;overflow-wrap:anywhere}.batch-expense{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.batch-expense>p{margin:6px 0}.batch-expense .checkbox-label{align-items:flex-start;margin:4px 0}.batch-expense .checkbox-label input{margin-top:4px}.batch-confirmation .expense-sources{margin:4px 0}.batch-confirmation .notice{padding:8px 10px}.batch-confirmation button{max-width:100%}

/* The same server totals feed these cards and the printed statement. */
.amount-overview{margin-bottom:14px}.report-metrics{display:flex;gap:48px;flex-wrap:wrap;margin:12px 0}.report-metrics>div{display:flex;flex-direction:column;gap:4px}.report-metrics span{font-size:12px;color:var(--muted,#60706b)}.report-metrics strong{font-size:26px;font-variant-numeric:tabular-nums;line-height:1.3}.missing-metric strong{color:#8e5436}.coverage-line{line-height:1.9}.category-totals{display:flex;flex-wrap:wrap;gap:10px 28px;padding:12px 0;border-top:1px solid #e1e7e2}.category-totals>div{display:flex;gap:12px;font-size:12px}.category-totals span{color:#60706b}.statement-links{display:flex;gap:12px 22px;flex-wrap:wrap;margin:10px 0}.invoice-coverage{border:1px solid #d8e2db;border-radius:8px;padding:12px;margin:12px 0}.invoice-coverage summary{cursor:pointer;font-weight:600}.invoice-coverage[open]>summary{margin-bottom:12px}.invoice-allocation{padding:8px 0;border-bottom:1px solid #e5ebe7}.invoice-allocation button{margin:0 0 12px}.invoice-coverage .form-grid{margin-top:12px}@media(max-width:600px){.report-metrics{gap:16px 24px}.report-metrics strong{font-size:23px}.category-totals{gap:8px 16px}.category-totals>div{gap:6px;font-size:11px}.statement-links{gap:10px 16px;font-size:12px}}
