:root{--ff-color-bg:#f6f7f5;--ff-color-surface:#fff;--ff-color-sunken:#eef0ec;--ff-color-border:#e7e9e5;--ff-color-text:#1a1d1a;--ff-color-text-muted:#6b6f6a;--ff-color-accent:#2e7d32;--ff-color-accent-hover:#26692a;--ff-color-accent-contrast:#fff;--ff-color-danger:#c4463a;--ff-color-danger-contrast:#fff;--ff-color-success:#2e7d32;--ff-color-accent-tint:#e6efe6;--ff-color-danger-tint:#f8e9e7;--ff-color-focus-ring:color-mix(in srgb, var(--ff-color-accent) 25%, transparent);--ff-color-danger-focus-ring:color-mix(in srgb, var(--ff-color-danger) 25%, transparent);--ff-color-border-strong:color-mix(in srgb, var(--ff-color-text-muted) 45%, var(--ff-color-border));--ff-color-bg-raised:var(--ff-color-sunken);--ff-control-height:2.75rem;--ff-transition-fast:.14s cubic-bezier(.4, 0, .2, 1);--ff-space-1:.25rem;--ff-space-2:.5rem;--ff-space-3:.75rem;--ff-space-4:1rem;--ff-space-6:1.5rem;--ff-space-8:2rem;--ff-radius-sm:.625rem;--ff-radius-md:.875rem;--ff-radius-lg:1.25rem;--ff-radius-pill:999px;--ff-shadow-sm:0 1px 2px #141e140d;--ff-shadow-md:0 4px 12px #141e1414;--ff-shadow-lg:0 12px 32px #141e1424;--ff-font-sans:var(--font-hanken-grotesk), "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--ff-font-mono:var(--font-ibm-plex-mono), "IBM Plex Mono", ui-monospace, monospace;--ff-font-size-caption:.8125rem;--ff-font-size-sm:.8125rem;--ff-font-size-md:.9375rem;--ff-font-size-lg:1.125rem;--ff-font-size-title:1.5rem;--ff-font-size-display:2.125rem}@media (prefers-color-scheme:dark){:root{--ff-color-bg:#101312;--ff-color-surface:#191d1b;--ff-color-sunken:#22271f;--ff-color-border:#2a2f2c;--ff-color-text:#ecefea;--ff-color-text-muted:#9aa09a;--ff-color-accent:#4caf6d;--ff-color-accent-hover:#5fc07e;--ff-color-accent-contrast:#06210d;--ff-color-danger:#e5776b;--ff-color-danger-contrast:#2b0a06;--ff-color-success:#4caf6d;--ff-color-accent-tint:#213428;--ff-color-danger-tint:#3a2b28;--ff-color-bg-raised:var(--ff-color-sunken);--ff-shadow-sm:0 1px 2px #0000004d;--ff-shadow-md:0 4px 12px #00000059;--ff-shadow-lg:0 12px 32px #00000073}}:root[data-theme=light]{--ff-color-bg:#f6f7f5;--ff-color-surface:#fff;--ff-color-sunken:#eef0ec;--ff-color-border:#e7e9e5;--ff-color-text:#1a1d1a;--ff-color-text-muted:#6b6f6a;--ff-color-accent:#2e7d32;--ff-color-accent-hover:#26692a;--ff-color-accent-contrast:#fff;--ff-color-danger:#c4463a;--ff-color-danger-contrast:#fff;--ff-color-success:#2e7d32;--ff-color-accent-tint:#e6efe6;--ff-color-danger-tint:#f8e9e7;--ff-color-bg-raised:var(--ff-color-sunken);--ff-shadow-sm:0 1px 2px #141e140d;--ff-shadow-md:0 4px 12px #141e1414;--ff-shadow-lg:0 12px 32px #141e1424}:root[data-theme=dark]{--ff-color-bg:#101312;--ff-color-surface:#191d1b;--ff-color-sunken:#22271f;--ff-color-border:#2a2f2c;--ff-color-text:#ecefea;--ff-color-text-muted:#9aa09a;--ff-color-accent:#4caf6d;--ff-color-accent-hover:#5fc07e;--ff-color-accent-contrast:#06210d;--ff-color-danger:#e5776b;--ff-color-danger-contrast:#2b0a06;--ff-color-success:#4caf6d;--ff-color-accent-tint:#213428;--ff-color-danger-tint:#3a2b28;--ff-color-bg-raised:var(--ff-color-sunken);--ff-shadow-sm:0 1px 2px #0000004d;--ff-shadow-md:0 4px 12px #00000059;--ff-shadow-lg:0 12px 32px #00000073}
.ff-money-input{font-family:var(--ff-font-sans);font-size:var(--ff-font-size-md);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ff-color-text);background-color:var(--ff-color-surface);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);min-block-size:var(--ff-control-height);padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);text-align:end;transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast)}.ff-money-input:hover:not(:disabled,:focus-visible){border-color:var(--ff-color-border-strong)}.ff-money-input:focus-visible{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-money-input::placeholder{color:var(--ff-color-text-muted);opacity:.7}.ff-empty-state{text-align:center;padding-block:var(--ff-space-8);padding-inline:var(--ff-space-4);color:var(--ff-color-text-muted);flex-direction:column;align-items:center;display:flex}.ff-empty-state__icon{font-size:var(--ff-font-size-lg);margin-block-end:var(--ff-space-2)}.ff-empty-state__title{color:var(--ff-color-text);font-size:var(--ff-font-size-md);margin-block-end:var(--ff-space-1);font-weight:600}.ff-empty-state__description{font-size:var(--ff-font-size-sm);margin-block-end:var(--ff-space-4)}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk Fallback;src:local(Arial);ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.0%;size-adjust:100.94%}.hanken_grotesk_a97b70a8-module__cyhvbW__className{font-family:Hanken Grotesk,Hanken Grotesk Fallback;font-style:normal}.hanken_grotesk_a97b70a8-module__cyhvbW__variable{--font-hanken-grotesk:"Hanken Grotesk", "Hanken Grotesk Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.40sczeszzbjw1.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_c7d8cc32-module__U1BAtG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_c7d8cc32-module__U1BAtG__variable{--font-ibm-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
*{box-sizing:border-box}body{background-color:var(--ff-color-bg);color:var(--ff-color-text);font-family:var(--ff-font-sans);font-size:var(--ff-font-size-md);accent-color:var(--ff-color-accent);-webkit-font-smoothing:antialiased;margin:0}::selection{background-color:var(--ff-color-focus-ring)}a{color:inherit;text-decoration:none}.ff-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.ff-app{flex-direction:column;min-block-size:100vh;display:flex}.ff-app__main{inline-size:100%;max-inline-size:72rem;padding-inline:var(--ff-space-6);padding-block:var(--ff-space-6);flex:1;margin-inline:auto}.ff-page{gap:var(--ff-space-6);flex-direction:column;display:flex}.ff-page>h1{font-size:var(--ff-font-size-title);letter-spacing:-.01em;margin:0;font-weight:700}.ff-btn{justify-content:center;align-items:center;gap:var(--ff-space-2);min-block-size:2.5rem;padding-block:var(--ff-space-2);padding-inline:var(--ff-space-4);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-md);background-color:var(--ff-color-surface);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-sm);cursor:pointer;transition:background-color var(--ff-transition-fast), border-color var(--ff-transition-fast), color var(--ff-transition-fast), box-shadow var(--ff-transition-fast), transform var(--ff-transition-fast);font-weight:600;display:inline-flex}.ff-btn:hover:not(:disabled){background-color:var(--ff-color-sunken);border-color:var(--ff-color-border-strong)}.ff-btn:active:not(:disabled){transform:translateY(1px)}.ff-btn:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-btn:disabled{opacity:.6;cursor:not-allowed}.ff-btn--primary{background-color:var(--ff-color-accent);border-color:var(--ff-color-accent);color:var(--ff-color-accent-contrast);box-shadow:var(--ff-shadow-sm)}.ff-btn--primary:hover:not(:disabled){background-color:var(--ff-color-accent-hover);border-color:var(--ff-color-accent-hover);box-shadow:var(--ff-shadow-md)}.ff-btn--tonal{background-color:var(--ff-color-accent-tint);color:var(--ff-color-accent);border-color:#0000}.ff-btn--tonal:hover:not(:disabled){background-color:color-mix(in srgb, var(--ff-color-accent) 20%, var(--ff-color-surface));border-color:#0000}.ff-btn--ghost{color:var(--ff-color-text-muted);background-color:#0000;border-color:#0000}.ff-btn--ghost:hover:not(:disabled){background-color:var(--ff-color-sunken);color:var(--ff-color-text);border-color:#0000}.ff-icon-btn{border-radius:var(--ff-radius-md);block-size:2.25rem;inline-size:2.25rem;color:var(--ff-color-text-muted);cursor:pointer;transition:background-color var(--ff-transition-fast), color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ff-icon-btn:hover{background-color:var(--ff-color-sunken);color:var(--ff-color-text)}.ff-icon-btn:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-toggle{align-items:center;gap:var(--ff-space-2);font-size:var(--ff-font-size-sm);display:inline-flex}.ff-card{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);padding:var(--ff-space-4);position:relative}.ff-topnav{align-items:center;gap:var(--ff-space-6);padding-inline:var(--ff-space-6);padding-block:var(--ff-space-3);border-block-end:1px solid var(--ff-color-border);background-color:var(--ff-color-surface);z-index:10;display:flex;position:sticky;inset-block-start:0}.ff-topnav__logo{align-items:center;gap:var(--ff-space-2);font-weight:800;font-size:var(--ff-font-size-lg);color:var(--ff-color-text);letter-spacing:-.01em;display:inline-flex}.ff-topnav__logo-mark{background-image:linear-gradient(150deg, var(--ff-color-accent), var(--ff-color-accent-hover));color:#fff;border-radius:.5625rem;justify-content:center;align-items:center;block-size:1.875rem;inline-size:1.875rem;display:inline-flex}.ff-topnav__tabs{gap:var(--ff-space-2);flex:1;display:flex;overflow-x:auto}.ff-topnav__tab{align-items:center;gap:var(--ff-space-2);padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);border-radius:var(--ff-radius-md);color:var(--ff-color-text-muted);font-size:var(--ff-font-size-sm);white-space:nowrap;font-weight:600;display:inline-flex}.ff-topnav__tab:hover{background-color:var(--ff-color-sunken)}.ff-topnav__tab--active{background-color:var(--ff-color-accent-tint);color:var(--ff-color-accent)}.ff-topnav__actions{align-items:center;gap:var(--ff-space-3);display:flex}.ff-topnav__profile{position:relative}.ff-menu{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-md);min-inline-size:12rem;box-shadow:var(--ff-shadow-md);padding-block:var(--ff-space-2);z-index:20;flex-direction:column;animation:.14s ease-out ff-pop-in;display:flex;position:absolute;inset-block-start:calc(100% + var(--ff-space-1));inset-inline-start:0}.ff-menu--end{inset-inline:auto 0}.ff-menu__section{padding-block:var(--ff-space-1);padding-inline:var(--ff-space-3);font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);font-weight:600}.ff-menu__item{align-items:center;gap:var(--ff-space-2);padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-sm);text-align:start;cursor:pointer;white-space:nowrap;background:0 0;border:none;text-decoration:none;display:flex}.ff-menu__item:hover{background-color:var(--ff-color-sunken)}.ff-menu__item--danger{color:var(--ff-color-danger)}.ff-menu__item--static{cursor:default;color:var(--ff-color-text-muted);text-overflow:ellipsis;max-inline-size:16rem;overflow:hidden}.ff-menu__item--static:hover{background-color:#0000}.ff-list{border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-md);margin-block:0;padding-inline-start:0;list-style:none;overflow:hidden}.ff-list__item{justify-content:space-between;align-items:center;gap:var(--ff-space-3);padding-block:var(--ff-space-3);padding-inline:var(--ff-space-4);border-block-end:1px solid var(--ff-color-border);background-color:var(--ff-color-surface);display:flex}.ff-list__item:last-child{border-block-end:none}.ff-form{gap:var(--ff-space-3);padding:var(--ff-space-4);flex-direction:column;display:flex}.ff-field{gap:calc(var(--ff-space-1) * 1.5);font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);flex-direction:column;font-weight:600;display:flex}.ff-field select,.ff-field textarea,.ff-field input:where([type=text],[type=search],[type=email],[type=password],[type=number],[type=tel],[type=url],[type=date],[type=datetime-local],[type=time],[type=month],:not([type])){inline-size:100%;min-block-size:var(--ff-control-height);padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);background-color:var(--ff-color-surface);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-md);caret-color:var(--ff-color-accent);transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast), background-color var(--ff-transition-fast);font-weight:400}.ff-field textarea{min-block-size:5.5rem;padding-block:var(--ff-space-3);resize:vertical;line-height:1.5}.ff-field select:hover:where(:not(:disabled,:focus)),.ff-field textarea:hover:where(:not(:disabled,:focus)),.ff-field input:hover:where(:not(:disabled,:focus)){border-color:var(--ff-color-border-strong)}.ff-field select:focus,.ff-field input:focus,.ff-field textarea:focus{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-field :where(input,textarea)::placeholder{color:var(--ff-color-text-muted);opacity:.65}.ff-field :where(input,select,textarea):disabled{background-color:var(--ff-color-sunken);opacity:.6;cursor:not-allowed}.ff-field input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 62.5rem var(--ff-color-surface);-webkit-text-fill-color:var(--ff-color-text)}.ff-field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23878e85' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;background-size:1rem;padding-inline-end:2.5rem}.ff-field select:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){background-position:.875rem}.ff-field:has(em) select{border-color:var(--ff-color-danger)}.ff-field:has(em) textarea{border-color:var(--ff-color-danger)}.ff-field:has(em) input:where(:not([type=checkbox],[type=radio])){border-color:var(--ff-color-danger)}.ff-field:has(em) .ff-amount-field{border-color:var(--ff-color-danger)}.ff-field:has(em) select:focus{border-color:var(--ff-color-danger);box-shadow:0 0 0 3px var(--ff-color-danger-focus-ring)}.ff-field:has(em) textarea:focus{border-color:var(--ff-color-danger);box-shadow:0 0 0 3px var(--ff-color-danger-focus-ring)}.ff-field:has(em) input:where(:not(.ff-amount-field__input)):focus{border-color:var(--ff-color-danger);box-shadow:0 0 0 3px var(--ff-color-danger-focus-ring)}.ff-field:has(em) .ff-amount-field:focus-within{border-color:var(--ff-color-danger);box-shadow:0 0 0 3px var(--ff-color-danger-focus-ring)}.ff-field em{align-items:center;gap:var(--ff-space-1);color:var(--ff-color-danger);font-size:var(--ff-font-size-sm);font-style:normal;font-weight:500;display:flex}.ff-field--checkbox{align-items:center;gap:var(--ff-space-2);color:var(--ff-color-text);cursor:pointer;flex-direction:row;font-weight:500}.ff-field input[type=checkbox],.ff-filter-group__option input[type=checkbox],.ff-toggle input[type=checkbox]{cursor:pointer;block-size:1.125rem;inline-size:1.125rem;margin:0}.ff-field-row{gap:var(--ff-space-2);align-items:center;display:flex}.ff-field-row>*{flex:1}.ff-field-row>.ff-icon-btn,.ff-field-row>svg{flex:none}.ff-amount-field{align-items:center;gap:var(--ff-space-2);inline-size:100%;min-block-size:var(--ff-control-height);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);padding-inline:var(--ff-space-3);background-color:var(--ff-color-surface);transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);display:flex}.ff-amount-field:hover:where(:not(:focus-within)){border-color:var(--ff-color-border-strong)}.ff-amount-field:focus-within{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring)}.ff-amount-field__currency{font-size:var(--ff-font-size-sm);color:var(--ff-color-accent);font-weight:700}.ff-field .ff-amount-field__input,.ff-field .ff-amount-field__input:hover,.ff-field .ff-amount-field__input:focus{min-block-size:auto;inline-size:100%;min-inline-size:0;box-shadow:none;padding-inline:0;padding-block:var(--ff-space-2);text-align:start;background:0 0;border:none;flex:1}.ff-amount-field__input:focus-visible{outline:none}.ff-details{border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-md);padding:var(--ff-space-3)}.ff-details>summary{cursor:pointer;font-weight:600;font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);border-radius:var(--ff-radius-sm);padding:var(--ff-space-1);margin:calc(-1 * var(--ff-space-1));transition:color var(--ff-transition-fast)}.ff-details>summary:hover{color:var(--ff-color-text)}.ff-details>summary:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-details>.ff-field{margin-block-start:var(--ff-space-3)}.ff-banner{padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);border-radius:var(--ff-radius-sm)}.ff-banner--warning{background-color:var(--ff-color-danger);color:#fff}.ff-modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background-color:#10131273;justify-content:center;align-items:flex-start;padding-block-start:var(--ff-space-8);animation:.16s ease-out ff-fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.ff-modal{background-color:var(--ff-color-surface);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-lg);inline-size:min(32rem,92vw);margin-block-end:var(--ff-space-8);animation:.2s cubic-bezier(.16,1,.3,1) ff-rise-in}.ff-modal--wide{inline-size:min(56rem,94vw)}.ff-modal__subtitle{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);margin-block-start:var(--ff-space-1);font-weight:400}@keyframes ff-fade-in{0%{opacity:0}}@keyframes ff-rise-in{0%{opacity:0;transform:translateY(.75rem)scale(.98)}}@keyframes ff-pop-in{0%{opacity:0;transform:translateY(-.25rem)}}.ff-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--ff-space-3);padding-inline:var(--ff-space-4);padding-block:var(--ff-space-3);border-block-end:1px solid var(--ff-color-border);display:flex}.ff-modal__header h2{font-size:var(--ff-font-size-lg);margin:0;font-weight:700}.ff-modal__actions{gap:var(--ff-space-2);display:flex}.ff-modal__footer{justify-content:flex-end;align-items:center;gap:var(--ff-space-2);padding-inline:var(--ff-space-4);padding-block:var(--ff-space-3);border-block-start:1px solid var(--ff-color-border);background-color:var(--ff-color-sunken);display:flex}.ff-account-form__body{gap:var(--ff-space-6);padding:var(--ff-space-4);grid-template-columns:1fr 18rem;display:grid}@media (max-width:40rem){.ff-account-form__body{grid-template-columns:1fr}}.ff-account-form__column{gap:var(--ff-space-4);flex-direction:column;min-inline-size:0;display:flex}.ff-account-form__section-label{font-size:var(--ff-font-size-xs,.75rem);text-transform:uppercase;letter-spacing:.08em;color:var(--ff-color-text-muted);font-weight:700}.ff-account-form__row{gap:var(--ff-space-3);grid-template-columns:1fr 1fr;display:grid}.ff-account-form__row--balance{grid-template-columns:7rem 1fr}.ff-field__hint{font-size:var(--ff-font-size-xs,.75rem);color:var(--ff-color-text-muted);font-weight:400}.ff-field__required{color:var(--ff-color-danger)}.ff-account-preview{border-radius:var(--ff-radius-lg);padding:var(--ff-space-4);color:#fff;box-shadow:var(--ff-shadow-md);background-image:linear-gradient(150deg, var(--ff-account-card-color,var(--ff-color-accent)), var(--ff-account-card-color-dark,var(--ff-color-accent-hover)))}.ff-account-preview__top{justify-content:space-between;align-items:center;display:flex}.ff-account-preview__icon{border-radius:var(--ff-radius-md);background-color:#ffffff2e;justify-content:center;align-items:center;block-size:2.5rem;inline-size:2.5rem;display:flex}.ff-account-preview__badge{font-size:var(--ff-font-size-xs,.75rem);color:#ffffffd9;border-radius:var(--ff-radius-pill);background-color:#ffffff29;padding-block:.25rem;padding-inline:.5625rem;font-weight:600}.ff-account-preview__name{font-size:var(--ff-font-size-sm);text-overflow:ellipsis;white-space:nowrap;margin-block-start:var(--ff-space-3);font-weight:700;overflow:hidden}.ff-account-preview__amount{font-size:var(--ff-font-size-lg);letter-spacing:-.01em;margin-block-start:.125rem;font-weight:800}.ff-record-tabs{background-color:var(--ff-color-sunken);border-radius:var(--ff-radius-md);gap:.1875rem;padding:.1875rem;display:flex}.ff-record-tab{padding-block:var(--ff-space-2);border-radius:calc(var(--ff-radius-md) - .1875rem);color:var(--ff-color-text-muted);font-family:inherit;font-weight:600;font-size:var(--ff-font-size-sm);cursor:pointer;transition:background-color var(--ff-transition-fast), color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);background-color:#0000;border:none;flex:1}.ff-record-tab:hover:not(.ff-record-tab--active,:disabled){color:var(--ff-color-text)}.ff-record-tab:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-record-tab--expense.ff-record-tab--active{background-color:var(--ff-color-surface);color:var(--ff-color-danger);box-shadow:var(--ff-shadow-sm)}.ff-record-tab--income.ff-record-tab--active{background-color:var(--ff-color-surface);color:var(--ff-color-success);box-shadow:var(--ff-shadow-sm)}.ff-record-tab--transfer.ff-record-tab--active{background-color:var(--ff-color-surface);color:var(--ff-color-accent);box-shadow:var(--ff-shadow-sm)}.ff-label-select{gap:var(--ff-space-2);flex-direction:column;display:flex}.ff-label-select__chips{gap:var(--ff-space-2);flex-wrap:wrap;display:flex}.ff-label-select__new{gap:var(--ff-space-2);display:flex}.ff-label-select__new input{min-block-size:2.25rem;padding-block:var(--ff-space-1);padding-inline:var(--ff-space-3);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);background-color:var(--ff-color-surface);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-md);transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);flex:1}.ff-label-select__new input:focus{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-chip{align-items:center;gap:var(--ff-space-1);padding-block:var(--ff-space-1);padding-inline:var(--ff-space-3);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-pill);background-color:var(--ff-color-sunken);color:var(--ff-color-text-muted);font-size:var(--ff-font-size-sm);cursor:pointer;transition:background-color var(--ff-transition-fast), border-color var(--ff-transition-fast), color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);font-weight:600;display:inline-flex}.ff-chip:hover:not(.ff-chip--active){border-color:var(--ff-color-border-strong);color:var(--ff-color-text)}.ff-chip:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-chip--active{background-color:var(--ff-color-accent);border-color:var(--ff-color-accent);color:var(--ff-color-accent-contrast)}.ff-icon-picker,.ff-color-picker{gap:var(--ff-space-2);flex-wrap:wrap;display:flex}.ff-icon-picker__option{border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);background-color:var(--ff-color-surface);block-size:2.5rem;inline-size:2.5rem;color:var(--ff-color-text);cursor:pointer;transition:border-color var(--ff-transition-fast), background-color var(--ff-transition-fast), color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);justify-content:center;align-items:center;display:inline-flex}.ff-icon-picker__option:hover:not(.ff-icon-picker__option--active){border-color:var(--ff-color-border-strong);background-color:var(--ff-color-sunken)}.ff-icon-picker__option:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-icon-picker__option--active{border-color:var(--ff-color-accent);color:var(--ff-color-accent);background-color:var(--ff-color-accent-tint)}.ff-color-picker__swatch{border-radius:var(--ff-radius-pill);color:#fff;cursor:pointer;block-size:2rem;inline-size:2rem;transition:transform var(--ff-transition-fast), box-shadow var(--ff-transition-fast);border:2px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.ff-color-picker__swatch:hover{transform:scale(1.1)}.ff-color-picker__swatch:focus-visible{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-color-picker__swatch--active{border-color:var(--ff-color-text);box-shadow:inset 0 0 0 2px var(--ff-color-surface)}.ff-account-cards{gap:var(--ff-space-3);padding-block-end:var(--ff-space-2);display:flex;overflow-x:auto}.ff-account-card{gap:var(--ff-space-2);min-inline-size:11rem;padding:var(--ff-space-4);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);color:#fff;background-image:linear-gradient(150deg, var(--ff-account-card-color,var(--ff-color-accent)), var(--ff-account-card-color-dark,var(--ff-color-accent-hover)));border:none;flex-direction:column;display:flex}.ff-account-card--add{color:var(--ff-color-text-muted);background-color:var(--ff-color-surface);border:1px dashed var(--ff-color-border);cursor:pointer;background-image:none;justify-content:center;align-items:center}.ff-account-card__icon{border-radius:var(--ff-radius-pill);background-color:#fff3;justify-content:center;align-items:center;block-size:2rem;inline-size:2rem;display:inline-flex}.ff-account-card__name{font-size:var(--ff-font-size-sm);opacity:.85}.ff-account-card--add .ff-account-card__name{opacity:1}.ff-account-card__balance{font-size:var(--ff-font-size-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:800}.ff-period-selector{align-items:center;gap:var(--ff-space-3);display:flex}.ff-period-selector select{min-block-size:2.25rem;padding-block:var(--ff-space-1);padding-inline:var(--ff-space-3) 2.25rem;border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-md);background-color:var(--ff-color-surface);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-sm);appearance:none;cursor:pointer;transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23878e85' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .625rem center;background-repeat:no-repeat;background-size:.875rem;font-weight:600}.ff-period-selector select:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){background-position:.625rem}.ff-period-selector select:hover:where(:not(:focus)){border-color:var(--ff-color-border-strong)}.ff-period-selector select:focus{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-period-selector__label{font-weight:600}.ff-period-selector__range{gap:var(--ff-space-2);display:flex}.ff-period-selector__range input[type=date]{min-inline-size:0;padding-block:var(--ff-space-1);padding-inline:var(--ff-space-2);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-sm);background-color:var(--ff-color-surface);color:var(--ff-color-text);font-family:inherit;font-size:var(--ff-font-size-sm);transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast)}.ff-period-selector__range input[type=date]:focus{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-widget-board{gap:var(--ff-space-4);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));display:grid}.ff-widget-card{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);padding:var(--ff-space-4);position:relative}.ff-widget-card__menu{position:absolute;inset-block-start:var(--ff-space-2);inset-inline-end:var(--ff-space-2)}.ff-widget-board__add{align-items:flex-start;display:flex;position:relative}.ff-widget__header{justify-content:space-between;align-items:center;gap:var(--ff-space-2);display:flex}.ff-widget h3{margin-block:0 var(--ff-space-3);font-size:var(--ff-font-size-md);font-weight:700}.ff-gauge-row{justify-content:space-around;gap:var(--ff-space-3);text-align:center;display:flex}.ff-gauge{align-items:center;gap:var(--ff-space-1);flex-direction:column;display:flex}.ff-gauge__label{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted)}.ff-gauge__value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:800}.ff-legend{margin-block:var(--ff-space-2) 0;gap:var(--ff-space-3);flex-wrap:wrap;padding-inline-start:0;list-style:none;display:flex}.ff-legend__item{align-items:center;gap:var(--ff-space-1);font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);display:inline-flex}.ff-legend__swatch{border-radius:var(--ff-radius-pill);block-size:.75rem;inline-size:.75rem}.ff-delta{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.ff-delta--positive{color:var(--ff-color-success)}.ff-delta--negative{color:var(--ff-color-danger)}.ff-accounts-table__toolbar{justify-content:space-between;align-items:center;margin-block-end:var(--ff-space-3);display:flex}.ff-accounts-table{border-collapse:collapse;inline-size:100%}.ff-accounts-table__row td{padding-block:var(--ff-space-3);padding-inline:var(--ff-space-2);border-block-end:1px solid var(--ff-color-border)}.ff-accounts-table__row:last-child td{border-block-end:none}.ff-accounts-table__icon{border-radius:var(--ff-radius-pill);justify-content:center;align-items:center;block-size:2.5rem;inline-size:2.5rem;display:inline-flex}.ff-accounts-table__balance{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.ff-accounts-table__menu-cell{text-align:end;position:relative}.ff-coa{gap:var(--ff-space-2);flex-direction:column;display:flex}.ff-coa-node{border-block-start:1px solid var(--ff-color-border);padding-block-start:var(--ff-space-2)}.ff-coa-node:first-child{border-block-start:none;padding-block-start:0}.ff-coa-node__summary{align-items:center;gap:var(--ff-space-2);cursor:pointer;padding-block:var(--ff-space-1);font-weight:700;display:flex}.ff-coa-node__name{cursor:text;flex:1}.ff-coa-node__name:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ff-coa-node__rename-input{padding-block:var(--ff-space-1);padding-inline:var(--ff-space-2);border:1.5px solid var(--ff-color-accent);border-radius:var(--ff-radius-sm);font:inherit;background-color:var(--ff-color-surface);color:var(--ff-color-text);flex:1;font-weight:700}.ff-coa-node__rename-input:focus{box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-coa-node__actions{gap:var(--ff-space-1);display:flex}.ff-coa-node__add{align-items:center;gap:var(--ff-space-2);padding-block:var(--ff-space-2);padding-inline-start:1.5rem;display:flex}.ff-coa-node__add input[type=text],.ff-coa-node__add input:not([type]){padding-block:var(--ff-space-1);padding-inline:var(--ff-space-2);border:1.5px solid var(--ff-color-border);border-radius:var(--ff-radius-sm);font:inherit;background-color:var(--ff-color-surface);color:var(--ff-color-text);transition:border-color var(--ff-transition-fast), box-shadow var(--ff-transition-fast)}.ff-coa-node__add input[type=text]:focus,.ff-coa-node__add input:not([type]):focus{border-color:var(--ff-color-accent);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-coa-node__children{gap:var(--ff-space-1);flex-direction:column;display:flex}.ff-coa-account{align-items:center;gap:var(--ff-space-2);padding-block:var(--ff-space-1);color:var(--ff-color-text-muted);font-size:var(--ff-font-size-sm);padding-inline-start:1.5rem;display:flex}.ff-coa-account__name{flex:1}.ff-coa-account__balance{color:var(--ff-color-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:600}.ff-records-layout{gap:var(--ff-space-6);grid-template-columns:16rem 1fr;align-items:start;display:grid}.ff-records-layout__content{gap:var(--ff-space-4);flex-direction:column;min-inline-size:0;display:flex}.ff-filter-sidebar{gap:var(--ff-space-3);padding:var(--ff-space-4);background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);flex-direction:column;display:flex}.ff-filter-group summary{cursor:pointer;font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:var(--ff-space-2);font-weight:700;display:flex}.ff-filter-group__count{block-size:1.25rem;min-inline-size:1.25rem;padding-inline:var(--ff-space-1);border-radius:var(--ff-radius-pill);background-color:var(--ff-color-accent);color:var(--ff-color-accent-contrast);justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.ff-filter-group__options{gap:var(--ff-space-1);flex-direction:column;max-block-size:10rem;margin-block-start:var(--ff-space-2);display:flex;overflow-y:auto}.ff-filter-group__option{align-items:center;gap:var(--ff-space-2);font-size:var(--ff-font-size-sm);display:flex}.ff-amount-range{gap:var(--ff-space-1);flex-direction:column;display:flex}.ff-amount-range__track{block-size:1.5rem;position:relative}.ff-amount-range__track input[type=range]{pointer-events:none;appearance:none;background:0 0;inline-size:100%;position:absolute;inset-block-start:0;inset-inline:0}.ff-amount-range__track input[type=range]::-webkit-slider-thumb{pointer-events:auto;appearance:none;border-radius:var(--ff-radius-pill);background-color:var(--ff-color-surface);border:2px solid var(--ff-color-accent);block-size:1.125rem;inline-size:1.125rem;box-shadow:var(--ff-shadow-sm)}.ff-amount-range__track input[type=range]::-moz-range-thumb{pointer-events:auto;border-radius:var(--ff-radius-pill);background-color:var(--ff-color-surface);border:2px solid var(--ff-color-accent);block-size:1.125rem;inline-size:1.125rem;box-shadow:var(--ff-shadow-sm)}.ff-amount-range__values{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);justify-content:space-between;display:flex}.ff-records-list{gap:var(--ff-space-4);flex-direction:column;display:flex}.ff-records-list__date{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-block:0 var(--ff-space-2);font-weight:700}.ff-record-row{align-items:center;gap:var(--ff-space-3);padding-block:var(--ff-space-2);border-block-end:1px solid var(--ff-color-border);display:flex}.ff-record-row__icon{border-radius:var(--ff-radius-pill);background-color:var(--ff-color-sunken);flex-shrink:0;justify-content:center;align-items:center;block-size:2.5rem;inline-size:2.5rem;display:inline-flex}.ff-record-row__main{flex-direction:column;flex:1;min-inline-size:0;display:flex}.ff-record-row__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ff-record-row__subtitle{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted)}.ff-record-row__amount{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.ff-record-row__amount--negative{color:var(--ff-color-danger)}.ff-record-row__amount--positive{color:var(--ff-color-success)}.ff-record-row__menu{position:relative}.ff-records-card{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-sm);overflow:hidden}.ff-records-card .ff-record-row{padding-inline:var(--ff-space-4);padding-block:var(--ff-space-3);border-block-end:1px solid var(--ff-color-border)}.ff-records-card .ff-record-row:last-child{border-block-end:none}.ff-records-group{gap:var(--ff-space-2);flex-direction:column;display:flex}.ff-records-group__header{justify-content:space-between;align-items:baseline;gap:var(--ff-space-2);padding-inline:var(--ff-space-1);display:flex}.ff-records-list__total{font-weight:700;font-size:var(--ff-font-size-sm);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.ff-records-list__total--positive{color:var(--ff-color-success)}.ff-records-list__total--negative{color:var(--ff-color-danger)}.ff-records-pane{gap:var(--ff-space-4);flex-direction:column;min-inline-size:0;display:flex}.ff-records-pane__header{justify-content:space-between;align-items:flex-end;gap:var(--ff-space-4);flex-wrap:wrap;display:flex}.ff-records-pane__title{font-size:var(--ff-font-size-title);letter-spacing:-.01em;margin:0;font-weight:800}.ff-records-pane__subtitle{margin-block:var(--ff-space-1) 0;font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);margin-inline:0}.ff-records-pane__actions{align-items:center;gap:var(--ff-space-2);display:flex}.ff-field--inline{align-items:center;gap:var(--ff-space-2);flex-direction:row}.ff-filter-sidebar__header{justify-content:space-between;align-items:center;display:flex}.ff-filter-sidebar__title{font-size:var(--ff-font-size-lg);letter-spacing:-.01em;font-weight:800}.ff-filter-group__label{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.ff-segment{gap:var(--ff-space-2);flex-wrap:wrap;margin-block-start:var(--ff-space-2);display:flex}.ff-link-btn{color:var(--ff-color-accent);font:inherit;font-weight:600;font-size:var(--ff-font-size-sm);cursor:pointer;background:0 0;border:none;padding:0}.ff-link-btn:hover{color:var(--ff-color-accent-hover)}.ff-link-btn:focus-visible{border-radius:var(--ff-radius-sm);box-shadow:0 0 0 3px var(--ff-color-focus-ring);outline:none}.ff-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ff-tabs{gap:var(--ff-space-2);border-block-end:1px solid var(--ff-color-border);display:flex}.ff-tabs__tab{padding-block:var(--ff-space-2);padding-inline:var(--ff-space-3);color:var(--ff-color-text-muted);font-family:inherit;font-size:var(--ff-font-size-sm);cursor:pointer;background:0 0;border:none;border-block-end:2px solid #0000;font-weight:600}.ff-tabs__tab--active{color:var(--ff-color-accent);border-block-end-color:var(--ff-color-accent)}.ff-report-table{border-collapse:collapse;font-variant-numeric:tabular-nums;inline-size:100%}.ff-report-table th,.ff-report-table td{padding-block:var(--ff-space-2);padding-inline:var(--ff-space-2);border-block-end:1px solid var(--ff-color-border);text-align:start}.ff-stat-row{gap:var(--ff-space-4);margin-block-end:var(--ff-space-4);display:flex}.ff-stat-tile{gap:var(--ff-space-1);padding:var(--ff-space-3);background-color:var(--ff-color-sunken);border-radius:var(--ff-radius-md);flex-direction:column;flex:1;display:flex}.ff-stat-tile__label{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted)}.ff-stat-tile__value{font-size:var(--ff-font-size-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:800}.ff-advanced-charts{gap:var(--ff-space-4);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));display:grid}.ff-upsell{text-align:center;align-items:center;gap:var(--ff-space-3);padding-block:var(--ff-space-8);flex-direction:column;max-inline-size:32rem;margin-inline:auto;display:flex}.ff-upsell__icon{color:var(--ff-color-accent)}.ff-dropzone{align-items:center;gap:var(--ff-space-3);padding-block:var(--ff-space-8);border:1.5px dashed var(--ff-color-border);border-radius:var(--ff-radius-lg);background-color:var(--ff-color-bg);color:var(--ff-color-text-muted);transition:border-color var(--ff-transition-fast), background-color var(--ff-transition-fast);flex-direction:column;display:flex}.ff-dropzone:hover,.ff-dropzone:focus-within{border-color:var(--ff-color-accent);background-color:var(--ff-color-accent-tint)}.ff-column-mapping table{border-collapse:collapse;inline-size:100%;margin-block-end:var(--ff-space-3)}.ff-column-mapping th,.ff-column-mapping td{padding-block:var(--ff-space-2);padding-inline:var(--ff-space-2);border-block-end:1px solid var(--ff-color-border);text-align:start}.ff-import-result{color:var(--ff-color-success);font-weight:600}.ff-import-result--error{color:var(--ff-color-danger)}.ff-backup-phase{color:var(--ff-color-text-muted);font-size:var(--ff-font-size-sm)}.ff-card--danger{border-color:var(--ff-color-danger)}.ff-callout{gap:var(--ff-space-3);border-radius:var(--ff-radius-md);padding-block:var(--ff-space-3);padding-inline:var(--ff-space-4);margin-block:var(--ff-space-3);align-items:flex-start;display:flex}.ff-callout p{margin-block:var(--ff-space-1) 0;margin-inline:0}.ff-callout--danger{background-color:var(--ff-color-danger-tint);color:var(--ff-color-danger)}.ff-callout--muted{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);color:var(--ff-color-text-muted);font-size:.875rem}.ff-btn--danger{background-color:var(--ff-color-danger);border-color:var(--ff-color-danger);color:var(--ff-color-danger-contrast);box-shadow:var(--ff-shadow-sm)}.ff-btn--danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--ff-color-danger) 85%, black);border-color:color-mix(in srgb, var(--ff-color-danger) 85%, black);box-shadow:var(--ff-shadow-md)}@media (max-width:64rem){.ff-records-layout{grid-template-columns:1fr}}.ff-auth-page{justify-content:center;align-items:center;gap:var(--ff-space-6);min-block-size:100dvh;padding:var(--ff-space-4);background-color:var(--ff-color-bg);background-image:radial-gradient(circle at 1px 1px, var(--ff-color-border) 1px, transparent 0);background-size:28px 28px;flex-direction:column;display:flex}.ff-auth-page__brand{align-items:center;gap:var(--ff-space-3);display:flex}.ff-auth-page__brand-mark{border-radius:var(--ff-radius-md);background-image:linear-gradient(150deg, var(--ff-color-accent), var(--ff-color-accent-hover));block-size:3.25rem;inline-size:3.25rem;box-shadow:0 12px 32px color-mix(in srgb, var(--ff-color-accent) 35%, transparent);display:inline-flex;position:relative}.ff-auth-page__brand-mark:before{content:"";border:3px solid #fff;border-inline-end-color:#0000;border-radius:50%;block-size:1.5rem;inline-size:1.5rem;margin:auto;position:absolute;inset:0;transform:rotate(-45deg)}.ff-auth-page__brand-name{font-size:var(--ff-font-size-title);letter-spacing:-.02em;color:var(--ff-color-text);font-weight:800}.ff-auth-card{background-color:var(--ff-color-surface);border:1px solid var(--ff-color-border);border-radius:var(--ff-radius-lg);inline-size:min(26rem,100%);box-shadow:var(--ff-shadow-lg);padding-block:var(--ff-space-8);padding-inline:var(--ff-space-6);animation:.24s cubic-bezier(.16,1,.3,1) ff-rise-in}.ff-auth-card__title{font-size:var(--ff-font-size-title);letter-spacing:-.01em;margin-block-end:var(--ff-space-1);font-weight:700}.ff-auth-card__subtitle{color:var(--ff-color-text-muted);font-size:var(--ff-font-size-sm);margin-block-end:var(--ff-space-6)}.ff-auth-card .ff-form{gap:var(--ff-space-4);padding:0}.ff-auth-card .ff-btn--primary{inline-size:100%;min-block-size:var(--ff-control-height);font-size:var(--ff-font-size-md);margin-block-start:var(--ff-space-2)}.ff-auth-card__footer{font-size:var(--ff-font-size-sm);color:var(--ff-color-text-muted);text-align:center;margin-block-start:var(--ff-space-4)}.ff-auth-card__footer a{color:var(--ff-color-accent);font-weight:600}.ff-auth-card__footer a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.ff-modal-overlay,.ff-modal,.ff-menu,.ff-auth-card{animation:none}.ff-color-picker__swatch:hover,.ff-btn:active:not(:disabled){transform:none}}
