:root{--paper:#f4f5f0;--surface:#fff;--surface-2:#eceee7;--ink:#1c2430;--ink-soft:#5c6672;--ink-faint:#8b93a0;--line:#dbded6;--line-strong:#c3c8be;--accent:#24506b;--accent-ink:#fff;--accent-soft:#e1eaee;--ok:#1e7a4c;--ok-soft:#dff1e6;--warn:#93650e;--warn-soft:#f6ead2;--bad:#a23b32;--bad-soft:#f5e2df;--shadow:0 1px 2px #1c24300f, 0 8px 24px -12px #1c24302e;--radius:10px;--font-display:"Fraunces", Georgia, serif;--font-body:"IBM Plex Sans", -apple-system, Segoe UI, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#12161b;--surface:#1a2027;--surface-2:#212832;--ink:#edefea;--ink-soft:#a2abb5;--ink-faint:#717b87;--line:#2a323b;--line-strong:#394452;--accent:#7fb2cf;--accent-ink:#0d1a22;--accent-soft:#1d2e37;--ok:#5fc08a;--ok-soft:#193226;--warn:#e0b45a;--warn-soft:#332711;--bad:#e38b7f;--bad-soft:#3a211d;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #00000080}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:600}a{color:var(--accent)}button{font-family:var(--font-body)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.shell{max-width:1040px;margin:0 auto;padding-block:0 48px;padding-inline:20px}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:28px;padding-block:22px 18px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand .mark{background:var(--accent);min-width:30px;height:30px;color:var(--accent-ink);font-family:var(--font-display);border-radius:7px;flex:none;justify-content:center;align-items:center;padding-inline:5px;font-size:13px;font-weight:700;display:inline-flex}.brand h1{letter-spacing:-.01em;font-size:22px}.brand .tag{color:var(--ink-faint);letter-spacing:.03em;text-transform:uppercase;font-size:12.5px}.topbar-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.field-inline{align-items:center;gap:6px;display:flex}.field-inline label{color:var(--ink-soft);white-space:nowrap;font-size:12px}select,input[type=text],input[type=date],input[type=number]{font-family:var(--font-body);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;padding:7px 10px;font-size:14px}select:focus,input:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 16px;font-size:14px;font-weight:500;transition:filter .12s,transform 50ms}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.ghost{color:var(--accent);background:0 0;border-color:#0000;padding-inline:6px}button.sm{border-radius:6px;padding:5px 10px;font-size:12.5px}button.danger{color:var(--bad);border-color:var(--bad-soft)}.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:22px 24px}.step-head{align-items:center;gap:12px;margin-bottom:4px;display:flex}.step-num{background:var(--surface-2);width:26px;height:26px;color:var(--ink-soft);font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.step.done .step-num{background:var(--ok-soft);color:var(--ok)}.step-head h2{font-size:18px}.step-sub{color:var(--ink-soft);max-width:66ch;margin:4px 0 16px 38px;font-size:13.5px}.grid-uploads{grid-template-columns:repeat(3,1fr);gap:14px;margin-left:38px;display:grid}@media (width<=760px){.grid-uploads{grid-template-columns:1fr}}.upload-card{border:1.5px dashed var(--line-strong);text-align:left;background:var(--paper);border-radius:9px;padding:16px;transition:border-color .12s,background-color .12s}.upload-card h3{font-family:var(--font-body);margin-bottom:2px;font-size:13.5px;font-weight:600}.upload-card .req{color:var(--warn);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:600}.upload-card .opt{color:var(--ink-faint);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:600}.upload-card p{color:var(--ink-soft);margin:4px 0 10px;font-size:12.5px}.upload-card input[type=file]{width:100%;font-size:12.5px}.upload-card.dragover{border-color:var(--accent);background:var(--accent-soft)}.upload-card .drop-hint{color:var(--ink-faint);text-align:center;margin-top:6px;font-size:11px}.file-chip{background:var(--surface);border:1px solid var(--line);border-radius:7px;align-items:center;gap:8px;margin-top:8px;padding:6px 9px;font-size:12.5px;display:flex}.file-chip .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-chip .x{cursor:pointer;color:var(--ink-faint);font-weight:700}.summary-box{background:var(--accent-soft);border-radius:9px;grid-template-columns:repeat(4,auto);gap:4px 28px;margin:16px 0 0 38px;padding:14px 16px;font-size:13px;display:grid}@media (width<=760px){.summary-box{grid-template-columns:1fr 1fr}}.summary-box .n{font-family:var(--font-mono);font-size:20px;font-weight:600;display:block}.summary-box .l{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px}.bankfile-row{border:1px solid var(--line);border-radius:9px;flex-direction:column;gap:8px;margin-top:10px;margin-left:38px;padding:12px 14px;display:flex}.bankfile-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bankfile-head .fname{font-size:13.5px;font-weight:600}.bankfile-head .badge{background:var(--surface-2);color:var(--ink-soft);border-radius:99px;padding:2px 8px;font-size:11px}.bankfile-head .badge.ok{background:var(--ok-soft);color:var(--ok)}.bankfile-head .badge.bad{background:var(--bad-soft);color:var(--bad)}.map-row{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;display:flex}.map-row label{align-items:center;gap:5px;display:flex}.map-row input[type=number],.map-row select{width:100px}.map-row select.landlord-select{width:220px}.actions-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;margin-left:38px;display:flex}.hint{color:var(--ink-faint);font-size:12.5px}.progress-wrap{flex-direction:column;gap:6px;margin-top:14px;margin-left:38px;display:flex}.progress-bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .4s}.progress-log{font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:8px;max-height:160px;margin-top:10px;margin-left:38px;padding:8px 10px;font-size:12px;overflow:auto}.progress-log div{padding:1px 0}.review-groups{flex-direction:column;gap:22px;margin-left:38px;display:flex}.rgroup h3{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:12.5px;font-family:var(--font-body);align-items:center;gap:8px;margin-bottom:8px;font-weight:600;display:flex}.rgroup h3 .count{font-family:var(--font-mono);background:var(--surface-2);border-radius:99px;padding:1px 8px;font-size:11px}.rcard{border:1px solid var(--line);background:var(--paper);border-radius:9px;grid-template-columns:auto 1fr;align-items:start;gap:6px 12px;margin-bottom:8px;padding:12px 14px;display:grid}.rcard.excluded{opacity:.7}.rcard input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin-top:3px}.rcard .fields{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.rcard .field{flex-direction:column;gap:2px;min-width:110px;display:flex}.rcard .field label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px}.rcard .field .val{font-family:var(--font-mono);font-size:13px}.rcard .field select,.rcard .field input{padding:5px 7px;font-size:12.5px}.rcard .rationale{color:var(--ink-soft);border-top:1px dashed var(--line);grid-column:1/-1;margin-top:2px;padding-top:8px;font-size:12px}.rcard .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.rcard .amt.neg{color:var(--bad)}.rcard .amt.pos{color:var(--ok)}.confidence{font-family:var(--font-mono);white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:11px}.confidence.high{background:var(--ok-soft);color:var(--ok)}.confidence.med{background:var(--warn-soft);color:var(--warn)}.confidence.low{background:var(--bad-soft);color:var(--bad)}.history-list{flex-direction:column;gap:6px;margin-left:38px;display:flex}.hrow-wrap{border:1px solid var(--line);border-radius:7px;padding:8px 10px}.hrow{grid-template-columns:160px 1fr auto auto;align-items:center;gap:12px;font-size:12.5px;display:grid}.hrow .date{font-family:var(--font-mono);color:var(--ink-soft)}.hrow .who{color:var(--ink-faint)}.hrow-files{border-top:1px dashed var(--line);flex-wrap:wrap;gap:4px;margin-top:6px;padding-top:6px;display:flex}.hrow-files button{padding:3px 8px;font-size:11px}.status-banner{border-radius:8px;align-items:center;gap:8px;margin:0 0 18px;padding:10px 14px;font-size:13px;display:flex}.status-banner.warn{background:var(--warn-soft);color:var(--warn)}.status-banner.ok{background:var(--ok-soft);color:var(--ok)}.status-banner.bad{background:var(--bad-soft);color:var(--bad)}footer{max-width:1040px;color:var(--ink-faint);text-align:center;margin:30px auto 0;font-size:12px}.modal-backdrop{z-index:100;background:#14181e73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;width:100%;max-width:360px;padding:20px 22px;display:flex}.modal-box h3{margin-bottom:2px;font-size:16px}.modal-box label{color:var(--ink-soft);font-size:12.5px}.modal-box input[type=text]{width:100%}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}
