:root{--ink:#251f21;--muted:#585254;--rule:#eae9ea;--paper:#fff;--ground:#f4efec;--teal:#73a89a;--red:#c12632}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1040px;margin:24px auto;background:var(--paper);padding:36px;border-radius:20px}h1,h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.2}h1{font-size:40px;margin:8px 0 18px}h2{font-size:27px;margin:0 0 20px}h3{font-size:17px}p{margin:10px 0}.eyebrow{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.privacy{padding:12px 16px;background:var(--ground);border-radius:8px}section{padding:28px 0;border-bottom:1px solid var(--rule)}label{display:block;font-size:14px;color:var(--muted);margin:14px 0}input,select,textarea{display:block;width:100%;min-height:46px;font:inherit;color:var(--ink);background:white;border:1px solid #bbb;border-radius:4px;padding:10px 12px;margin-top:6px}input[type=file]{padding:12px;cursor:pointer}input:focus,select:focus,textarea:focus,button:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:2px}button{min-height:46px;padding:10px 16px;border:1px solid #bbb;border-radius:4px;background:white;color:var(--ink);font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--ink);color:white;border-color:var(--ink)}.quiet{border:0;background:none}.danger{color:var(--red)}.muted,small,footer{color:var(--muted);font-size:14px}.actions,.filters{display:flex;gap:12px;flex-wrap:wrap}.filters label{flex:1 1 220px}.stats{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.stats p{margin:0}.stats strong{display:block}.line{border-bottom:1px solid var(--rule)}.line-head{border:0;width:100%;display:grid;grid-template-columns:100px minmax(0,1fr) auto;grid-template-areas:'date merchant amount' 'date cat amount';text-align:left;gap:2px 16px;padding:12px 4px}.date{grid-area:date;color:var(--muted);font-size:14px}.merchant{grid-area:merchant;overflow-wrap:anywhere}.line-head strong{grid-area:amount;white-space:nowrap}.category{grid-area:cat;color:var(--muted);font-size:14px}.chosen{color:#3b7868;font-weight:600}small{display:block;overflow-wrap:anywhere;font-size:12px}.line-body{padding:4px 12px 20px;border-left:3px solid var(--teal)}summary{min-height:48px;cursor:pointer;padding:10px 0}pre{font:14px/1.6 system-ui;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto}.report-group h3,.grand{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.report-group{padding:12px 0}.report-row{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:12px;border-bottom:1px solid var(--rule);padding:8px 0}.report-row .date{grid-area:auto}.report-row span{overflow-wrap:anywhere}.report-row strong{white-space:nowrap}.grand{border-top:2px solid var(--ink);padding-top:12px}#categories{list-style:none;padding:0}#categories li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--rule)}footer{padding-top:24px}.upload{font-weight:600}header{padding-bottom:8px}form{max-width:600px} @media(max-width:639px){body{background:white}main{margin:0;border-radius:0;padding:24px}h1{font-size:30px}h2{font-size:23px}.line-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'date amount' 'merchant merchant' 'cat cat';gap:4px 12px}.actions button{flex:1 1 180px}.report-row{grid-template-columns:minmax(0,1fr) auto}.report-row .date{grid-column:1/-1}.stats{display:block}.stats strong{display:inline;margin-left:6px}}@media print{body{background:white;font-size:12px}main{padding:0;margin:0;max-width:none}header,.no-print,footer{display:none}.report{border:0;padding:0}.report-group{break-inside:avoid}.report-row{grid-template-columns:85px minmax(0,1fr) auto}.report-row .date{grid-column:auto}h2{font-size:22px}.report-row small{font-size:10px}}
