:root{--bg:#08090b;--bg-deep:#050608;--surface:#121519;--surface-2:#171b20;--text:#e8ece8;--text-h:#f4f6f8;--muted:#9aa3a0;--faint:#5d6660;--line:#23282f;--accent:#c6f53e;--accent-ink:#0a0a0a;--rust:#ff6b4a;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--display:"Bricolage Grotesque", system-ui, "Segoe UI", sans-serif;--sans:"Spline Sans", system-ui, "Segoe UI", sans-serif;font:17px/1.6 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-height:100vh;margin:0}.page{flex-direction:column;max-width:1080px;min-height:100vh;margin:0 auto;padding:22px clamp(16px,4vw,40px) 28px;display:flex;position:relative}.grid{z-index:-1;pointer-events:none;background-image:radial-gradient(#c6f53e24 1px,#0000 1px);background-size:34px 34px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(70% 55% at 50% 30%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 55% at 50% 30%,#000 20%,#0000 75%)}.bar{justify-content:space-between;align-items:center;gap:16px;display:flex}.bar__logo img{height:24px;display:block}.badge{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:6px 12px;font-size:.62rem}.hero{flex-direction:column;gap:12px;max-width:640px;padding:30px 0 24px;display:flex}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.66rem}.title{font-family:var(--display);letter-spacing:-.025em;color:var(--text-h);margin:0;font-size:clamp(2rem,6.5vw,3.2rem);line-height:1.02}.sub{color:var(--muted);max-width:52ch;margin:0;font-size:1rem}.tool{gap:14px;padding-bottom:12px;display:grid}.tool__forms{flex-direction:column;gap:14px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.month{grid-template-columns:40px minmax(0,1fr) 40px auto;align-items:center;gap:8px;display:grid}.month__nav{border:1px solid var(--line);width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border-radius:10px;font-size:1rem;line-height:1;transition:border-color .16s,color .16s}.month__nav:hover{border-color:var(--accent);color:var(--accent)}.month__label{flex-direction:column;align-items:center;line-height:1.15;display:flex}.month__label .mono{letter-spacing:.16em;color:var(--faint);font-size:.56rem}.month__label strong{font-family:var(--display);color:var(--text-h);font-size:1.12rem;font-weight:600}.month__today{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:6px 2px;font-size:.6rem}.summary{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 4px;display:grid}.summary div{background:var(--bg-deep);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.summary dt{font-family:var(--mono);letter-spacing:.16em;color:var(--faint);margin:0 0 2px;font-size:.54rem}.summary dd{font-family:var(--display);color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.summary__net--up dd{color:var(--accent)}.summary__net--down dd{color:var(--rust)}.chart{margin-top:10px;padding:12px 0}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{font-family:var(--sans);fill:var(--text-h);font-size:12px}.chart__amount{font-family:var(--mono);fill:var(--muted);font-size:10.5px}.chart__empty{text-align:center;color:var(--muted);margin:0;padding:30px 4px;font-size:.9rem}.legend{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:10px;padding-top:14px;display:grid}.legend__group ul{flex-direction:column;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.legend__group li{grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.legend__dot{border-radius:3px;width:10px;height:10px}.legend__name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.legend__amount{font-family:var(--mono);color:var(--muted);font-size:.68rem}.legend__title{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0;font-size:.58rem}.editor{flex-direction:column;gap:10px;display:flex}.editor__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.editor__head h2{font-family:var(--display);color:var(--text-h);margin:0;font-size:1.05rem;font-weight:600}.editor__head .mono{color:var(--accent);font-size:.62rem}.rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{grid-template-columns:22px minmax(0,1fr) 84px 32px 32px;gap:6px;display:grid}.row input{border:1px solid var(--line);background:var(--bg);width:100%;height:42px;color:var(--text-h);font:inherit;border-radius:10px;padding:0 12px;font-size:.92rem}.row input::placeholder{color:var(--faint)}.row input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.row__amount{position:relative}.row__amount input{font-family:var(--mono);text-align:right;padding-left:22px;padding-right:10px;font-size:.84rem}.row__prefix{color:var(--faint);font-family:var(--mono);pointer-events:none;font-size:.78rem;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.row__remove{border:1px solid var(--line);width:32px;height:42px;color:var(--faint);cursor:pointer;background:0 0;border-radius:10px;font-size:1.1rem;line-height:1;transition:border-color .16s,color .16s}.row__remove:hover{border-color:var(--rust);color:var(--rust)}.row__fold{width:22px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.row__fold:hover{color:var(--accent)}.row__fold--ghost{cursor:default}.row__sum{border:1px dashed var(--line);height:42px;font-family:var(--mono);color:var(--accent);border-radius:10px;justify-content:flex-end;align-items:center;padding:0 8px;font-size:.8rem;display:flex}.row__add{border:1px solid var(--line);width:32px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;font-size:1rem;line-height:1;transition:border-color .16s,color .16s}.row__add:hover{border-color:var(--accent);color:var(--accent)}.children{border-left:1px solid var(--line);flex-direction:column;gap:8px;margin:8px 0 0;padding:0 0 0 10px;list-style:none;display:flex}.add{border:1px dashed var(--line);height:42px;color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:10px;font-size:.64rem;transition:border-color .16s}.add:hover{border-color:var(--accent)}.hint{color:var(--muted);margin:0;padding:2px 4px;font-size:.78rem;line-height:1.5}.privacy{color:var(--faint);margin:0;padding:2px 4px;font-size:.78rem;line-height:1.5}.foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;margin-top:26px;padding-top:18px;display:flex}.back{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);font-size:.64rem;text-decoration:none;transition:color .16s}.back:hover{color:var(--text-h)}.foot__actions{gap:16px;display:flex}.linkbtn{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0;font-size:.62rem;transition:color .16s}.linkbtn:hover{color:var(--accent)}.foot__copy{font-family:var(--mono);letter-spacing:.12em;color:var(--faint);font-size:.6rem}.notice{z-index:10;background:var(--surface-2);border:1px solid var(--accent);color:var(--text-h);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:10px 16px;font-size:.64rem;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@media (width>=701px){.chart{padding:8px 88px}.legend{display:none}.row{grid-template-columns:22px minmax(0,1fr) 110px 34px 34px;gap:8px}.row__add,.row__remove{width:34px}}@media (width>=960px){.tool{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);align-items:start;gap:18px}.tool__viz{position:sticky;top:18px}.hero{padding:38px 0 28px}}@media (width<=560px){.hero{padding:24px 0 18px}.foot{flex-direction:column;align-items:flex-start}}
