:root{color-scheme:light;--ink:#182d2a;--paper:#f5f7f1;--white:#fff;--line:#dbe3d9;--muted:#53645e;--lime:#d5eea9;--green:#25604b;--red:#983b2e;font:16px/1.55 "Aptos","Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body,h1,h2,p{margin:0}body{min-height:100vh}a{color:var(--green);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}h1,h2,strong{line-height:1.15}h1{font-size:clamp(2.35rem,6vw,4.5rem);letter-spacing:-.065em;overflow-wrap:anywhere}h2{font-size:1.35rem;letter-spacing:-.025em}p+form,form+p,h2+form{margin-top:1rem}[hidden]{display:none!important}
button,.button,input,select,textarea{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;min-height:42px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:.45rem .85rem;font-weight:650;text-decoration:none;cursor:pointer;text-align:center}button:hover,.button:hover{border-color:var(--green);background:#f4f8ec}.primary,.primary:hover{background:var(--lime);border-color:#a9ca7d;color:var(--ink)}.primary:hover{background:#c7e696}.danger{color:var(--red)}:focus-visible{outline:3px solid #52815b;outline-offset:3px}
input,select,textarea{display:block;width:100%;padding:.58rem .75rem;color:var(--ink);background:white;border:1px solid #aebcb0;border-radius:8px;min-height:44px}textarea{resize:vertical}label{display:grid;gap:.25rem;font-weight:600}small,.muted{color:var(--muted);font-size:.89rem;font-weight:400}.stack{display:grid;gap:.85rem}.stack>button{justify-self:start}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.alert,.notice,.banner{border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem;margin:0 0 1rem;background:#eaf2de}.alert{background:#fff1ed;color:var(--red)}.banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.positive{color:var(--green)}.negative{color:var(--red)}
.brand{display:inline-flex;align-items:center;gap:.48rem;color:inherit;text-decoration:none;font-weight:800;letter-spacing:-.06em;font-size:1.6rem;width:max-content}.brand span{margin-left:-.42rem;color:#7da659}.pill{display:inline-block;font-size:.82rem;padding:.26rem .65rem;border-radius:7px;background:#e8efd9;color:#2e503c;font-weight:650}
.welcome{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}.welcome-story{background:var(--ink);color:white;min-height:640px;padding:clamp(1.75rem,6vw,5.6rem);display:flex;flex-direction:column;justify-content:space-between;gap:3rem}.welcome-story .story h1{font-size:clamp(3rem,8vw,7rem);margin:.65rem 0 1rem}.story p{max-width:33ch;color:#deeadc;font-size:1.08rem}.sample{background:#ecf4dc;color:var(--ink);max-width:390px;border-radius:14px 14px 4px 4px;padding:1rem 1.2rem}.sample>div{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 0}.sample-head{font-size:.85rem;color:var(--muted);border-bottom:1px dashed #859b79}.sample>div:last-child{border-top:1px solid #abbc9f}.welcome-form{align-self:center;width:min(100%,31rem);padding:2.2rem clamp(1.4rem,5vw,3rem);margin-inline:auto}.welcome-form h2{font-size:2.15rem;margin-bottom:.5rem}.welcome-form details{margin-top:1rem}.welcome-form summary,.settings summary{cursor:pointer;color:var(--green);font-weight:650}.welcome-form details form{margin-top:1rem}.welcome-form>button{margin-top:1rem}
.layout{display:grid;grid-template-columns:255px minmax(0,1fr);min-height:100vh}.sidebar{background:#e9efe3;border-right:1px solid var(--line);padding:1.65rem 1.14rem;display:flex;flex-direction:column;gap:2.5rem}.side-label{font-size:.83rem;color:var(--muted);padding:.15rem .7rem}.group-link{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font-weight:600;padding:.56rem .65rem;border-radius:8px;overflow-wrap:anywhere}.group-link:hover,.group-link.active{background:#dbe7cd}.group-mark{font-size:.9rem;background:#f5f8ef;border:1px solid #ccd8c5;padding:.1rem .34rem;border-radius:5px}.account{margin-top:auto;padding:.8rem .65rem 0;border-top:1px solid #c8d7c5}.account a{font-weight:700}.quiet{padding:0;background:none;border:0;min-height:36px;color:var(--muted)}
.dashboard{width:min(100%,1260px);margin-inline:auto;padding:clamp(1.15rem,4vw,3.35rem)}.dash-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.35rem}.dash-head h1{margin:.22rem 0}.totals{display:grid;grid-template-columns:1.3fr 1fr;overflow:hidden;border-radius:14px;margin-bottom:1.3rem;background:#e5eddc}.totals>div{padding:1.15rem 1.4rem;display:grid;gap:.25rem}.totals strong{font-size:clamp(1.22rem,4vw,2.6rem);letter-spacing:-.055em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.totals span:last-child{font-size:.86rem}.net{background:var(--ink);color:white}
.ledger-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1rem;align-items:start}.right{display:grid;gap:1rem}.panel{min-width:0;background:white;border:1px solid var(--line);border-radius:12px;padding:1.15rem}.section-head{display:flex;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-head>a,.panel>a{font-size:.88rem}.search{margin-bottom:.45rem}.transaction{border-top:1px solid var(--line)}.transaction summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.85rem 0;font-variant-numeric:tabular-nums}.transaction summary::-webkit-details-marker{display:none}.txn-name{display:grid;gap:.18rem;overflow-wrap:anywhere}.txn-icon,.empty>span{background:#edf3e6;display:grid;place-items:center;border-radius:8px;width:2.15rem;height:2.15rem;color:var(--green)}.txn-detail{padding:.15rem .1rem .8rem 2.8rem}.txn-detail .actions{margin-top:.65rem}.empty{min-height:185px;display:grid;place-content:center;justify-items:center;text-align:center;gap:.35rem;color:var(--muted)}.empty strong{color:var(--ink)}.line,.settle{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.line strong{white-space:nowrap}.settle small{display:block}.invite{margin:.75rem 0 .4rem}.entry-form{margin-bottom:1rem}.entry-form fieldset{border:1px solid var(--line);border-radius:8px;margin:0;min-width:0}.split-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.25rem 0}.split-row label:first-child{display:flex;align-items:center;gap:.5rem}.split-row input[type=checkbox]{width:1.2rem;min-height:1.25rem;accent-color:var(--green)}.part{max-width:120px}.settings{margin-top:1rem}.settings:target{outline:2px solid #759c63;outline-offset:3px}.settings form{max-width:580px}footer{margin-top:1.2rem;padding:.65rem 0;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.87rem}.installer{max-width:650px;padding:1.5rem;margin:2rem auto}.installer h1{margin:.8rem 0}.requirements{list-style:none;padding:0}.requirements li{padding:.4rem .6rem;border-bottom:1px solid var(--line)}.requirements strong{display:inline-block;min-width:3.1rem}.sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:920px){.layout{grid-template-columns:190px minmax(0,1fr)}.ledger-grid{grid-template-columns:1fr}}
@media(max-width:680px){.layout,.welcome{display:block}.sidebar{padding:.85rem 1rem;gap:.6rem;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;flex-wrap:wrap;align-items:center}.sidebar .side-label{display:none}.account{display:flex;gap:.8rem;align-items:center;padding:.25rem 0 0}.dash-head{align-items:start;flex-direction:column}.welcome-story{min-height:auto;padding:1.5rem;gap:1.35rem}.welcome-story .story h1{font-size:clamp(2.8rem,12vw,4rem)}.welcome-form{margin:0}.welcome-story .sample{display:none}.totals>div{padding:.85rem}.fields{gap:.55rem}.transaction summary{font-size:.9rem}}
@media(max-width:370px){.fields{grid-template-columns:1fr}.totals{grid-template-columns:1fr}.transaction summary{grid-template-columns:minmax(0,1fr) auto}.txn-icon{display:none}}
