:root{--bg:#f5f5f2;--surface:#fff;--ink:#18181b;--ink-2:#52525b;--ink-3:#8a8a93;--line:#e4e4df;--line-2:#efefea;--accent:#15803d;--accent-ink:#fff;--pos:#15803d;--neg:#b42318;--neg-bg:#fdf1ef;--warn:#9a6700;--chart-line:#18181b;--chart-fill:#18181b0f;--chart-neg-fill:#b423181a;--radius:10px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111112;--surface:#1a1a1c;--ink:#ececee;--ink-2:#a8a8b0;--ink-3:#75757e;--line:#2b2b2f;--line-2:#232326;--accent:#22a355;--pos:#4ade80;--neg:#f87168;--neg-bg:#2a1614;--warn:#e3b341;--chart-line:#ececee;--chart-fill:#ececee0f;--chart-neg-fill:#f8716824;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:17px}h2{font-size:15px}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--ink-3)}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.small{font-size:13px}.strong{font-weight:600}.app{max-width:960px;padding:0 16px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.top{padding:calc(12px + env(safe-area-inset-top)) 0 12px;z-index:5;background:var(--bg);align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.logo{background:var(--accent);color:#fff;letter-spacing:.02em;border-radius:7px;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-grid}.logo.big{border-radius:12px;width:52px;height:52px;font-size:20px}.tabs{background:var(--line-2);border-radius:9px;gap:2px;margin-left:auto;padding:3px;display:flex}.tabs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:7px;padding:5px 12px;font-weight:500}.tabs button[aria-current=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.tabs .count{color:var(--ink-3);margin-left:2px;font-size:12px}.user{font-size:13px}main{flex-direction:column;gap:14px;display:flex}.btn-primary,.btn-ghost,.btn-danger{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:disabled{opacity:.45;cursor:default}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-danger{border-color:var(--line);color:var(--neg);background:0 0;margin-right:auto}.btn-text{color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:14px;text-decoration:none}.btn-text:hover{color:var(--ink);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.quick-form{align-items:flex-start;gap:8px;display:flex}.quick-form textarea{resize:none;border:1px solid var(--line);background:var(--surface);border-radius:8px;outline:none;flex:1;min-height:38px;max-height:160px;padding:8px 12px;line-height:20px}.quick-form textarea:focus{border-color:var(--ink-3)}.quick{border-radius:var(--radius)}.quick.dragging{outline:2px dashed var(--ink-3);outline-offset:6px}.quick-tools{align-items:center;gap:2px;margin:4px 0 0 -6px;display:flex}.quick-tools .btn-text{font-size:13.5px}.quick-tools .sep{color:var(--ink-3)}.file-chip{background:var(--surface);border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:6px 6px 6px 10px;font-size:13.5px;display:flex}.file-kind{color:var(--ink-2);background:var(--line-2);border-radius:4px;padding:1px 6px;font-size:11.5px;font-weight:600}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.hint{color:var(--ink-3);margin:6px 2px 0;font-size:13px}.notice{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-top:8px;padding:10px 12px;font-size:14px}.notice p{margin:0}.notice p+p{margin-top:4px}.drafts{background:var(--surface);border:1px solid var(--ink-3);border-radius:var(--radius);margin-top:8px}.drafts-head{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:10px 14px;font-size:14px;display:flex}.drafts ul{margin:0;padding:0;list-style:none}.drafts .row{flex-wrap:wrap}.drafts-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.row-actions{gap:2px;width:100%;margin:-4px 0 0 -6px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.card.flush{padding:0;overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.card-head.pad{margin-bottom:4px;padding:12px 14px 0}.caption{color:var(--ink-3);margin:8px 0 0;font-size:12.5px}.muted-card{opacity:.75}.stats{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.stats.three{grid-template-columns:repeat(3,1fr)}.stat{background:var(--surface);text-align:left;border:0;min-width:0;padding:12px 14px}.stat-label{color:var(--ink-2);align-items:baseline;gap:6px;font-size:12.5px;display:flex}.stat-value{letter-spacing:-.02em;text-overflow:ellipsis;margin-top:2px;font-size:21px;font-weight:600;overflow:hidden}.stat-sub{color:var(--ink-3);margin-top:1px;font-size:12.5px}.stat-btn{cursor:pointer}.stat-btn:hover .edit-hint{text-decoration:underline}.edit-hint{color:var(--ink-3);font-size:12px}.stat-edit .inline{margin-top:4px}.stat-edit input{border:1px solid var(--line);background:var(--bg);border-radius:7px;width:100%;min-width:0;height:34px;padding:0 10px}.stat-edit .btn-primary{height:34px}.alert{background:var(--neg-bg);color:var(--neg);border-radius:8px;margin:0;padding:10px 14px;font-size:14px}.seg{background:var(--line-2);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:6px;padding:5px 12px;font-weight:500}.seg button[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.seg.small button{padding:3px 10px;font-size:13px}.chart{margin:0 -4px;position:relative}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--line-2);stroke-width:1px}.chart .axis-zero{stroke:var(--ink-3);stroke-width:1px}.chart .tick{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.chart .line{fill:none;stroke:var(--chart-line);stroke-width:2px;stroke-linejoin:round}.chart .line-neg{fill:none;stroke:var(--neg);stroke-width:2px;stroke-linejoin:round}.chart .area{fill:var(--chart-fill)}.chart .area-neg{fill:var(--chart-neg-fill)}.chart .today{stroke:var(--ink-3);stroke-dasharray:2 3}.chart .crosshair{stroke:var(--ink-3)}.chart .dot{fill:var(--chart-line);stroke:var(--surface);stroke-width:2px}.chart .dot-neg{fill:var(--neg);stroke:var(--surface);stroke-width:2px}.tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:8px;width:180px;padding:8px 10px;font-size:12.5px;position:absolute;top:4px;box-shadow:0 4px 16px #00000014}.tt-date{color:var(--ink-3)}.tt-bal{margin-bottom:2px;font-size:16px;font-weight:600}.tt-row{color:var(--ink-2);justify-content:space-between;gap:8px;display:flex}.tt-row span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tt-more{color:var(--ink-3)}.months{border-collapse:collapse;width:100%}.months th{color:var(--ink-3);text-align:right;border-bottom:1px solid var(--line);padding:10px 14px 8px;font-size:12px;font-weight:500}.months th:first-child,.months td:first-child{text-align:left}.months td{border-bottom:1px solid var(--line-2);text-align:right;padding:10px 14px}.months tbody tr:last-child td{border-bottom:0}.mrow{cursor:pointer}.mrow td:first-child{white-space:nowrap}.mrow:hover td{background:var(--bg)}.chev{width:14px;color:var(--ink-3);transition:transform .15s;display:inline-block}.mrow.open .chev{transform:rotate(90deg)}.mrow.open td{border-bottom-color:#0000}.mdetail td{text-align:left;background:var(--surface);padding:0 14px 12px 32px}.occ{margin:0;padding:0;font-size:14px;list-style:none}.occ li{border-top:1px dashed var(--line-2);cursor:pointer;grid-template-columns:56px 1fr auto;gap:10px;padding:5px 0;display:grid}.occ li:first-child{border-top:0}.occ li.done{color:var(--ink-3)}.occ li.done .pos{color:inherit}.occ-date{color:var(--ink-3)}.mdetail-sum{color:var(--ink-2);gap:16px;padding-bottom:6px;font-size:13px;display:none}.list{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line-2);align-items:flex-start;gap:12px;padding:11px 14px;display:flex}.card .list .row:first-child{border-top:0}.row.clickable,.list .row{cursor:pointer}.row:hover{background:var(--bg)}.row-main{flex:1;min-width:0}.row-title{font-weight:500}.row-sub{color:var(--ink-3);font-size:13px}.row-amount{text-align:right;font-weight:600}.row-amount .row-sub{font-weight:400}.tag{color:var(--ink-2);background:var(--line-2);border-radius:4px;margin-left:4px;padding:1px 6px;font-size:11.5px;font-weight:500}.empty{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.empty ol{color:var(--ink-2);padding-left:20px}.empty .stat-edit{max-width:360px;padding:0}.login{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.login p{max-width:320px;margin:0 0 8px}.boot{place-items:center;min-height:100dvh;display:grid}.error{color:var(--neg);margin:0;font-size:14px}.sheet{border:1px solid var(--line);background:var(--surface);width:min(520px,100%);max-height:min(92dvh,760px);color:var(--ink);border-radius:14px;padding:0}.sheet::backdrop{background:#00000059}.sheet form{flex-direction:column;gap:14px;padding:16px;display:flex}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-foot{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{border:0;flex-direction:column;gap:5px;min-width:0;margin:0;padding:0;display:flex}.field>span,.field>label{color:var(--ink-2);font-size:12.5px;font-weight:500}.field input,.field select{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:100%;min-width:0;height:38px;padding:0 10px}.field input:focus,.field select:focus{border-color:var(--ink-3);outline:none}.inline{align-items:center;gap:8px;display:flex}.short{max-width:72px}.field .seg{align-self:flex-start}.show-sm{display:none}@media (width<=640px){.app{padding:0 12px calc(24px + env(safe-area-inset-bottom))}.top h1{display:none}.stats{grid-template-columns:1fr 1fr}.stats.three{grid-template-columns:1fr 1fr 1fr}.stats.three .stat-value{font-size:16px}.stat-value{font-size:19px}.hide-sm{display:none}.mdetail-sum.show-sm{display:flex}.mdetail td{padding-left:14px}.months td,.months th{padding-left:12px;padding-right:12px}.months{font-size:14px}.sheet{width:100%;max-width:100%;padding-bottom:env(safe-area-inset-bottom);border-radius:14px 14px 0 0;margin:auto 0 0}}.amount-input{display:flex}.amount-input input{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.field .amount-input select{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;flex:none;width:auto;padding:0 6px}.fx-note{color:var(--ink-3);margin:-6px 0 0;font-size:12.5px}.fx-note b{color:var(--ink-2);font-weight:600}.row.draft{flex-wrap:wrap}.row.draft>input[type=checkbox]{width:18px;height:18px;accent-color:var(--ink);flex:none;margin:2px 0 0}.row.draft.off .row-title,.row.draft.off .row-sub:not(.warn),.row.draft.off .row-amount{opacity:.5}.row.draft .row-actions{margin-left:24px}.drafts-foot .spacer{flex:1}.drafts-foot{align-items:center}
