:root{--ground:#f1eae0;--surface:#fbf7f0;--surface-2:#ece2d2;--ink:#2c2820;--ink-soft:#726a58;--ink-faint:#9a9080;--line:#ddd0b9;--line-soft:#e7dcc9;--accent:#3c4a38;--accent-ink:#fbf7f0;--accent-soft:#dbe2d5;--accent-soft-ink:#2f3a2c;--credit:#3c4a38;--debit:#9c5a3c;--warn-soft:#f0e2c4;--warn-ink:#7a5a1e;--danger:#a33a2a;--danger-soft:#f4ddd6;--danger-ink:#7d2b1e;--focus:#3c4a38;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Karla", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:.72rem;--text-sm:.82rem;--text-base:.92rem;--text-md:1rem;--text-lg:1.15rem;--text-xl:1.45rem;--text-2xl:1.9rem;--text-3xl:2.6rem;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.55;--tracking-label:.13em;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.4rem;--space-6:1.9rem;--space-7:2.5rem;--space-8:3.5rem;--radius-sm:4px;--radius-md:6px;--radius-pill:999px;--border-width:1px;--shadow-card:none;--shadow-raised:0 8px 24px -16px #2c282066;--card-radius:var(--radius-md);--card-border:var(--border-width) solid var(--line);--card-shadow:var(--shadow-card);--card-padding:var(--space-5);--button-radius:var(--radius-sm);--button-padding-y:.55rem;--button-padding-x:1.05rem;--button-weight:var(--weight-semibold);--field-radius:var(--radius-sm);--field-border:var(--border-width) solid var(--line);--page-max:72rem;--reading-max:30rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#1c1e17;--surface:#25281f;--surface-2:#2e3126;--ink:#ece4d4;--ink-soft:#ada38c;--ink-faint:#837a67;--line:#3b3e2f;--line-soft:#33362a;--accent:#8ba883;--accent-ink:#1c1e17;--accent-soft:#2f3a2c;--accent-soft-ink:#b7cbb0;--credit:#8ba883;--debit:#d08b68;--warn-soft:#3a3222;--warn-ink:#d8bd82;--danger:#e08a76;--danger-soft:#3d2620;--danger-ink:#f0b3a3;--focus:#8ba883;--shadow-raised:0 8px 24px -16px #000000b3}}:root[data-theme=dark]{--ground:#1c1e17;--surface:#25281f;--surface-2:#2e3126;--ink:#ece4d4;--ink-soft:#ada38c;--ink-faint:#837a67;--line:#3b3e2f;--line-soft:#33362a;--accent:#8ba883;--accent-ink:#1c1e17;--accent-soft:#2f3a2c;--accent-soft-ink:#b7cbb0;--credit:#8ba883;--debit:#d08b68;--warn-soft:#3a3222;--warn-ink:#d8bd82;--danger:#e08a76;--danger-soft:#3d2620;--danger-ink:#f0b3a3;--focus:#8ba883;--shadow-raised:0 8px 24px -16px #000000b3}@font-face{font-family:Fraunces;src:url(../../../fonts/fraunces-latin-var.woff2)format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Karla;src:url(../../../fonts/karla-latin-var.woff2)format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.page{max-width:var(--page-max);padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.page-narrow{max-width:var(--reading-max)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-lg{gap:var(--space-6);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);line-height:1}.page-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);text-wrap:balance}.section-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);padding-bottom:var(--space-2);border-bottom:2px solid var(--ink);line-height:1}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.figure{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:1}.num{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--card-padding)}.empty{gap:var(--space-1);padding:var(--space-4);border:var(--border-width) dashed var(--line);border-radius:var(--radius-sm);background:var(--ground);flex-direction:column;display:flex}.empty-title{font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.empty-body{font-size:var(--text-sm);color:var(--ink-soft);line-height:var(--leading-snug)}.ledger-row{gap:var(--space-1);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--line-soft);flex-direction:column;display:flex}.ledger-row:last-child{border-bottom:none}.ledger-top,.ledger-bottom{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.ledger-label{font-weight:var(--weight-medium);line-height:var(--leading-snug);flex:1}.ledger-meta{font-size:var(--text-sm);color:var(--ink-faint);white-space:nowrap}.ledger-amount{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.is-credit{color:var(--credit)}.is-debit{color:var(--debit)}.ledger-pagination{justify-content:center;align-items:center;gap:var(--space-3);padding-top:var(--space-3);display:flex}.btn{appearance:none;justify-content:center;align-items:center;gap:var(--space-2);border:var(--border-width) solid transparent;border-radius:var(--button-radius);padding:var(--button-padding-y) var(--button-padding-x);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--button-weight);background:var(--accent);color:var(--accent-ink);cursor:pointer;line-height:1;transition:opacity .15s;display:inline-flex}.btn:hover:not(:disabled){opacity:.88}.btn:disabled{background:var(--surface-2);color:var(--ink-faint);cursor:not-allowed}.btn-quiet{color:var(--accent);border-color:var(--line);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--surface-2);opacity:1}.icon-btn{appearance:none;border-radius:var(--radius-pill);width:2.2rem;height:2.2rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:1.25rem;height:1.25rem}.btn-link{appearance:none;font-family:var(--font-body);font-size:var(--text-sm);color:var(--accent);text-underline-offset:.15em;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:disabled{color:var(--ink-faint);cursor:not-allowed}label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);display:block}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=search],input[type=password],input[type=date],input[type=datetime-local],input[type=time],select,textarea{width:100%;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-snug);color:var(--ink);background:var(--ground);border:var(--field-border);border-radius:var(--field-radius);padding:.55rem .65rem}textarea{resize:vertical;min-height:6rem}input[type=search]{appearance:none}fieldset{border:none;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);padding:0}.field{gap:var(--space-2);flex-direction:column;display:flex}.field-hint{font-size:var(--text-sm);color:var(--ink-soft);line-height:var(--leading-snug)}.choice{align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:var(--weight-normal);letter-spacing:normal;text-transform:none;color:var(--ink);cursor:pointer;display:flex}.choice input{width:auto;accent-color:var(--accent);margin:0}.header-bar{align-items:center;gap:var(--space-3);margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-4)) var(--space-4);padding:var(--space-3) var(--space-4);display:flex}.tile{align-items:center;gap:var(--space-4);color:var(--ink);text-decoration:none;transition:opacity .15s;display:flex}.tile:hover{opacity:.85}.tile-icon{border-radius:var(--radius-sm);background:var(--accent);width:2.2rem;height:2.2rem;color:var(--accent-ink);font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-md);flex:none;justify-content:center;align-items:center;display:flex}.tile-body{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.tile-name{font-weight:var(--weight-semibold)}.tile-chevron{color:var(--ink-faint);flex:none}.chip{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);white-space:nowrap;background:var(--accent-soft);color:var(--accent-soft-ink);padding:.3rem .5rem;line-height:1;display:inline-block}.chip-warn{background:var(--warn-soft);color:var(--warn-ink)}[role=alert]{color:var(--danger-ink);background:var(--danger-soft);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-snug)}[role=status]{color:var(--accent-soft-ink);background:var(--accent-soft);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-snug)}.toggle{appearance:none;border-radius:var(--radius-pill);background:var(--surface-2);cursor:pointer;border:none;flex:none;width:2.6rem;height:1.5rem;transition:background .2s;position:relative}.toggle:after{content:"";background:var(--ink-faint);border-radius:50%;width:1.14rem;height:1.14rem;transition:transform .2s,background .2s;position:absolute;top:.18rem;left:.18rem}.toggle[aria-checked=true]{background:var(--accent-soft)}.toggle[aria-checked=true]:after{background:var(--accent);transform:translate(1.1rem)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
