:root{color:#0f1e33;font-synthesis:none;--navy:#012653;--navy-wash:#eef3f9;--amber-wash:#fff6e4;--secondary:#51637a;--tertiary:#637086;--border:#cbd5e1;--control-border:#637086;--rule:#e2e8f0;--base:#fff;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--control-border);background:var(--base);min-height:44px;color:var(--navy);cursor:pointer;text-align:center;overflow-wrap:anywhere;border-radius:6px;justify-content:center;align-items:center;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--navy-wash)}button:disabled,input:disabled,select:disabled{cursor:default;opacity:.65}button.primary,.button.primary{color:#fff;background:var(--navy);border-color:var(--navy)}button.primary:hover,.button.primary:hover{background:#001733}button[aria-pressed=true]{background:var(--navy-wash);border:2px solid var(--navy)}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{border:1px solid var(--control-border);width:100%;min-width:0;min-height:44px;color:inherit;background:#fff;border-radius:6px;padding:8px 12px}input[type=checkbox],input[type=radio]{width:22px;height:22px;accent-color:var(--navy);flex:none;margin:0}td:has(input[type=checkbox]){min-width:56px}td .check-label{justify-content:center}textarea{resize:vertical}a{color:var(--navy);text-underline-offset:3px;overflow-wrap:anywhere}td>a,.actions>a:not(.button){align-items:center;min-width:44px;min-height:44px;display:inline-flex}:focus-visible{outline-offset:3px;outline:3px solid #0b3d74}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(1.5rem,1.2rem + 1vw,1.8rem);line-height:1.2}h2{margin-bottom:12px;font-size:1.2rem;line-height:1.4}h3{margin-bottom:8px;font-size:1rem}p{margin-bottom:12px}small{color:var(--secondary);overflow-wrap:anywhere;font-size:.82rem;display:block}strong,dd,p,dt{overflow-wrap:anywhere}.muted{color:var(--secondary);font-size:.875rem}.field{flex-direction:column;gap:4px;min-width:0;margin-bottom:16px;display:flex}.field>span,.company-picker label{font-size:.875rem;font-weight:600}.field.full{grid-column:1/-1}fieldset{border:0;min-width:0;margin:0 0 16px;padding:0}legend{margin-bottom:12px;font-weight:700}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar{flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:24px;display:flex}.toolbar .field{flex:220px;margin-bottom:0}.page-header{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.page-header p{color:var(--secondary);margin-bottom:0}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.section-heading h2{margin-bottom:0}.app-shell{min-height:100dvh}.sidebar{border-bottom:1px solid var(--border);background:#fff;padding:16px}.sidebar-brand{justify-content:space-between;align-items:center;gap:16px;display:flex}.sidebar-brand img{width:144px;max-width:100%;display:block}.company-picker{margin-top:16px}.company-picker label{color:var(--secondary);margin-bottom:4px;display:block}.sidebar nav{margin-top:16px;display:none}.sidebar nav.open{gap:4px;display:grid}.sidebar nav a{border-radius:6px;align-items:center;min-height:44px;padding:8px 12px;font-size:.9rem;text-decoration:none;display:flex}.sidebar nav a.active{color:var(--navy);background:var(--navy-wash);border-left:3px solid var(--navy);font-weight:700}.sidebar-footer{display:none}.sidebar:has(nav.open) .sidebar-footer{border-top:1px solid var(--rule);gap:8px;margin-top:24px;padding-top:16px;display:grid}.workspace{min-width:0;padding:24px 16px}.workspace:focus{outline:none}.skip-link{z-index:10;background:#fff;padding:16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:8px}.brand-logo{width:184px;max-width:100%;margin-bottom:32px}.sign-in{background:#fff;min-height:100dvh;display:grid}.sign-in-intro{background:var(--navy-wash);border-top:4px solid #ffab14;padding:32px 24px}.sign-in-intro h1{color:var(--navy);margin-bottom:16px;font-size:clamp(2rem,1.5rem + 2vw,3.2rem)}.sign-in-intro>p{max-width:30rem;color:var(--secondary)}.ledger-line{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:8px;max-width:32rem;padding:16px 0;display:flex}.ledger-line span:last-child{color:var(--secondary);font-size:.875rem}.sign-in-form{width:100%;max-width:480px;margin:auto;padding:32px 24px}.sign-in-form form>button{width:100%}.centered,.company-chooser{max-width:680px;margin:8vh auto;padding:32px 24px}.company-list{gap:12px;margin:24px 0;display:grid}.company-list button{text-align:left;justify-content:space-between;gap:16px;padding:16px}.company-list span{color:var(--secondary);font-size:.8rem}.journal-chooser,.settings-columns,.template-list{gap:24px;display:grid}.journal-panel,.panel{border:1px solid var(--rule);border-radius:var(--radius);background:#fff;min-width:0;padding:24px}.journal-panel{border-top:3px solid var(--navy)}.section-label{color:var(--secondary);margin-bottom:8px;font-size:.875rem;display:block}.summary{flex-wrap:wrap;gap:24px;margin:16px 0 24px;display:flex}.summary div{min-width:64px}.summary dt{color:var(--secondary);text-transform:capitalize;font-size:.8rem}.summary dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:1.5rem;font-weight:700}.summary-strip{border-block:1px solid var(--rule);background:#fff;padding:16px 24px}.summary-strip div{flex:90px}.workflow-note{border-left:3px solid #ffab14;max-width:720px;margin-top:32px;padding-left:24px}.selection-bar{background:var(--navy-wash);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;padding:16px;display:flex}.selection-bar>.actions{width:100%}.table-wrap{border:1px solid var(--rule);border-radius:var(--radius);background:#fff;width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}th{color:var(--secondary);white-space:nowrap;background:#f1f4f8;padding:12px 16px;font-size:.8rem}td{border-top:1px solid var(--rule);vertical-align:middle;min-width:100px;padding:12px 16px}td:first-child:has(input){min-width:44px;padding:4px}td small{margin-top:4px}tr.selected{background:var(--navy-wash)}.amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.status{color:var(--secondary);text-transform:capitalize;background:#f1f4f8;border-radius:6px;padding:4px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.status-ready,.status-approved,.status-completed{background:var(--navy-wash);color:var(--navy)}.status-needs_review,.status-possible_duplicate{background:var(--amber-wash);color:#704400}.status-failed,.status-ocr_failed,.status-duplicate,.status-excluded{color:#9d2c0a;background:#fff0ea}.notice{background:var(--navy-wash);border-left:3px solid var(--navy);overflow-wrap:anywhere;border-radius:0 6px 6px 0;margin:16px 0;padding:16px}.notice p:last-child{margin-bottom:0}.notice.error{background:#fff0ea;border-color:#9d2c0a}.notice.warning{background:var(--amber-wash);border-color:#704400}.error-text{color:#9d2c0a}.warning-text{color:#704400}.empty{border:1px dashed var(--control-border);border-radius:var(--radius);background:#fff;margin:24px 0;padding:32px 24px}.loading{color:var(--secondary);padding:16px}dialog{color:inherit;border:1px solid var(--border);background:#fff;border-radius:14px;width:min(740px,100% - 24px);max-height:calc(100dvh - 32px);padding:24px;box-shadow:0 16px 48px #01265326}dialog::backdrop{background:#0f1e3380}.dialog-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.dialog-header h2{margin:0}.column-groups,.form-grid{gap:16px;display:grid}.form-grid .field{margin-bottom:0}.check-label,.radio-option{cursor:pointer;align-items:center;gap:12px;min-width:44px;min-height:44px;padding:8px 4px;display:flex}.check-label small,.radio-option small{margin-top:4px}.radio-option{border-bottom:1px solid var(--rule)}.file-picker{border:1px dashed var(--control-border);border-radius:6px;flex-direction:column;gap:8px;min-width:0;padding:16px;font-weight:600;display:flex}.file-picker input{max-width:100%;min-height:44px;font-size:.85rem}.upload-options{gap:16px;display:grid}.upload-list{padding:0;list-style:none}.upload-list li{border-bottom:1px solid var(--rule);overflow-wrap:anywhere;padding:12px 0}.upload-list li>span{color:var(--secondary);margin-left:12px}.history-list article,.batch-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;display:flex}.batch-row h2,.batch-row p{margin-bottom:4px}.batch-row p{color:var(--secondary);font-size:.85rem}.batch-row .summary{margin:0}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:24px;display:flex}.document-row{border-bottom:1px solid var(--rule);background:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:16px;display:flex}.document-identity{flex:180px;min-width:0}.review-layout{gap:24px;display:grid}.evidence-panel{border:1px solid var(--rule);border-radius:var(--radius);background:#fff;align-self:start;min-width:0;padding:16px}.receipt-image{object-fit:contain;background:#0f1e33;width:100%;max-height:65dvh}.enlarged-receipt{width:100%}details{margin:16px 0}summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1f4f8;max-height:400px;padding:12px;font-size:.8rem;overflow:auto}.evidence-item{border-top:1px solid var(--rule);padding:12px 0}.review-details{min-width:0}.review-status{border-bottom:2px solid var(--navy);flex-wrap:wrap;align-items:center;gap:12px;padding-bottom:16px;display:flex}.review-status>strong{font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.5rem}.review-status .muted{width:100%}.review-section{border-bottom:1px solid var(--border);margin:24px 0;padding-bottom:24px}.facts-list{margin:16px 0}.facts-list>div{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:8px 0;display:grid}.facts-list dt{color:var(--secondary);text-transform:capitalize;font-size:.875rem}.facts-list dd{white-space:pre-wrap;font-variant-numeric:tabular-nums;margin:0}.facts-list dd small{margin-top:4px}.validation-list{padding:0;list-style:none}.review-actions{flex-wrap:wrap;gap:8px;margin:24px 0;display:flex}.review-navigation{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:24px;display:flex}.receipt-amount-form{margin:16px 0}.rule-row{flex-wrap:wrap;align-items:end;gap:8px;margin:16px 0;display:flex}.rule-row .field{flex:160px;margin-bottom:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=640px){.workspace{padding:32px 24px}.page-header{flex-direction:row;justify-content:space-between;align-items:center}.journal-chooser,.template-list,.form-grid,.column-groups,.upload-options{grid-template-columns:repeat(2,minmax(0,1fr))}.sign-in-intro{padding:48px}.sign-in-form{padding:48px 32px}}@media (width>=960px){.app-shell{grid-template-columns:240px minmax(0,1fr);display:grid}.sidebar{border-right:1px solid var(--border);border-bottom:0;flex-direction:column;height:100dvh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar nav,.sidebar nav.open{gap:4px;display:grid}.sidebar-footer{border-top:0;gap:8px;margin-top:auto;padding-top:24px;display:grid}.sidebar:has(nav.open) .sidebar-footer{border-top:0;gap:8px;margin-top:auto;padding-top:24px;display:grid}.menu-button{display:none}.workspace{padding:32px}.sign-in{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.sign-in-intro{flex-direction:column;justify-content:center;padding:clamp(32px,5vw,80px);display:flex}.settings-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.review-layout{grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr)}.evidence-panel{position:sticky;top:24px}}@media (prefers-reduced-motion:no-preference){button,.button,nav a{transition:background-color .15s}}@media (forced-colors:active){.status,.notice,.primary,nav a.active{border:1px solid canvastext}}
