:root{--bg: #16140f;--surface: #1f1c15;--surface-2: #2a261d;--surface-3: #332f24;--border: #322e24;--border-strong: #44402f;--text: #f4efe3;--text-muted: #a79e8b;--text-faint: #6f6757;--accent: #5fa876;--accent-soft: #2e3b30;--accent-text: #8fd0a3;--danger: #c2756b;--danger-soft: #3a2723;--r-card: 12px;--r-btn: 10px;--r-input: 8px;--r-pill: 999px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--font-ui: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "JetBrains Mono", monospace;--ring: 0 0 0 3px rgba(244, 239, 227, .14);--shadow-raise: 0 1px 0 rgba(255, 255, 255, .02);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 80% at 50% -10%,rgba(95,168,118,.05),transparent 60%);z-index:0}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}button{font-family:inherit}::selection{background:#5fa87647}.app{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column}.container{width:100%;max-width:980px;margin:0 auto;padding:0 var(--s5)}.main{flex:1;padding:var(--s6) 0 var(--s7)}.page-head{margin-bottom:var(--s6)}.page-head h1{font-size:27px}.page-head .sub{color:var(--text-muted);margin-top:var(--s2);max-width:56ch}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.stack{display:flex;flex-direction:column;gap:var(--s4)}.row{display:flex;align-items:center;gap:var(--s3)}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--text-muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.nav{position:sticky;top:0;z-index:10;background:#16140fd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav-inner{height:60px;display:flex;align-items:center;gap:var(--s5)}.brand{display:flex;align-items:center;gap:var(--s3)}.brand .mark{width:30px;height:30px;display:block}.brand .wordmark{font-family:var(--font-mono);font-weight:600;font-size:17px;letter-spacing:.34em;text-transform:uppercase;padding-left:2px}.nav-links{display:flex;gap:var(--s2);margin-left:var(--s4)}.nav-link{padding:var(--s2) var(--s3);border-radius:var(--r-btn);color:var(--text-muted);font-size:14px;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-link.active{color:var(--text);background:var(--surface-2)}.trust-chip{display:inline-flex;align-items:center;gap:var(--s2);font-size:12px;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-pill);padding:5px var(--s3)}.trust-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s5);box-shadow:var(--shadow-raise)}.card.pad-lg{padding:var(--s6)}.card-title{font-size:16px;margin-bottom:var(--s2)}.grid{display:grid;gap:var(--s4)}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 720px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:var(--r-btn);padding:10px var(--s4);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .05s,opacity .15s;white-space:nowrap}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}.btn-primary:hover{background:#fffaf0}.btn-ghost{background:transparent;border-color:var(--border)}.btn-ghost:hover{background:var(--surface)}.btn-danger{background:transparent;border-color:#54322d;color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:7px var(--s3);font-size:13px}.btn-lg{padding:13px var(--s5);font-size:15px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;color:var(--text-muted);font-weight:500}.field .label-row{display:flex;align-items:center;gap:var(--s2)}.input,.select,.textarea{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-input);color:var(--text);padding:10px var(--s3);font-family:var(--font-ui);font-size:14px;transition:border-color .15s,box-shadow .15s}.input.mono{font-family:var(--font-mono)}.textarea{resize:vertical;min-height:78px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--border-strong);box-shadow:var(--ring)}.input.valid{border-color:var(--accent)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23a79e8b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s3) center;padding-right:var(--s6);cursor:pointer}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.badge.status-needs_review{color:#d8b487}.badge.status-reviewed{color:var(--accent-text);background:var(--accent-soft);border-color:#3a4a3c}.badge.status-ready_for_entry{color:#9fc7d6}.badge.status-exported{color:var(--text-muted)}.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--text-faint);border:1px solid var(--border);border-radius:6px;padding:3px 8px}.tag svg{opacity:.7}.check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:var(--bg)}.readout{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:600;letter-spacing:-.02em}.stat-label{color:var(--text-muted);font-size:13px}.code{font-family:var(--font-mono);font-size:12.5px;line-height:1.6;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-input);padding:var(--s4);white-space:pre-wrap;word-break:break-word;color:var(--text-muted);max-height:360px;overflow:auto}details.collapsible summary{cursor:pointer;color:var(--text-muted);font-size:13px;list-style:none;padding:var(--s2) 0;-webkit-user-select:none;user-select:none}details.collapsible summary::-webkit-details-marker{display:none}details.collapsible summary:before{content:"▸";display:inline-block;margin-right:var(--s2);transition:transform .15s;color:var(--text-faint)}details.collapsible[open] summary:before{transform:rotate(90deg)}.record-row{display:grid;grid-template-columns:1fr auto;gap:var(--s4);align-items:center;padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);transition:border-color .15s,background .15s;cursor:pointer}.record-row:hover{border-color:var(--border-strong);background:var(--surface-2)}.record-row .vendor{font-weight:600;font-size:15px}.record-row .meta{color:var(--text-muted);font-size:13px;margin-top:2px;display:flex;gap:var(--s3);flex-wrap:wrap}.record-amount{text-align:right}.record-amount .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.divider{height:1px;background:var(--border);border:0;margin:var(--s5) 0}.kv{display:grid;grid-template-columns:150px 1fr;gap:var(--s2) var(--s4);font-size:14px}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.toolbar{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;margin-bottom:var(--s5)}.segmented{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-btn);padding:3px;gap:2px}.segmented button{border:0;background:transparent;color:var(--text-muted);padding:6px var(--s3);border-radius:7px;font-size:13px;cursor:pointer;white-space:nowrap}.segmented button.active{background:var(--surface-2);color:var(--text)}.empty{text-align:center;padding:var(--s7) var(--s5);color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--r-card)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-card);padding:var(--s7) var(--s5);text-align:center;transition:border-color .15s,background .15s;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#5fa8760d}.preview-img{width:100%;max-height:420px;object-fit:contain;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-input)}.progress{height:6px;background:var(--surface-2);border-radius:var(--r-pill);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);transition:width .2s ease}.toast{position:fixed;bottom:var(--s5);left:50%;transform:translate(-50%);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-btn);padding:var(--s3) var(--s4);font-size:14px;z-index:50;box-shadow:0 8px 30px #0006;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.reveal{animation:reveal .4s ease both}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion: reduce){.reveal{animation:none}}
