:root{--ink:#17201d;--muted:#68736e;--paper:#f4f1e9;--card:#fffef9;--line:#ddd9cf;--green:#195c48;--mint:#dff0e8;--red:#9f3d36;--amber:#8a6118;--shadow:0 10px 30px rgba(23,32,29,.07)}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{margin:0}.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:24px;padding:14px 3vw;background:rgba(244,241,233,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--ink);text-decoration:none;font-size:19px}.brand span,.logo{display:grid;place-items:center;background:var(--green);color:white;border-radius:9px;width:34px;height:34px}.top nav{display:flex;gap:4px;flex:1;overflow:auto}.top nav a{color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:7px;white-space:nowrap;font-size:14px}.top nav a:hover,.top nav a.active{background:#e7e3d9;color:var(--ink)}main{width:min(1180px,92vw);margin:42px auto 80px}.centered{min-height:90vh;display:grid;place-items:center}.login{width:min(430px,92vw);padding:42px}.login .logo{width:48px;height:48px;font-size:24px;margin-bottom:25px}h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(38px,5vw,64px);line-height:1;margin:5px 0 16px;letter-spacing:-.035em}h2{font-family:Georgia,serif;font-weight:500;font-size:25px;margin:0 0 16px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:800;color:var(--green);margin:0 0 8px}.lede{font-family:Georgia,serif;font-size:20px;line-height:1.55;color:#3f4945}.muted,small{color:var(--muted)}small{display:block;margin-top:4px;line-height:1.4}.pagehead,.sectionhead,.listitem,.reportrow,.transaction,.planitem,.transfer{display:flex;justify-content:space-between;align-items:center;gap:20px}.pagehead{margin-bottom:28px}.card,.metric{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:24px;box-shadow:var(--shadow)}.grid{display:grid;gap:22px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr)}.cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.stack{display:grid;gap:18px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.metric{display:flex;min-height:145px;flex-direction:column;justify-content:center}.metric span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.metric strong{font-family:Georgia,serif;font-size:34px;margin:8px 0}.metric strong.small{font-family:inherit;font-size:18px}.metric.dark{background:var(--ink);color:white}.metric.dark span,.metric.dark small{color:#c3cec9}.metric.danger{border-color:#e3b8b3}.finding{border-left:3px solid var(--line);padding:10px 14px;margin:11px 0}.finding span{display:block;color:var(--muted);margin-top:4px}.finding.positive{border-color:var(--green)}.finding.concern{border-color:var(--red)}.finding.action{border-color:#315b8b}.transaction,.reportrow,.listitem,.planitem,.transfer,.notification,.question{padding:14px 0;border-bottom:1px solid var(--line)}.transaction:last-child,.reportrow:last-child,.listitem:last-child,.planitem:last-child,.transfer:last-child{border:0}.out{color:var(--red)}.in{color:var(--green)}.amount{text-align:right}.pill{display:inline-block;padding:4px 8px;border-radius:99px;background:#ebe8e0;color:var(--muted);font-size:11px;text-transform:capitalize;margin-top:5px}.pill.reasonable{background:var(--mint);color:var(--green)}.pill.unreasonable{background:#f5ddda;color:var(--red)}.pill.needs_context{background:#f3ead5;color:var(--amber)}form{display:grid;gap:15px}label{display:grid;gap:6px;font-size:13px;font-weight:700}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:white;border:1px solid #cfcac0;border-radius:8px;padding:11px 12px;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(25,92,72,.12)}button,.button{display:inline-flex;justify-content:center;align-items:center;width:max-content;border:0;border-radius:8px;background:var(--green);color:white;font:inherit;font-weight:750;padding:10px 16px;text-decoration:none;cursor:pointer}button.secondary,.button.secondary,.quiet{background:#e8e4da;color:var(--ink)}.top form{display:block}.top .quiet{padding:8px 10px}.check{display:flex;grid-column:auto;align-items:center;gap:8px;font-weight:500}.check input{width:auto}.inline{display:flex;align-items:center;gap:8px}.inline input{width:auto}.classify{grid-template-columns:repeat(3,1fr);margin-top:18px}.classify .wide{grid-column:1/-1}.rowcard{padding:0 22px}.rowcard summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;cursor:pointer}.rowcard>p,.rowcard>form{margin-left:0}.rowcard>form{margin-bottom:22px}.flash{padding:13px 16px;margin:0 0 22px;border-radius:9px;background:#e9e7e0}.flash.good{background:var(--mint);color:var(--green)}.flash.bad{background:#f5ddda;color:var(--red)}.flash.warn{background:#f3ead5;color:#735013}.empty{color:var(--muted);padding:24px;text-align:center}.narrow{width:min(760px,100%);margin:auto}.narrow .card{margin-top:30px}.heroamount{font:500 48px Georgia,serif}.transfer.done{opacity:.6}.notification{display:block;text-decoration:none;color:inherit;padding-left:12px}.notification.unread{border-left:3px solid var(--green)}.notification span{display:block;color:var(--muted);margin-top:4px}.question form{margin-top:12px}.subform{margin-top:18px}.dangerzone{border-color:#deb5b0;margin-top:22px}.dangerbutton{background:var(--red)}.badtext{color:var(--red)}a{color:var(--green)}details>summary{cursor:pointer} @media(max-width:850px){.top{align-items:flex-start;flex-wrap:wrap}.top nav{order:3;width:100%}.metrics,.split,.two,.classify{grid-template-columns:1fr}.pagehead{align-items:flex-start}.inline{flex-wrap:wrap}.classify .wide{grid-column:auto}}@media(max-width:520px){main{margin-top:25px}.top{padding:10px 4vw}.top nav a{padding:7px}.pagehead{display:grid}.metrics{grid-template-columns:1fr}.card{padding:19px}.rowcard{padding:0 17px}.rowcard summary{align-items:flex-start}.amount{min-width:100px}h1{font-size:42px}}
