@import "https://fonts.googleapis.com/css2?family=Spectral:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--paper:#f5f5f0;--paper-raised:#fff;--ink:#1b2321;--ink-soft:#565f5c;--ink-faint:#8a928d;--line:#dad9ce;--line-strong:#c3c1b3;--accent:#0e6b5c;--accent-ink:#fff;--accent-soft:#e4efec;--amber:#a8721f;--amber-soft:#f5e9d6;--red:#9c3b34;--red-soft:#f3e1de;--blue:#38536b;--blue-soft:#e4ebf0;--font-display:"Spectral", Georgia, serif;--font-sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--radius-sm:3px;--radius-md:6px;--shadow-card:0 1px 2px #1b23210f, 0 1px 0 #1b23210a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}#app{min-height:100vh}h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:600;line-height:1.2}p{margin:0}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.shell-nav{background:var(--paper-raised);border-right:1px solid var(--line);flex-direction:column;padding:28px 0 20px;display:flex}.shell-brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:8px;padding:0 22px 24px;display:flex}.shell-brand-mark{background:var(--ink);width:34px;height:34px;color:var(--paper);font-family:var(--font-display);border-radius:var(--radius-sm);flex:none;place-items:center;font-size:18px;display:grid}.shell-brand-name{font-family:var(--font-display);font-size:17px;font-weight:600}.shell-brand-sub{color:var(--ink-faint);margin-top:1px;font-size:12px}.shell-tabs{flex-direction:column;flex:1;gap:2px;padding:8px 12px;display:flex}.shell-tab{border-radius:var(--radius-sm);color:var(--ink-soft);border-left:2px solid #0000;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.shell-tab:hover{background:var(--paper);color:var(--ink)}.shell-tab.is-active{background:var(--accent-soft);color:var(--accent);border-left-color:var(--accent)}.shell-tab-count{background:var(--amber);color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.shell-footer{border-top:1px solid var(--line);margin-top:8px;padding:14px 22px 0}.shell-footer p{color:var(--ink-faint);font-size:11.5px;line-height:1.5}.shell-main{max-width:1080px;padding:40px 48px 64px}.page{flex-direction:column;gap:28px;display:flex}.page-head h1{font-size:28px}.page-lede{color:var(--ink-soft);max-width:60ch;margin-top:6px;font-size:14.5px}.panel{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:24px 26px}.panel-head{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.panel-head h2{font-size:17px}.empty-note{color:var(--ink-faint);padding:8px 0;font-size:14px}.hero-stat{background:var(--ink);color:var(--paper);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:30px 32px;display:flex}.hero-stat-label{color:#c7cdc9;letter-spacing:.01em;font-size:13px}.hero-stat-value{font-family:var(--font-display);font-size:44px;font-weight:600}.hero-stat-meta{color:#b4bcb7;font-size:13.5px}.text-red{color:#e6a39c}.stat-row{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;gap:6px;padding:18px 20px;display:flex}.stat-label{color:var(--ink-faint);font-size:12.5px}.stat-value{font-size:26px;font-weight:500}.stat-value.text-red{color:var(--red)}.stat-link{color:var(--accent);margin-top:2px;font-size:13px;text-decoration:none}.stat-link:hover{text-decoration:underline}.stat-link-muted{color:var(--ink-faint)}.ledger{border-collapse:collapse;width:100%;font-size:14px}.ledger thead th{text-align:left;text-transform:none;letter-spacing:.02em;color:var(--ink-faint);border-bottom:1px solid var(--line);padding:0 10px 10px;font-size:11.5px;font-weight:500}.ledger tbody td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 10px}.ledger tbody tr:last-child td{border-bottom:none}.ledger .align-right{text-align:right}.ink-faint{color:var(--ink-faint);font-size:13px}.stamp{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.stamp-neutral{color:var(--ink-soft);border-color:var(--line-strong);background:#eceae1}.stamp-blue{background:var(--blue-soft);color:var(--blue)}.stamp-amber{background:var(--amber-soft);color:var(--amber)}.stamp-accent{background:var(--accent-soft);color:var(--accent)}.stamp-accent-solid{background:var(--accent);color:#fff}.stamp-red{background:var(--red-soft);color:var(--red)}.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:500;transition:background .12s}.btn-primary:hover{background:#2c3733}.btn-primary:disabled{background:var(--line-strong);border-color:var(--line-strong);color:#fff;cursor:not-allowed}.btn-outline{border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--radius-sm);background:0 0;padding:9px 16px;font-size:13.5px;font-weight:500}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost{color:var(--ink-soft);border-radius:var(--radius-sm);background:0 0;border:none;padding:9px 14px;font-size:13.5px;font-weight:500}.btn-ghost:hover{background:var(--paper);color:var(--ink)}.btn-small{padding:6px 12px;font-size:13px}.icon-btn{color:var(--ink-faint);border-radius:var(--radius-sm);background:0 0;border:none;padding:8px;font-size:13px}.icon-btn:hover{color:var(--red);background:var(--red-soft)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn:disabled:hover{color:var(--ink-faint);background:0 0}.form{flex-direction:column;gap:20px;display:flex}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px 20px;display:grid}.form-grid-tight{grid-template-columns:160px 1fr;align-items:end}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--ink-soft);font-size:12.5px;font-weight:500}.field input,.field select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);padding:9px 11px;font-size:14px}.field input:focus,.field select:focus{border-color:var(--accent)}.field-wide{grid-column:span 1}.field-divider{background:var(--line);height:1px}.line-items{flex-direction:column;gap:8px;display:flex}.line-items-head{color:var(--ink-faint);grid-template-columns:1fr 80px 120px 120px 32px;gap:10px;padding:0 4px;font-size:11.5px;display:grid}.line-item-row{grid-template-columns:1fr 80px 120px 120px 32px;align-items:center;gap:10px;display:grid}.line-item-row input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:100%;padding:8px 10px;font-size:13.5px}.line-item-row input:focus{border-color:var(--accent)}.line-item-sum{color:var(--ink-soft);text-align:right;padding-right:4px;font-size:13.5px}.line-items-compact .line-items-head,.line-items-compact .line-item-row{grid-template-columns:1fr 70px 100px 100px 20px}.totals-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;align-self:flex-end;gap:8px;width:280px;padding:16px 18px;display:flex}.totals-box-compact{width:220px}.totals-row{color:var(--ink-soft);justify-content:space-between;font-size:13.5px;display:flex}.totals-row-final{border-top:1px solid var(--line);color:var(--ink);padding-top:8px;font-size:15px;font-weight:600}.form-actions{align-items:center;gap:14px;display:flex}.form-actions-hint{color:var(--ink-faint);font-size:12.5px}.dropzone{background:var(--paper-raised);border:1.5px dashed var(--line-strong);border-radius:var(--radius-md);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;transition:border-color .12s,background .12s;display:flex}.dropzone.is-dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone-mark{color:var(--ink-faint);margin-bottom:6px;font-size:26px}.dropzone-title{font-family:var(--font-display);font-size:19px;font-weight:600}.dropzone-sub{color:var(--ink-faint);margin-bottom:4px;font-size:13px}.dropzone-hint{color:var(--ink-faint);margin-top:10px;font-size:12px}.upload-log{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.upload-log-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 4px;font-size:14px;display:flex}.upload-log-row:last-child{border-bottom:none}.upload-log-name{font-family:var(--font-mono);font-size:13px}.upload-log-state{color:var(--amber);align-items:center;gap:8px;font-size:13px;display:flex}.upload-log-state-done{color:var(--accent)}.spinner{border:2px solid var(--amber-soft);border-top-color:var(--amber);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.review-list{flex-direction:column;gap:12px;display:flex}.review-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.review-card-head{text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;display:flex}.review-card-main{flex-direction:column;gap:4px;display:flex}.review-card-vendor{font-size:15px;font-weight:500}.review-card-meta{color:var(--ink-faint);font-size:12.5px}.review-card-side{align-items:center;gap:12px;display:flex}.confidence-tag{color:var(--ink-faint);font-size:12px}.review-card-chevron{color:var(--ink-faint);text-align:center;width:18px;font-size:18px}.review-card-body{border-top:1px solid var(--line);flex-direction:column;gap:18px;margin-top:4px;padding:18px 20px 22px;display:flex}.review-card-actions{gap:10px;display:flex}.filter-row{align-items:center;gap:8px;display:flex}.filter-chip{background:var(--paper-raised);border:1px solid var(--line-strong);color:var(--ink-soft);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500}.filter-chip:hover{border-color:var(--accent)}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter-row-total{color:var(--ink-soft);margin-left:auto;font-size:13px}.pay-inline{gap:10px;display:flex}.pay-inline input,.pay-inline select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);padding:7px 10px;font-size:13.5px}.pay-inline-actions{justify-content:flex-end;gap:8px;display:flex}.row-paying{background:var(--accent-soft)}.row-editing{background:var(--blue-soft)}.row-deleting{background:var(--red-soft)}.row-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.invoice-edit-form{flex-direction:column;gap:18px;padding:16px 2px 8px;display:flex}.confirm-inline{color:var(--ink);justify-content:space-between;align-items:center;gap:20px;padding:6px 2px;font-size:14px;display:flex}.confirm-inline-actions{flex-shrink:0;gap:8px;display:flex}.btn-danger{background:var(--red);color:#fff;border:1px solid var(--red);border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:500}.btn-danger:hover{background:#832f29}.toolbar{flex-direction:column;gap:14px;display:flex}.search-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:100%;max-width:340px;padding:9px 12px;font-size:14px}.search-input:focus{border-color:var(--accent)}@media (width<=860px){.shell{grid-template-columns:1fr}.shell-nav{border-right:none;border-bottom:1px solid var(--line);padding:16px 0}.shell-tabs{flex-direction:row;padding:8px 16px;overflow-x:auto}.shell-footer{display:none}.shell-main{padding:24px 20px 48px}.stat-row,.form-grid{grid-template-columns:1fr}.line-items-head{display:none}.line-item-row{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:6px;margin-bottom:6px;padding-bottom:12px}}
