:root{--bg: #efe7dd;--paper: #f7f1e8;--card: #ffffff;--card-2: #f3ece1;--ink: #2b2521;--ink-2: #7a6f63;--ink-3: #ab9f90;--line: #ece2d3;--gold: #d98b2b;--gold-soft: #f8e7ca;--plus: #3f9e6a;--minus: #d1694f;--teal: #3f9e92;--shadow: 0 1px 2px rgba(60, 42, 20, .05), 0 6px 20px -12px rgba(60, 42, 20, .18);--radius: 20px;--radius-sm: 14px;--font: "Manrope", -apple-system, "Segoe UI", Roboto, sans-serif;--display: "Fraunces", Georgia, serif}@media(prefers-color-scheme:dark){:root:not([data-tg-theme=light]){--bg: #14100d;--paper: #1c1712;--card: #271f18;--card-2: #221b15;--ink: #f1e8dc;--ink-2: #b3a596;--ink-3: #7c6f61;--line: #342a20;--gold: #eaa94e;--gold-soft: #3a2c18;--plus: #67bd82;--minus: #e2896f;--teal: #5cb3a8;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -14px rgba(0, 0, 0, .6)}}:root[data-tg-theme=dark]{--bg: #14100d;--paper: #1c1712;--card: #271f18;--card-2: #221b15;--ink: #f1e8dc;--ink-2: #b3a596;--ink-3: #7c6f61;--line: #342a20;--gold: #eaa94e;--gold-soft: #3a2c18;--plus: #67bd82;--minus: #e2896f;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -14px rgba(0, 0, 0, .6)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font-family:inherit}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.pad{padding:16px 15px 28px;display:flex;flex-direction:column;gap:16px}.pad-s{padding:16px}.muted{color:var(--ink-3);font-size:13px;font-weight:500}.center{text-align:center}.screen-title{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.01em}.empty{text-align:center;color:var(--ink-2);padding:56px 20px;display:flex;flex-direction:column;gap:6px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.sect{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding:2px 4px 0;display:flex;align-items:center;gap:8px}.mini{font-size:11px;font-weight:700;color:var(--gold);text-transform:none;letter-spacing:0}.balance{background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 12%,var(--card)),var(--card) 60%)}.balance .lbl{font-size:13px;color:var(--ink-2);font-weight:600}.balance .big{font-family:var(--display);font-weight:600;font-size:44px;line-height:1.05;letter-spacing:-.02em;margin:4px 0 2px;font-variant-numeric:tabular-nums}.balance .big .cur{font-size:24px;color:var(--ink-3);font-weight:500}.balance .big.over{color:var(--minus)}.balance .big.plus{color:var(--plus)}.barrow{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);font-weight:600;margin-top:10px;font-variant-numeric:tabular-nums}.hero .lbl{font-size:13px;color:var(--ink-2);font-weight:600}.hero-num{font-family:var(--display);font-weight:600;font-size:44px;line-height:1.05;letter-spacing:-.02em;margin:4px 0 2px;font-variant-numeric:tabular-nums}.hero-num.neg{color:var(--minus)}.hero-num .cur{font-size:24px;color:var(--ink-3);font-weight:500}.alloc{display:flex;height:12px;border-radius:99px;overflow:hidden;background:var(--card-2);margin:15px 0 13px;gap:2px}.alloc .s{height:100%}.alloc .s.oblig{background:var(--teal)}.alloc .s.cat{background:var(--gold)}.alloc .s.plan{background:var(--minus)}.alloc .s.free{background:var(--plus)}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}.legend .d{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:middle}.legend .d.oblig{background:var(--teal)}.legend .d.cat{background:var(--gold)}.legend .d.plan{background:var(--minus)}.legend .d.free{background:var(--plus)}.hero-income{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);font-weight:600;font-variant-numeric:tabular-nums}.income-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;background:linear-gradient(150deg,color-mix(in srgb,var(--plus) 13%,var(--card)),var(--card) 65%)}.income-card .ic{font-size:22px}.income-card .a{font-weight:700;font-size:15.5px}.income-card .v{margin-left:auto;font-family:var(--display);font-weight:600;color:var(--plus);font-size:19px;font-variant-numeric:tabular-nums}.chev{color:var(--ink-3);font-size:22px;margin-left:2px;line-height:1}.envs{display:grid;grid-template-columns:1fr 1fr;gap:11px}.env{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:14px;box-shadow:var(--shadow);text-align:left;width:100%;cursor:pointer;transition:transform .08s ease}.env:active{transform:scale(.98)}.env .h{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;margin-bottom:9px}.env .big2{font-family:var(--display);font-size:24px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.env .big2 small{font-family:var(--font);font-size:13px;color:var(--ink-3);font-weight:600}.env .big2.over{color:var(--minus)}.env .cap{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:4px}.bar{height:8px;border-radius:99px;background:var(--card-2);overflow:hidden;margin-top:11px}.bar.sm{height:6px;margin-top:10px}.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),color-mix(in srgb,var(--gold) 55%,var(--minus)));transition:width .3s ease}.bar.warn>i{background:linear-gradient(90deg,var(--gold),var(--minus))}.bar.over>i{background:var(--minus)}.list{display:flex;flex-direction:column;padding:2px 16px}.row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row.tap{cursor:pointer}.row .ic{width:38px;height:38px;border-radius:11px;background:var(--card-2);flex:none;display:flex;align-items:center;justify-content:center;font-size:18px}.row .t{flex:1;min-width:0}.row .t .a{font-weight:600;font-size:14.5px}.row .t .b{font-size:12px;color:var(--ink-3);font-weight:600;margin-top:1px}.amt{font-weight:800;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}.plus{color:var(--plus)}.minus{color:var(--minus)}.add{display:flex;gap:9px}.add input,.miniform input{font:inherit;font-size:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--radius-sm);padding:12px 14px;min-width:0}.add input:focus,.miniform input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.go{flex:none;width:48px;border:0;border-radius:var(--radius-sm);background:var(--gold);color:#3a2606;font-size:24px;font-weight:700;cursor:pointer;line-height:1}.go:disabled{opacity:.5}.go.sm{width:42px;font-size:20px}.addlink{align-self:stretch;border:1.5px dashed color-mix(in srgb,var(--gold) 45%,var(--line));background:none;color:var(--gold);font-weight:700;font-size:13.5px;cursor:pointer;padding:12px;border-radius:var(--radius-sm);text-align:center}.addlink:active{background:var(--gold-soft)}.miniform{display:flex;gap:9px}.miniform input{flex:1}.miniform.tight{margin-top:6px}.checklist{display:flex;flex-direction:column;padding:2px 16px}.check{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}.check:last-child{border-bottom:0}.check .box{width:24px;height:24px;border-radius:8px;border:2px solid var(--ink-3);background:none;flex:none;position:relative;cursor:pointer;padding:0}.check .box.on{background:var(--plus);border-color:var(--plus)}.check .box.on:after{content:"";position:absolute;left:8px;top:3px;width:5px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.check .txt{flex:1;font-size:15px;font-weight:600}.check.gone .txt{color:var(--ink-3);text-decoration:line-through;font-weight:500}.check .plan-amt{font-weight:700;font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.del{border:0;background:none;color:var(--ink-3);font-size:15px;cursor:pointer;padding:5px 6px;line-height:1}.check.editing{gap:8px}.check .ep{font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap}.check .ep-input{flex:1;min-width:0;font:inherit;font-size:16px;border:1px solid var(--gold);background:var(--card);color:var(--ink);border-radius:10px;padding:8px 10px;box-shadow:0 0 0 3px var(--gold-soft)}.check .ep-cur{color:var(--ink-3);font-weight:600}.goal{display:flex;flex-direction:column;gap:9px}.goal-top{display:flex;justify-content:space-between;align-items:baseline}.goal-top .nm{font-weight:700;font-size:15.5px}.goal-top .pc{font-family:var(--display);font-weight:600;color:var(--gold);font-size:17px;font-variant-numeric:tabular-nums}.goal-sub{font-size:12px;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}.who{display:grid;grid-template-columns:1fr 1fr;gap:11px}.who .p{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.who .nm{font-weight:700;font-size:14px;margin-bottom:9px}.who .kv{display:flex;justify-content:space-between;font-size:13px;margin-top:5px;font-variant-numeric:tabular-nums}.who .kv span{color:var(--ink-2);font-weight:600}.envhead{display:flex;align-items:center;gap:4px}.backbtn{border:0;background:none;color:var(--gold);font-size:32px;line-height:1;cursor:pointer;padding:0 6px 0 0}.envhead-t{font-family:var(--display);font-size:23px;font-weight:600;letter-spacing:-.01em}.stat .lbl{font-size:13px;color:var(--ink-2);font-weight:600}.stat .big{font-family:var(--display);font-size:40px;font-weight:600;letter-spacing:-.02em;margin-top:3px;font-variant-numeric:tabular-nums;line-height:1.05}.stat .big .cur{font-size:22px;color:var(--ink-3);font-weight:500}.stat .big.over{color:var(--minus)}.stat .big.plus{color:var(--plus)}.stat .barrow{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);font-weight:600;margin-top:10px}.stat.income{background:linear-gradient(150deg,color-mix(in srgb,var(--plus) 14%,var(--card)),var(--card) 65%)}.tabbar{flex:none;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:7px 6px calc(7px + env(safe-area-inset-bottom))}.tab{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0;color:var(--ink-3);cursor:pointer;border-radius:12px}.tab .ic{font-size:21px;filter:grayscale(1);opacity:.55;transition:all .15s ease}.tab .lb{font-size:10.5px;font-weight:700}.tab.on{color:var(--gold)}.tab.on .ic{filter:none;opacity:1;transform:translateY(-1px)}
