:root{--paper:#fbfaf7;--paper-alt:#fcfbf7;--card:#fff;--stone:#f1efe8;--ink:#14140f;--ink-70:#2e2d26;--ink-60:#5c5b52;--ink-50:#6b6a61;--ink-40:#8a8779;--ink-30:#a8a497;--line:#e3e1d9;--line-strong:#dcd9cf;--input-border:#c9c5b8;--forest:#12503a;--forest-deep:#0a3527;--forest-wash:#e4eee7;--forest-border:#bfd6c8;--sage:#7d8b6a;--clay:#a65d3a;--clay-deep:#7a3f24;--clay-wash:#fbf3ee;--clay-border:#e7d5c8;--clay-border-strong:#d9b5a1;--clay-input-border:#c79877;--font-sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink-60);background:var(--paper);font:16px/1.55 var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty}@keyframes finme-shimmer{0%{background-position:-420px 0}to{background-position:420px 0}}@keyframes finme-blink{0%,60%{opacity:1}61%,to{opacity:.25}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}#root{box-sizing:border-box;flex-direction:column;min-height:100svh;display:flex}*{box-sizing:border-box}body{margin:0}a{color:var(--forest);text-decoration:none}a:hover{color:var(--forest-deep);text-underline-offset:3px;text-decoration:underline}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--forest);outline-offset:3px}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--ink);font-weight:800}h1{letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(28px,3.4vw,36px)}h2{margin:0 0 8px;font-size:22px;line-height:1.15}h3{margin:0 0 6px;font-size:17px}p{margin:0}code{font-family:var(--font-mono);color:var(--ink);background:var(--stone);border-radius:4px;padding:3px 7px;font-size:14px;line-height:1.35;display:inline-flex}.landing{max-width:100%;overflow-x:hidden}.landing-header{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fbfaf7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;padding:14px clamp(18px,4vw,44px);display:flex;position:sticky;top:0}.landing-header__brand{letter-spacing:-.045em;color:var(--ink);align-items:baseline;gap:2px;font-size:22px;font-weight:800;display:flex}.landing-header__brand span{color:var(--forest)}.landing-header__nav{color:var(--ink-50);border-top:1px solid var(--stone);flex:100%;order:3;align-items:center;gap:24px;padding-top:12px;font-size:14.5px;font-weight:500;display:flex}.landing-header__nav a{color:var(--ink-50)}.landing-header__actions{align-items:center;gap:14px;display:flex}.landing-header__actions a.link-button{color:var(--ink);font-size:14.5px;font-weight:600}@media (width>=760px){.landing-header__nav{border-top:none;flex:0 auto;order:0;padding-top:0}}.landing-section{padding:clamp(56px,7vw,100px) clamp(18px,4vw,44px)}.landing-section--band{background:var(--stone);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.landing-section--dark{background:var(--forest);color:#f3f2eb;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.landing-inner{max-width:1160px;margin:0 auto}.landing-inner--narrow{max-width:720px}.landing-hero{text-align:center;padding-top:clamp(48px,7vw,90px)}.landing-hero h1{letter-spacing:-.05em;max-width:20ch;color:var(--ink);margin:0 auto;font-size:clamp(38px,7vw,80px);font-weight:800;line-height:.98}.landing-hero h1 span{color:var(--sage)}.landing-hero p{max-width:560px;color:var(--ink-50);margin:22px auto 0;font-size:clamp(16px,1.6vw,20px);font-style:italic;line-height:1.5}.landing-cta-row{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:32px;display:flex}.landing-cta-row button,.landing-cta-row a{padding:13px 26px;font-size:16px}.landing-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px;margin-bottom:clamp(28px,3.5vw,48px);display:flex}.landing-section-head h2{max-width:16ch;margin:0;font-size:clamp(28px,4vw,48px);line-height:1.03}.landing-section-head p{max-width:38ch;color:var(--ink-50);margin:0;font-size:16px;line-height:1.55}.landing-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--forest);margin:0 0 14px;font-size:11px;font-weight:500;display:block}.landing-section--dark .landing-eyebrow{color:#a8bc98}.landing-preview{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;margin-top:clamp(44px,6vw,72px);overflow:hidden;box-shadow:0 24px 48px -32px #14140f47}.landing-preview__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;padding:18px 22px;display:flex}.landing-preview__head strong{font-family:var(--font-mono);color:var(--ink);font-weight:500}.landing-preview__head span{color:var(--forest);font-size:14px;font-style:italic}.landing-preview .transaction-table{min-width:620px}.landing-preview__foot{background:var(--paper-alt);border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-50);flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding:12px 22px;font-size:12.5px;display:flex}.landing-scroll{overflow-x:auto}.landing-source-picker{flex-direction:column;gap:10px;display:flex}.landing-source-tab{text-align:left;border:1.5px solid var(--line-strong);width:100%;box-shadow:none;background:0 0;border-radius:8px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.landing-source-tab.active{border-color:var(--forest);background:var(--card);box-shadow:4px 4px 0 var(--forest)}.landing-source-tab:hover:not(:disabled){transform:none}.landing-source-tab__n{font-family:var(--font-mono);color:var(--ink-30);flex:none;margin-top:3px;font-size:11px;font-weight:500}.landing-source-tab.active .landing-source-tab__n{color:var(--sage)}.landing-source-tab__label{letter-spacing:-.02em;color:var(--ink);font-size:17px;font-weight:700;display:block}.landing-source-tab__desc{color:var(--ink-40);margin-top:4px;font-size:14px;line-height:1.45;display:block}.landing-source-tab.active .landing-source-tab__desc{color:var(--ink-50)}.landing-demo-card{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;overflow:hidden;box-shadow:0 20px 40px -34px #14140f66}.landing-demo-card__head{border-bottom:1px solid var(--line);background:var(--paper-alt);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;font-size:10px;display:flex}.landing-demo-card__head span:first-child{color:var(--ink-50)}.landing-demo-card__head span:last-child{color:var(--sage)}.landing-demo-card__body{padding:20px 18px}.landing-field-row{border-bottom:1px dotted var(--line-strong);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;padding-bottom:8px;display:flex}.landing-field-row span:first-child{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-40);font-size:10px}.landing-field-row span:last-child{color:var(--ink);font-size:14.5px;font-weight:600}.landing-becomes{align-items:center;gap:10px;margin:4px 0;padding:0 18px;display:flex}.landing-becomes span:first-child,.landing-becomes span:last-child{background:var(--line);flex:1;height:1px}.landing-becomes span:nth-child(2){font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-size:10px}.landing-result-card{border:1.5px solid var(--forest);background:var(--paper-alt);box-shadow:3px 3px 0 var(--forest);border-radius:8px;margin:18px;padding:18px 20px}.landing-result-card__head{letter-spacing:-.02em;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;margin-bottom:14px;font-size:21px;font-weight:700;display:flex}.landing-result-fields{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px 18px;display:grid}.landing-progress-card{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;overflow:hidden}.landing-progress-card__head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:16px 20px;display:flex}.landing-chip{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:4px;align-items:center;gap:7px;padding:4px 10px;font-size:10px;display:inline-flex}.landing-chip__dot{border-radius:50%;width:6px;height:6px}.landing-progress-card__body{padding:22px 20px 24px}.landing-progress-label-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:12px;font-size:17px;font-weight:600;display:flex}.landing-progress-pct{font-family:var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.landing-progress-track{background:var(--stone);border-radius:2px;height:10px;overflow:hidden}.landing-progress-fill{background:var(--forest);border-radius:2px;height:100%;transition:width .22s linear}.landing-figure{letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--ink);margin:0;font-size:clamp(48px,8vw,96px);font-weight:800;line-height:.9}.landing-figure span{color:var(--ink-30)}.landing-cat-row{border-bottom:1px solid var(--stone);grid-template-columns:minmax(96px,1.1fr) 3fr auto;align-items:center;gap:12px;padding:9px 0;display:grid}.landing-cat-row__track{background:var(--stone);border-radius:1px;height:14px;display:block;overflow:hidden}.landing-cat-row__fill{background:var(--forest);height:100%;display:block}.landing-trend-card{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:18px 16px 12px}.landing-trend-axis{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-40);justify-content:space-between;margin-top:6px;font-size:10px;display:flex}.landing-cal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.landing-cal-head h3{color:#fff;margin:0}.landing-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.landing-cal-weekday{text-align:center;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#8fa882;font-size:9.5px}.landing-cal-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.landing-cal-day{min-height:58px;box-shadow:none;background:0 0;border:1px solid #2c6a50;border-radius:4px;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:6px;padding:6px;display:flex}.landing-cal-day.active{border-color:#fff}.landing-cal-day:hover:not(:disabled){transform:none}.landing-cal-day__n{font-variant-numeric:tabular-nums;color:#fff;font-size:12px;font-weight:700}.landing-cal-day__amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:#c6d2bc;font-size:9.5px}.landing-cal-day__bar{background:#2c6a50;border-radius:1px;width:100%;height:3px;display:block}.landing-cal-day__bar span{background:#b9d3a6;border-radius:1px;height:100%;display:block}.landing-cal-detail{background:#0e4433;border:1px solid #3e7259;border-radius:10px;overflow:hidden}.landing-cal-detail__head{color:#fff;border-bottom:1px solid #2c6a50;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 18px;font-size:17px;font-weight:700;display:flex}.landing-cal-detail__head span{font-family:var(--font-mono);color:#a8bc98;font-size:14px;font-weight:400}.landing-cal-tx-row{border-bottom:1px solid #1b5741;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 18px;display:flex}.landing-cal-tx-row__name{color:#fff;font-size:15.5px;font-weight:600;display:block}.landing-cal-tx-row__cat{color:#9db491;font-size:13px;display:block}.landing-cal-tx-row__amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:#e4eadd;white-space:nowrap;font-size:15px}.landing-cal-empty{padding:26px 18px 30px}.landing-cal-empty p:first-child{color:#fff;margin:0 0 6px;font-size:15.5px;font-weight:600}.landing-cal-empty p:last-child{color:#9db491;margin:0;font-size:14.5px;line-height:1.5}.landing-budget-row{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:center;gap:10px 32px;padding:22px 0;display:grid}.landing-budget-row__name{align-items:baseline;gap:12px;display:flex}.landing-budget-row__name strong{letter-spacing:-.03em;color:var(--ink);font-size:clamp(19px,2.2vw,25px);font-weight:700}.landing-budget-row__name span{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-40);font-size:12px}.landing-sim-card{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;overflow:hidden}.landing-sim-card__head{border-bottom:1px solid var(--line);padding:18px 20px}.landing-sim-card__body{padding:18px 20px 22px}.landing-account-picker{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.landing-account-chip{border:1.5px solid var(--line-strong);color:var(--ink-50);box-shadow:none;background:0 0;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:600}.landing-account-chip.active{border-color:var(--forest);background:var(--forest);color:var(--paper)}.landing-account-chip:hover:not(:disabled){transform:none}.landing-sim-range-label{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;margin-bottom:8px;display:flex}.landing-sim-range-label span:first-child{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);font-size:10px}.landing-sim-range-label span:last-child{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:18px;font-weight:700}.landing-sim-card input[type=range]{width:100%;height:26px;accent-color:var(--forest);cursor:pointer;box-shadow:none;background:0 0;border:none;padding:0}.landing-sim-range-ends{font-family:var(--font-mono);color:var(--ink-40);justify-content:space-between;margin-bottom:20px;font-size:11px;display:flex}.landing-sim-result{border:1.5px solid var(--ink);background:var(--paper-alt);box-shadow:4px 4px 0 var(--ink);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 20px;display:flex}.landing-sim-result__col{flex-direction:column;gap:2px;display:flex}.landing-sim-result__col span:first-child{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-40);font-size:9.5px}.landing-sim-result__col span:last-child{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(26px,4vw,38px);font-weight:800}.landing-sim-arrow{color:var(--line-strong);font-size:22px}.landing-sim-delta{text-align:right;margin-left:auto;font-size:14.5px;font-weight:600}.landing-faq-item{border-top:1px solid var(--line-strong)}.landing-faq-item button{text-align:left;width:100%;box-shadow:none;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;display:flex}.landing-faq-item button:hover{transform:none}.landing-faq-item button span:first-child{letter-spacing:-.02em;font-size:clamp(17px,2vw,21px);font-weight:700}.landing-faq-item button span:last-child{font-family:var(--font-mono);color:var(--sage);font-size:18px}.landing-faq-answer{max-width:62ch;color:var(--ink-70);padding:0 0 24px;font-size:15.5px;line-height:1.6}.landing-final-cta{text-align:center;border-top:1px solid var(--line);padding:clamp(72px,9vw,130px) clamp(18px,4vw,44px)}.landing-final-cta h2{letter-spacing:-.05em;max-width:24ch;margin:0 auto;font-size:clamp(32px,6vw,66px);font-weight:800;line-height:1}.landing-final-cta p{max-width:46ch;color:var(--ink-50);margin:24px auto 0;font-size:17px;line-height:1.55}.landing-footer{background:var(--forest);color:#c6d2bc;padding:clamp(48px,6vw,80px) clamp(18px,4vw,44px) 32px}.landing-footer__top{border-bottom:1px solid #2c6a50;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:36px 32px;padding-bottom:40px;display:grid}.landing-footer__brand{letter-spacing:-.045em;color:#fff;align-items:baseline;gap:2px;margin:0 0 12px;font-size:23px;font-weight:800;display:flex}.landing-footer__brand span{color:#a8bc98}.landing-footer p{color:#9db491;max-width:26ch;margin:0;font-size:14.5px;line-height:1.55}.landing-footer h4{font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:#7d9670;margin:0 0 14px;font-size:10px;font-weight:500}.landing-footer ul{flex-direction:column;gap:11px;margin:0;padding:0;list-style:none;display:flex}.landing-footer a{color:#d5decc;font-size:14.5px}.landing-footer__bottom{color:#7d9670;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding-top:22px;font-size:13px;display:flex}.legal-page{background:var(--paper);min-height:100%}.legal-header{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fbfaf7eb;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(18px,4vw,40px);display:flex;position:sticky;top:0}.legal-header__brand{letter-spacing:-.045em;color:var(--ink);align-items:baseline;gap:2px;font-size:21px;font-weight:800;display:flex}.legal-header__brand span{color:var(--forest)}.legal-content{max-width:720px;margin:0 auto;padding:clamp(36px,6vw,64px) clamp(18px,4vw,40px) 96px}.legal-content h1{margin-bottom:6px}.legal-updated{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-40);margin:0 0 8px;font-size:12.5px}.legal-intro{border:1px solid var(--line-strong);border-left:4px solid var(--forest);background:var(--paper-alt);color:var(--ink-70);border-radius:6px;margin:18px 0 0;padding:15px 16px;font-size:14.5px;line-height:1.6}.legal-content section{margin-top:40px}.legal-content h2{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;margin-bottom:14px;padding-bottom:10px;font-size:20px;display:flex}.legal-content h2 span{font-family:var(--font-mono);color:var(--sage);font-size:12px;font-weight:500}.legal-content h3{margin-top:22px;font-size:15.5px}.legal-content p{color:var(--ink-70);margin:0 0 14px;font-size:15px;line-height:1.65}.legal-content ul,.legal-content ol{color:var(--ink-70);margin:0 0 14px;padding-left:22px;font-size:15px;line-height:1.65}.legal-content li{margin-bottom:6px}.legal-content strong{color:var(--ink)}.legal-fill{background:var(--clay-wash);color:var(--clay-deep);font-family:var(--font-mono);border-radius:4px;padding:1px 6px;font-size:.9em}.legal-toc{border:1px solid var(--line);background:var(--card);border-radius:8px;flex-wrap:wrap;gap:8px 18px;margin:22px 0 0;padding:16px 18px;display:flex}.legal-toc a{color:var(--ink-60);font-size:13.5px}.legal-toc a:hover{color:var(--forest)}.legal-contact{border:1px solid var(--line);background:var(--stone);border-radius:8px;margin-top:40px;padding:18px 20px}.page{text-align:left;box-sizing:border-box;flex:1;width:100%;max-width:1080px;margin:0 auto;padding:28px 32px 64px}.page-header{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-bottom:24px;padding-bottom:18px;display:flex}.page-header h1{margin:0}.app-header{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fbfaf7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;padding:14px clamp(18px,4vw,40px);display:flex;position:sticky;top:0}.app-header__brand{letter-spacing:-.045em;color:var(--ink);align-items:baseline;gap:2px;font-size:21px;font-weight:800;display:flex}.app-header__brand span{color:var(--forest)}.app-header__brand:after{content:"";background:var(--sage);border-radius:50%;width:5px;height:5px;margin-left:4px;display:inline-block}.app-header__nav{flex-wrap:wrap;align-items:center;gap:20px;font-size:14.5px;font-weight:600;display:flex}.app-header__nav a{color:var(--ink-50)}.app-header__nav a:hover{color:var(--ink);text-decoration:none}.app-header__nav a.active{color:var(--forest)}.skip-link{z-index:100;background:var(--forest);color:var(--paper);box-shadow:3px 3px 0 var(--forest-deep);border-radius:6px;padding:10px 16px;font-size:14px;font-weight:600;transition:top .12s;position:fixed;top:-60px;left:12px}.skip-link:focus{top:12px}.app-header__menu-btn{width:40px;height:40px;box-shadow:none;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;padding:0;display:none}.app-header__menu-btn:hover{box-shadow:none;transform:none}.app-header__menu-btn span{background:var(--ink);border-radius:1px;height:2px;display:block}.app-header__backdrop{z-index:30;opacity:0;pointer-events:none;background:#14140f66;transition:opacity .18s;position:fixed;inset:0}.app-header__backdrop.open{opacity:1;pointer-events:auto}.app-header__drawer{z-index:31;background:var(--paper);border-left:1px solid var(--line);flex-direction:column;width:min(80vw,300px);padding:18px;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-12px 0 32px -16px #14140f59}.app-header__drawer.open{transform:translate(0)}.app-header__drawer-links{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:18px;padding-top:14px;display:flex}.app-header__drawer-links a{color:var(--ink-60);border-radius:7px;padding:12px 10px;font-size:15.5px;font-weight:600}.app-header__drawer-links a:hover{background:var(--stone);text-decoration:none}.app-header__drawer-links a.active{background:var(--forest-wash);color:var(--forest)}@media (width<=720px){.app-header__nav--desktop,.app-header__profile--desktop{display:none}.app-header__menu-btn{display:flex}}.app-header__profile{color:var(--ink-60);border-radius:20px;align-items:center;gap:9px;padding:5px 10px 5px 5px;display:flex}.app-header__profile:hover{background:var(--stone);color:var(--ink);text-decoration:none}.app-header__profile.active{background:var(--forest-wash);color:var(--forest)}.app-header__avatar{background:var(--forest);width:26px;height:26px;color:var(--paper);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.app-header__name{font-size:14px;font-weight:600}.page--narrow{max-width:640px}.page--wide{max-width:1280px}button{font:inherit;cursor:pointer;border:1.5px solid var(--forest-deep);background:var(--forest);color:var(--paper);box-shadow:3px 3px 0 var(--forest-deep);border-radius:7px;align-items:center;gap:8px;padding:10px 18px;font-size:14.5px;font-weight:600;transition:transform 90ms,box-shadow 90ms,opacity 90ms;display:inline-flex}button:hover:not(:disabled){box-shadow:1.5px 1.5px 0 var(--forest-deep);transform:translate(1.5px,1.5px)}button:active:not(:disabled){box-shadow:0 0 0 var(--forest-deep);transform:translate(3px,3px)}button:disabled{cursor:default;opacity:.55;transform:none}.btn-quiet{border:1.5px solid var(--input-border);color:var(--ink-60);box-shadow:none;background:0 0}.btn-quiet:hover:not(:disabled){border-color:var(--ink);color:var(--ink);box-shadow:none;transform:none}.btn-delete{border:1.5px solid var(--clay-input-border);color:var(--clay);box-shadow:none;background:0 0}.btn-delete:hover:not(:disabled){background:var(--clay-wash);box-shadow:none;transform:none}.btn-small{padding:6px 12px;font-size:13px}.btn-icon{border:1.5px solid var(--input-border);width:36px;height:36px;color:var(--ink-60);box-shadow:none;background:0 0;justify-content:center;padding:0}.btn-icon:hover:not(:disabled){border-color:var(--ink);color:var(--ink);box-shadow:none;transform:none}input,select,textarea{border:1.5px solid var(--input-border);background:var(--card);color:var(--ink);border-radius:7px;padding:10px 13px;font-size:14.5px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--forest);outline:none;box-shadow:0 0 0 3px #12503a24}input::placeholder{color:var(--ink-30)}.field-readonly{background:var(--stone);border-color:var(--line);color:var(--ink-50);cursor:not-allowed}.field-readonly-inline{color:var(--ink-50);font-size:14.5px}.danger-zone{border-color:var(--clay-border)}.danger-zone h2{color:var(--clay-deep)}.cookie-banner{z-index:50;border:1px solid var(--line-strong);background:var(--card);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px 20px;max-width:560px;margin:0 auto;padding:16px 18px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 20px 40px -24px #14140f59}.cookie-banner p{color:var(--ink-60);flex:240px;margin:0;font-size:13.5px;line-height:1.5}.cookie-banner button{flex:none;padding:8px 16px}.auth-page{flex:1;justify-content:center;align-items:center;padding:24px;display:flex;position:relative}.auth-page__back{color:var(--ink-50);font-size:14px;font-weight:600;position:absolute;top:24px;left:24px}.auth-page__back:hover{color:var(--ink)}.auth-brand{letter-spacing:-.045em;color:var(--ink);align-items:baseline;gap:2px;margin-bottom:22px;font-size:22px;font-weight:800;display:flex}.auth-brand span{color:var(--forest)}.auth-brand:hover{text-decoration:none}.auth-form{text-align:left;flex-direction:column;gap:6px;width:100%;max-width:380px;display:flex}.auth-form h1{margin:0 0 18px;font-size:27px}.auth-form label{color:var(--ink);margin-top:10px;font-size:13.5px;font-weight:600}.auth-form button{justify-content:center;margin-top:18px}.form-error{border:1px solid var(--clay-border);border-left:3px solid var(--clay);background:var(--clay-wash);color:var(--clay-deep);border-radius:6px;gap:7px;margin:10px 0 0;padding:12px 14px;font-size:13.5px;line-height:1.5;display:flex}.oauth-button{border:1.5px solid var(--input-border);background:var(--card);color:var(--ink);text-align:center;cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:10px;margin-top:10px;padding:10px 18px;font-size:14.5px;font-weight:600;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.oauth-button:hover{border-color:var(--ink-40);background:var(--paper-alt);color:var(--ink);text-decoration:none}.oauth-button svg{flex:none}.password-field{border:1.5px solid var(--input-border);background:var(--card);border-radius:7px;align-items:center;width:100%;display:flex}.password-field:focus-within{border-color:var(--forest);box-shadow:0 0 0 3px #12503a24}.password-field input{background:0 0;border:none;flex:1;width:auto;min-width:0}.password-field input:focus-visible{box-shadow:none;outline:none}.password-field__toggle{box-shadow:none;color:var(--ink-40);background:0 0;border:none;flex:none;margin-right:4px;padding:6px 10px;font-size:12.5px;font-weight:600}.password-field__toggle:hover:not(:disabled){box-shadow:none;color:var(--ink);transform:none}.auth-form p{color:var(--ink-50);margin-top:14px;font-size:14px}.upload-section{flex-wrap:wrap;align-items:flex-start;gap:10px;margin-bottom:32px;display:flex}.upload-button{border:1.5px dashed var(--input-border);background:var(--paper-alt);color:var(--ink);cursor:pointer;border-radius:7px;align-items:center;gap:9px;padding:12px 18px;font-size:14.5px;font-weight:600;display:inline-flex}.upload-button:has(input:disabled){opacity:.7;cursor:default}.upload-button:before{content:"";background:var(--forest);border-radius:50%;width:7px;height:7px}.upload-button:has(input:disabled):before{animation:1.1s step-end infinite finme-blink}.manual-entry{flex-wrap:wrap;gap:8px;width:100%;margin-top:4px;display:flex}.manual-entry input{flex:200px;min-width:0}.upload-progress-track{background:var(--line);border-radius:2px;width:100%;max-width:320px;height:8px;margin-top:4px;overflow:hidden}.upload-progress-fill{background:var(--forest);border-radius:2px;height:100%;transition:width .22s linear}.summary-section{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-tile{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-direction:column;gap:6px;padding:20px 22px;display:flex}.stat-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);font-size:10.5px;font-weight:500}.stat-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:32px;font-weight:800}.chart-card{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:20px 22px}.chart-card--wide{grid-column:1/-1}.chart-card h2{margin:0 0 14px;font-size:15px;font-weight:700}.transaction-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14.5px}.transaction-table td{text-overflow:ellipsis;overflow:hidden}.transaction-table th,.transaction-table td{text-align:left;border-bottom:1px solid var(--line);padding:11px 14px}.transaction-table th{color:var(--ink-50);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--stone);font-size:9.5px;font-weight:500}.transaction-table tbody tr:hover{background:var(--paper-alt)}.transaction-table td:last-child,.transaction-table th:last-child{text-align:right}@media (width<=860px){.transaction-table th,.transaction-table td{padding:10px 7px}}.amount-credit{color:var(--forest);font-weight:700}.tag{border:1px solid var(--line);background:var(--stone);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50);white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:9.5px;font-weight:500;display:inline-block}.tag--on-time{background:var(--forest-wash);border-color:var(--forest-border);color:var(--forest)}.tag--late,.tag--defaulted{background:var(--clay-wash);border-color:var(--clay-border);color:var(--clay)}@media (width<=720px){.transaction-table thead{display:none}.transaction-table,.transaction-table tbody,.transaction-table tr,.transaction-table td{width:100%;display:block}.transaction-table tr{border-bottom:1px solid var(--line);padding:12px 4px}.transaction-table td{text-align:right;border-bottom:none;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 4px;display:flex}.transaction-table td:before{content:attr(data-label);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-40);text-align:left;font-size:9.5px;font-weight:500}.transaction-table td:last-child,.transaction-table th:last-child{text-align:right}}.recommendation-list{color:var(--ink-70);margin:0;padding-left:20px;line-height:1.6}.recommendation-list li{margin-bottom:8px}.recommendation-empty{color:var(--ink-50);margin:0;font-size:14px}.credit-disclaimer{border:1px solid var(--clay-border);border-left:4px solid var(--clay);background:var(--clay-wash);color:var(--clay-deep);border-radius:6px;gap:13px;margin:18px 0 0;padding:15px 16px;font-size:14px;line-height:1.5;display:flex}.credit-form,.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.credit-form input[type=text],.filter-bar input[type=text]{flex:200px}.credit-form input[type=number]{flex:0 150px}.transaction-edit-form{border:1.5px solid var(--forest);background:var(--paper-alt);box-shadow:3px 3px 0 var(--forest);border-radius:8px;margin-bottom:14px;padding:16px}.editing-row{outline:1.5px solid var(--forest);outline-offset:-1px}.row-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}.budget-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.budget-card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.budget-card-header h3{margin:0;font-size:18px}.budget-progress-track{background:var(--stone);border:1px solid var(--line);border-radius:2px;width:100%;height:14px;overflow:hidden}.budget-progress-fill{background:var(--forest);height:100%}.budget-card--over .budget-progress-fill{background:var(--clay)}.budget-figures{font-family:var(--font-mono);color:var(--ink-50);margin:10px 0 2px;font-size:13px}.budget-over-note{color:var(--clay);margin:0;font-size:14px;font-weight:700}.calendar-nav{justify-content:center;align-items:center;gap:20px;margin:4px 0 20px;display:flex}.calendar-nav h2{text-align:center;min-width:220px;margin:0}.calendar-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:24px;display:grid}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-side{flex-direction:column;gap:12px;display:flex;position:sticky;top:16px}.calendar-panel{border:1px solid var(--line);background:var(--card);border-radius:5px;padding:16px 18px}.calendar-panel-title{font-size:11px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-40);margin:0 0 12px}.calendar-panel-hint{color:var(--ink-50);margin:0;font-size:12.5px}.calendar-stats{flex-direction:column;gap:11px;margin:0;display:flex}.calendar-stats div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.calendar-stats dt{color:var(--ink-50);font-size:12.5px}.calendar-stats dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-size:13px;font-weight:700}.calendar-stat-lead{font-size:17px}.calendar-day-list{flex-direction:column;gap:12px;max-height:340px;margin:0;padding:0 4px 0 0;list-style:none;display:flex;overflow-y:auto}.calendar-day-list li{font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:12.5px;display:grid}.calendar-day-list-merchant{overflow-wrap:anywhere;grid-column:1;font-weight:700;line-height:1.35}.calendar-day-list li>span:last-child{font-family:var(--font-mono);white-space:nowrap;text-align:right;grid-area:1/2;font-weight:700}.calendar-day-list-meta{color:var(--ink-50);grid-area:2/1;font-size:11px}.calendar-breakdown-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0 0 10px;font-size:17px;font-weight:700}.calendar-breakdown{flex-direction:column;gap:11px;margin:0;padding:0;list-style:none;display:flex}.calendar-breakdown-row{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;display:flex}.calendar-breakdown-name{color:var(--ink-50);overflow-wrap:anywhere;font-size:12.5px}.calendar-breakdown-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700}.calendar-breakdown-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.calendar-breakdown-bar span{background:var(--forest);height:100%;display:block}.calendar-weekday{text-align:center;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-40);padding-bottom:6px;font-size:10px}.calendar-day{aspect-ratio:1;border:1px solid var(--line);background:var(--card);min-height:60px;color:var(--ink);cursor:pointer;box-shadow:none;border-radius:5px;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:4px;min-width:0;padding:8px;font-size:12px;display:flex;overflow:hidden}.calendar-day:hover:not(:disabled){border-color:var(--forest-border);transform:none}.calendar-day--blank{cursor:default;visibility:hidden;background:0 0;border:none}.calendar-day--selected{border-color:var(--forest);outline:1.5px solid var(--forest);outline-offset:-1px}.calendar-day-number{font-variant-numeric:tabular-nums;font-weight:700}.calendar-day-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-50);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}@media (width<=1180px){.calendar-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}}@media (width<=980px){.calendar-layout{grid-template-columns:minmax(0,1fr);gap:18px}.calendar-side{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;display:grid;position:static}.calendar-day-list{max-height:260px}}@media (width<=720px){.calendar-side{grid-template-columns:minmax(0,1fr)}.calendar-nav{gap:12px}.calendar-nav h2{min-width:0;font-size:20px}.calendar-grid{gap:4px}.calendar-day{aspect-ratio:auto;min-height:52px;padding:5px 4px;font-size:11px}.calendar-day-total{font-size:10px}.calendar-weekday{letter-spacing:.04em;font-size:9px}.calendar-panel{padding:14px}.page--wide{padding-left:14px;padding-right:14px}}@media (width<=400px){.calendar-day{min-height:46px;padding:4px 3px}.calendar-day-total{font-size:9px}}.pager{font-family:var(--font-mono);color:var(--ink-50);justify-content:center;align-items:center;gap:16px;margin-top:16px;font-size:12.5px;display:flex}.skeleton-list{flex-direction:column;gap:4px;display:flex}.skeleton-row{border-bottom:1px solid var(--stone);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.skeleton-bar{background:linear-gradient(90deg, var(--stone) 0%, var(--paper-alt) 50%, var(--stone) 100%);background-size:420px 100%;border-radius:2px;height:11px;animation:1.4s linear infinite finme-shimmer;display:block}.empty-state{max-width:46ch;padding:28px 0}.empty-state p{color:var(--ink-50);margin:0 0 16px;font-size:15px;line-height:1.55}
