:root{font-family:Inter,system-ui,sans-serif;color:#17211b;background:#f3f0e8}
*{box-sizing:border-box}
body{margin:0}
a{color:#244c36}
main{width:min(1100px,calc(100% - 2rem));margin:2rem auto 5rem}
.wide{width:min(1500px,calc(100% - 2rem))}
.login{max-width:34rem}
.eyebrow,.brand{color:#54715f;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
h1{font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,5rem);font-weight:500;margin:.3rem 0}
h2{font-family:Georgia,serif;font-weight:500}
nav,.navlinks,.pagehead,.bulk,.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.navlinks{justify-content:flex-end}
.navlinks a[aria-current=page]{font-weight:800}
.navlinks form{margin:0}
.pagehead{align-items:end;margin:3.5rem 0 2rem}
.pagehead>p{color:#667069}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:2.5rem}
.cards article,.panel{background:#fffdf8;border:1px solid #ded9cc;border-radius:1rem;padding:1.4rem}
.cards strong{display:block;font:1.8rem Georgia,serif;margin:.65rem 0}
.split{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:1rem;align-items:start}
form{display:grid;gap:1rem}
label{display:grid;gap:.4rem;font-weight:650}
input,select{width:100%;padding:.7rem;border:1px solid #b7b5ab;border-radius:.5rem;font:inherit;background:#fff}
button{border:0;border-radius:.5rem;padding:.78rem 1rem;background:#244c36;color:#fff;font:700 1rem inherit;cursor:pointer}
.link{padding:.3rem;background:transparent;color:#244c36}
.flash{padding:.85rem 1rem;border-left:4px solid;background:#fff}
.flash.success{border-color:#2d7550}
.flash.error,.error{border-color:#9b3328;background:#fff3f0}
.category-list{list-style:none;padding:0;margin:0}
.category-list li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #e5e1d7}
.category-list small{color:#667069}
.rule-list{list-style:none;padding:0;margin:0}
.rule-list li{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid #e5e1d7}
.rule-list small{display:block;color:#667069;margin-top:.3rem}
.rule-actions{display:flex;align-items:center;gap:.7rem;white-space:nowrap}
.rule-actions form{margin:0}
button:disabled{cursor:not-allowed;opacity:.5}
.filters{display:flex;align-items:end;gap:.7rem;padding:1rem;background:#e8e5dc;border-radius:.8rem;margin-bottom:1rem}
.filters label{min-width:130px}
.filters .grow{flex:1}
.bulk{justify-content:flex-start;background:#fffdf8;border:1px solid #ded9cc;padding:.8rem;position:sticky;top:0;z-index:2}
.bulk label{display:flex;align-items:center;gap:.6rem}
.bulk select{min-width:240px}
.table-wrap{overflow:auto;background:#fff}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:.7rem;border-bottom:1px solid #e5e1d7;vertical-align:top}
th{background:#f7f5ef}
td input,th input{width:auto}
.amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.negative{color:#9b3328}
.positive{color:#24613f}
.pagination{margin-top:1rem}
.pagination div{display:flex;gap:1rem}
@media(max-width:800px){.split{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:1fr 1fr}.pagehead{display:block}.bulk{align-items:stretch;flex-direction:column}.bulk label{display:grid}.navlinks{gap:.6rem}}
