:root{--ink: #101c18;--ink-soft: #3f514a;--ink-faint: #55635b;--ground: #f5f6f3;--surface: #ffffff;--sunk: #edf0ea;--rule: #c6cfc2;--rule-soft: #dfe5da;--accent: #1d6b55;--accent-dim: #e3ede8;--accent-ink: #ffffff;--amber: #7d570f;--amber-dim: #f5eedd;--red: #9e3728;--red-dim: #f6e6e2;--blue: #2a5878;--blue-dim: #e4ebf1;--f-display: "Newsreader", Georgia, serif;--f-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--disabled: #8c968f;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ink: #e5eae4;--ink-soft: #afbcb4;--ink-faint: #8c9a92;--ground: #0e1614;--surface: #17211e;--sunk: #131c1a;--rule: #3a4a45;--rule-soft: #2b3733;--accent: #6fc0a5;--accent-dim: #16302a;--accent-ink: #0e1614;--amber: #d8a94e;--amber-dim: #2e2617;--red: #e08573;--red-dim: #33201c;--blue: #8fb6d4;--blue-dim: #1a2732;--disabled: #6d7a73;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}.app{max-width:660px;margin:0 auto;padding:0 calc(16px + env(safe-area-inset-right)) 72px calc(16px + env(safe-area-inset-left))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(22px + env(safe-area-inset-top)) 0 12px}.brand{font-family:var(--f-display);font-size:21px;font-weight:600;letter-spacing:-.01em}.whoami{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.whoami button{background:none;border:0;color:var(--ink-faint);font:inherit;cursor:pointer;text-decoration:underline;padding:12px 0 12px 10px;min-height:44px}.tabs{display:flex;gap:2px;background:var(--sunk);border:1px solid var(--rule);border-radius:6px;padding:3px;margin-bottom:16px}.tabs button{flex:1;font-family:var(--f-body);font-size:14px;font-weight:600;padding:11px 4px;min-height:44px;border:0;background:transparent;color:var(--ink-faint);border-radius:4px;cursor:pointer}.tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000f}.balance{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:22px;text-align:center}.balance .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.balance .amt{font-family:var(--f-display);font-size:clamp(38px,11vw,54px);font-weight:600;letter-spacing:-.02em;line-height:1.05;margin:8px 0 2px;font-variant-numeric:tabular-nums}.balance .dir{font-size:15px;color:var(--ink-soft)}.balance .dir b{font-weight:600;color:var(--ink)}.balance.zero .amt{color:var(--accent)}.chip{display:inline-block;margin-top:12px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;background:var(--accent-dim);color:var(--accent);padding:4px 10px;border-radius:999px}.monthnav{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 0 0}.monthnav button{width:44px;height:44px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft);border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.monthnav button:disabled{color:var(--disabled);border-color:var(--rule-soft);cursor:default}.monthnav .m{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;min-width:120px;text-align:center;color:var(--ink-soft)}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.split .p{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:14px 16px}.split .p .n{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.split .p .row{display:flex;justify-content:space-between;font-size:13.5px;margin-top:6px;color:var(--ink-soft)}.split .p .row span:last-child{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.split .p .row.net{border-top:1px solid var(--rule-soft);margin-top:8px;padding-top:6px;font-weight:600}.split .p .row.net.owes span:last-child{color:var(--red)}.split .p .row.net.due span:last-child{color:var(--accent)}.totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px;margin-top:8px}.totals .t{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:12px 14px}.totals .t .n{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.totals .t .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;margin-top:4px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.totals .t.lead{background:var(--accent-dim);border-color:var(--accent)}.totals .t.lead .n,.totals .t.lead .v,.totals .t .v.in{color:var(--accent)}.btn{font-family:var(--f-body);font-size:15px;font-weight:600;padding:12px 18px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;width:100%}.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--rule)}.btn.sm{font-size:14px;padding:12px 14px;min-height:44px}.btn:disabled{background:var(--sunk);border-color:var(--rule);color:var(--disabled);cursor:default}.actions{margin-top:12px;display:grid;gap:8px}:where(button,input,select,textarea,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2.sec{font-family:var(--f-body);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:30px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:12px;align-items:baseline}h2.sec .rt{font-family:var(--f-mono);letter-spacing:.04em;text-transform:none;color:var(--ink-faint)}form.card,.panel{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:16px;display:grid;gap:10px}.f2{display:grid;grid-template-columns:1fr 120px;gap:10px}.f2e{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}input,select,textarea{width:100%;font-family:var(--f-body);font-size:16px;padding:10px 12px;border:1px solid var(--rule);border-radius:5px;background:var(--ground);color:var(--ink)}input[type=number]{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1 1 auto;min-width:0;font-family:var(--f-body);font-size:14px;font-weight:500;padding:12px 8px;min-height:44px;border:1px solid var(--rule);background:var(--ground);color:var(--ink-soft);border-radius:5px;cursor:pointer;white-space:nowrap}.seg button[aria-pressed=true]{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}ul.rows{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--rule);border-radius:6px;overflow:hidden}ul.rows li{border-bottom:1px solid var(--rule-soft)}ul.rows li:last-child{border-bottom:0}ul.rows li.open{background:var(--sunk)}.tap{display:flex;align-items:center;gap:10px;padding:12px 14px;width:100%;text-align:left;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer}.tap:disabled{cursor:default}.rowmain{flex:1;min-width:0}.rowmain .d{font-weight:500;font-size:15px;display:flex;align-items:baseline;gap:0;min-width:0}.rowmain .d>.label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowmain .m{font-family:var(--f-mono);font-size:11px;color:var(--ink-faint);letter-spacing:.03em;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowamt{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500;white-space:nowrap}.rowamt.in{color:var(--accent)}li.unver{background:color-mix(in srgb,var(--amber-dim) 40%,transparent)}li.unver .rowamt{color:var(--ink-soft)}.tag{display:inline-block;flex:0 0 auto;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:1px;white-space:nowrap}.tag.who{background:var(--amber-dim);color:var(--amber)}.tag.var{background:var(--red-dim);color:var(--red)}.tag.car,.tag.one{background:var(--rule-soft);color:var(--ink-faint)}.tag.sc{background:var(--blue-dim);color:var(--blue)}.ok{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);border-radius:5px;cursor:pointer;font-size:14px;line-height:1;font-weight:700}.editor{padding:0 14px 16px;display:grid;gap:10px;border-top:1px solid var(--rule)}.editor .del{background:transparent;border:1px solid var(--red);color:var(--red);font-weight:600;font-size:14px;padding:12px;min-height:44px;border-radius:5px;cursor:pointer}.empty{text-align:center;padding:32px 20px;color:var(--ink-faint);font-size:14px;background:var(--surface);border:1px dashed var(--rule);border-radius:6px}.hint{font-size:12.5px;color:var(--ink-faint);line-height:1.45;margin:0}.trend{display:flex;align-items:flex-end;gap:6px;height:146px;background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:14px}.trend .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%}.trend .val{font-family:var(--f-mono);font-size:10px;letter-spacing:.02em;color:var(--ink-faint);min-height:14px}.trend .col.cur .val{color:var(--ink)}.trend .stack{width:100%;max-width:24px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;flex:1}.trend .bar{width:100%;background:color-mix(in srgb,var(--accent) 45%,transparent);min-height:3px}.trend .stack .bar:first-child{border-radius:4px 4px 0 0}.trend .col.cur .bar{background:var(--accent)}.trend .bar.one{background:color-mix(in srgb,var(--amber) 55%,transparent)}.trend .col.cur .bar.one{background:var(--amber)}.trend .lbl{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.legend{display:flex;gap:16px;justify-content:center;margin-top:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}table.tt{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface);border:1px solid var(--rule);border-radius:6px;overflow:hidden}table.tt td{padding:10px 14px;border-bottom:1px solid var(--rule-soft)}table.tt tr:last-child td{border-bottom:0}table.tt td:last-child{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}table.tt tr.tot td{font-weight:600;border-top:1px solid var(--rule);background:var(--sunk)}.pl{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:16px;margin-bottom:10px}.pl h3{font-family:var(--f-display);font-size:18px;font-weight:600;margin:0 0 10px}.pl .r{display:flex;justify-content:space-between;font-size:14px;color:var(--ink-soft);margin-top:5px}.pl .r span:last-child{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.pl .r.net{border-top:1px solid var(--rule);margin-top:9px;padding-top:8px;font-weight:600}.pl .r.net.pos span:last-child{color:var(--accent)}.pl .r.net.neg span:last-child{color:var(--red)}.notice{border-radius:6px;padding:12px 14px;font-size:13.5px;margin-top:12px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft)}.notice.warn{background:var(--amber-dim);border-color:var(--amber);color:var(--amber)}.notice.bad{background:var(--red-dim);border-color:var(--red);color:var(--red)}.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--ground);font-size:13.5px;padding:10px 18px;border-radius:999px;box-shadow:0 6px 24px -8px #0006;z-index:50;max-width:90vw;text-align:center;pointer-events:none;display:flex;align-items:center;gap:10px}.toast.bad{background:var(--red);color:#fff;pointer-events:auto}.toast-x{background:none;border:0;color:inherit;font-size:18px;line-height:1;cursor:pointer;padding:4px 2px}.foot{margin-top:30px;padding-top:14px;border-top:1px solid var(--rule);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.05em;color:var(--ink-faint);text-align:center}.signin{max-width:420px;margin:0 auto;padding:15vh 20px 40px}.signin h1{font-family:var(--f-display);font-size:34px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.signin p.sub{color:var(--ink-soft);margin:0 0 24px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.or{display:flex;align-items:center;gap:12px;color:var(--ink-faint);font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--rule)}.linkish{background:none;border:0;padding:12px 4px;min-height:44px;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.prompt{background:var(--accent-dim);border:1px solid var(--accent);border-radius:6px;padding:14px 16px;margin-top:12px}.prompt .ph{font-family:var(--f-display);font-size:17px;font-weight:600;color:var(--accent);margin:0}.prompt .pb{font-size:14px;color:var(--ink-soft);margin:4px 0 0;line-height:1.5}details.summary{margin-top:30px;border-top:1px solid var(--rule)}details.summary>summary{cursor:pointer;list-style:none;font-family:var(--f-body);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:16px 0;min-height:44px;display:flex;align-items:center;gap:8px}details.summary>summary::-webkit-details-marker{display:none}details.summary>summary:after{content:"▾";font-size:10px}details.summary[open]>summary:after{content:"▴"}details.summary>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details.summary h2.sec:first-of-type{margin-top:0}
