@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-wght-normal-cHuGMAiY.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-wght-normal-DwHjdM4S.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-wght-normal-ece1310W.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-wght-normal-D-yuW59g.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-wght-normal-CxNHBx-q.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-wght-normal-D9elroTD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f7f4ec;--paper-line:#dcd5c0;--ink:#1e2a22;--ink-soft:#5b6459;--ledger-green:#0f3d2e;--ledger-green-hover:#0b3323;--ledger-green-soft:#e4ebe4;--gold:#b8922f;--red-ink:#9e3b2e;--red-ink-soft:#f5e4e0;--white:#fff;--input-border:#c9c2ac;--serif:"Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--paper);margin:0;padding:0}body{font-family:var(--serif);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--ledger-green)}.figures{font-family:var(--mono);font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.nowrap{white-space:nowrap}.loading{color:var(--ink-soft);max-width:880px;margin:0 auto;padding:28px 20px;font-style:italic}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:880px;margin:0 auto;padding:14px 20px 0;font-size:.85rem;display:flex}.wordmark{letter-spacing:.02em;color:var(--ledger-green);font-weight:600;text-decoration:none}.topbar-controls{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.switcher select{color:var(--ink);background:var(--white);border:1px solid var(--input-border);max-width:280px;padding:5px 8px;font-family:inherit;font-size:.85rem}.topbar-link{font:inherit;color:var(--ledger-green);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.topbar-user{color:var(--ink-soft)}.page{max-width:880px;margin:0 auto;padding:20px 20px 60px}.ledger-header{border-bottom:2px solid var(--ledger-green);margin-bottom:24px;padding-bottom:16px}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:1.65rem;font-weight:600}.period{color:var(--ink-soft);font-size:.95rem}.period .figures{color:var(--ledger-green)}.notice{padding:20px 0}.summary-grid{background:var(--paper-line);border:1px solid var(--paper-line);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:28px;display:grid}.summary-cell{background:var(--white);padding:14px 16px}.summary-label{color:var(--ink-soft);margin-bottom:6px;font-size:.72rem}.summary-value{font-size:1.25rem;font-weight:600}.summary-value.remaining{color:var(--ledger-green)}.summary-value.spent{color:var(--red-ink)}.pace-banner{border-left:3px solid var(--gold);color:var(--ink);background:#fbf6e8;align-items:center;gap:10px;margin-bottom:28px;padding:10px 14px;font-size:.92rem;display:flex}.pace-banner.behind{border-left-color:var(--ledger-green);background:var(--ledger-green-soft)}.pace-banner.ahead{border-left-color:var(--red-ink);background:var(--red-ink-soft)}.chart-wrap{background:var(--white);border:1px solid var(--paper-line);margin-bottom:28px;padding:18px 18px 8px}.chart-title{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.8rem;display:flex}.chart{width:100%;height:auto;display:block}.legend{gap:16px;font-size:.78rem;display:flex}.legend>span{align-items:center;gap:5px;display:flex}.swatch{width:14px;height:3px;display:inline-block}section.entry{background:var(--white);border:1px solid var(--paper-line);margin-bottom:28px;padding:18px}section.entry h2,.config-panel h2{margin:0 0 14px;font-size:1rem;font-weight:600}.entry-form{grid-template-columns:150px 130px 1fr auto;align-items:end;gap:10px;display:grid}.field label{color:var(--ink-soft);margin-bottom:4px;font-size:.72rem;display:block}.field input,.ledger tr.editing input{border:1px solid var(--input-border);background:var(--paper);width:100%;height:36px;color:var(--ink);border-radius:0;padding:0 9px;font-family:inherit;font-size:.9rem}.field input.figures,.ledger tr.editing input.figures{font-family:var(--mono)}.field input:focus-visible,.ledger tr.editing input:focus-visible,.switcher select:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.field-hint{color:var(--ink-soft);margin-top:4px;font-size:.75rem}button{cursor:pointer;border:none;font-family:inherit}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn-primary{background:var(--ledger-green);color:var(--paper);padding:9px 18px;font-size:.88rem;font-weight:600}.btn-primary:hover{background:var(--ledger-green-hover)}.btn-primary:disabled{background:#9aa69c}.btn-small{background:var(--ledger-green);color:var(--paper);padding:6px 12px;font-size:.8rem;font-weight:600}.btn-small:disabled{background:#9aa69c}.btn-link{color:var(--ink-soft);background:0 0;padding:6px 0 6px 10px;font-size:.8rem;text-decoration:underline}.btn-danger-link{color:var(--red-ink);background:0 0;padding:8px 0;font-size:.8rem;text-decoration:underline}.table-scroll{overflow-x:auto}table.ledger{border-collapse:collapse;width:100%;font-size:.88rem}table.ledger th{text-align:left;color:var(--ink-soft);border-bottom:1px solid var(--ink);padding:8px;font-size:.72rem;font-weight:600}table.ledger td{border-bottom:1px solid var(--paper-line);vertical-align:top;padding:9px 8px}table.ledger td.amt,table.ledger th.amt{text-align:right}table.ledger td.negative{color:var(--red-ink)}table.ledger tr:last-child td{border-bottom:none}table.ledger td.actions{white-space:nowrap;text-align:right;width:1%}table.ledger tr.editing td{background:#fbf9f3;padding:7px 6px}table.ledger tr.editing input[type=date]{min-width:140px}table.ledger tr.editing input[type=number]{text-align:right;min-width:100px}.edit-buttons{white-space:nowrap}.inline-error{color:var(--red-ink);margin-top:4px;font-size:.78rem}.row-action{color:var(--ink-soft);background:0 0;padding:2px 6px;font-size:.85rem}.row-action:hover{color:var(--ledger-green)}.row-action.danger:hover{color:var(--red-ink)}.empty-note{color:var(--ink-soft);padding:10px 0;font-size:.88rem;font-style:italic}.footer-row{justify-content:space-between;align-items:center;margin-top:6px;margin-bottom:12px;display:flex}.settings-toggle{color:var(--ink-soft);background:0 0;padding:4px 0;font-size:.78rem;text-decoration:underline}.config-panel{background:var(--white);border:1px solid var(--paper-line);margin-bottom:28px;padding:18px}.config-form{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;display:grid}.config-form .span-all{grid-column:1/-1}.form-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.status-line{color:var(--ink-soft);min-height:1.2em;margin-top:8px;font-size:.8rem}.status-line.error{color:var(--red-ink)}.auth-page{justify-content:center;align-items:flex-start;min-height:100vh;padding:12vh 16px 40px;display:flex}.auth-card{background:var(--white);border:1px solid var(--paper-line);border-top:3px solid var(--ledger-green);width:100%;max-width:400px;padding:28px 28px 20px}.auth-brand{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:.78rem}.auth-card h1{margin-bottom:18px;font-size:1.4rem}.auth-form{gap:14px;display:grid}.auth-form .btn-primary{width:100%;padding:10px 18px}.auth-copy{color:var(--ink);margin:0;font-size:.92rem;line-height:1.45}.auth-links{color:var(--ink-soft);margin:14px 0 0;font-size:.85rem}@media (width<=720px){.summary-grid{grid-template-columns:repeat(2,1fr)}.entry-form{grid-template-columns:1fr 1fr}.entry-form .field:nth-child(3),.entry-form button{grid-column:1/-1}.config-form{grid-template-columns:1fr}.topbar{padding:12px 16px 0}.page{padding:16px 16px 48px}.switcher select{max-width:200px}}.invite-form{grid-template-columns:1fr 1.3fr auto auto;align-items:end;gap:12px;display:grid}.checkbox{cursor:pointer;align-items:center;gap:6px;height:36px;font-size:.88rem;display:flex}.checkbox input{width:16px;height:16px;accent-color:var(--ledger-green)}.users-table td{vertical-align:middle}.users-table td.email{font-family:var(--mono);font-size:.82rem}.users-table .you{color:var(--ink-soft);font-size:.8rem}.user-actions .btn-link{padding:4px 0 4px 12px}.btn-link.danger{color:var(--red-ink)}.btn-link:disabled{opacity:.5}.badge{letter-spacing:.03em;background:var(--ledger-green);color:var(--paper);padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.pill{border:1px solid var(--gold);white-space:nowrap;background:#fbf6e8;padding:2px 8px;font-size:.75rem;display:inline-block}.loading-inline{color:var(--ink-soft);font-style:italic}@media (width<=720px){.invite-form{grid-template-columns:1fr}}
