@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,650&display=swap";:root{color:#173b33;font-synthesis:none;background:#f5f1e8;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at 85% 10%,#dce9d6 0,#0000 28%),#f5f1e8;min-width:320px;min-height:100dvh;margin:0}button{font:inherit}main{width:min(1120px,100% - 40px);margin:0 auto;padding:72px 0 36px}.wordmark{letter-spacing:-.02em;align-items:center;gap:9px;margin-bottom:34px;font-weight:800;display:flex}.wordmark img{border-radius:9px;width:32px;height:32px}.hero{justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px;display:flex}.eyebrow{color:#c4603b;letter-spacing:.18em;font-size:.72rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;margin:12px 0 20px;font-family:Fraunces,serif;font-size:clamp(3rem,7vw,6rem);line-height:.95}.hero p{color:#527068;max-width:520px;margin-bottom:0;font-size:1.08rem;line-height:1.6}.primary{color:#fff;cursor:pointer;white-space:nowrap;background:#173b33;border:0;border-radius:14px;padding:15px 20px;font-weight:700;box-shadow:0 8px 18px #173b3328}.hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:430px;display:flex}.secondary{color:#173b33;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #173b33;border-radius:14px;justify-content:center;align-items:center;padding:14px 18px;font-weight:700;text-decoration:none;display:inline-flex}.bank-status{color:#527068;text-align:right;flex-basis:100%;font-size:.78rem}.signed-in{color:#6c7b76;text-align:right;flex-basis:100%;font-size:.76rem}.text-button{color:#6c7b76;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:8px;text-decoration:underline}.login-page{grid-template-columns:1.15fr .85fr;width:100%;min-height:100vh;padding:0;display:grid}.login-brand{color:#173b33;background:#f5f1e8;flex-direction:column;justify-content:center;padding:clamp(48px,8vw,110px);display:flex}.brand-wordmark{width:min(100%,620px);height:auto;margin-bottom:26px}.login-brand h1{margin-top:24px;font-size:clamp(3rem,6vw,5.4rem)}.login-brand p{color:#526b63;max-width:520px;font-size:1.05rem;line-height:1.7}.brand-logo.large{width:72px;height:72px;margin-bottom:38px;box-shadow:0 16px 35px #07181355}.login-panel{place-items:center;padding:40px;display:grid}.login-card{background:#fffdf8;border:1px solid #d9d5c9;border-radius:26px;width:min(390px,100%);padding:38px;box-shadow:0 24px 70px #173b3318}.brand-logo{border-radius:13px;width:48px;height:48px;margin-bottom:22px}.login-card h2{margin-bottom:8px}.login-card>p{color:#6c7b76;margin-bottom:30px}.social-login{gap:10px;display:grid}.social-button{color:#173b33;cursor:pointer;background:#fff;border:1px solid #cdd3cc;border-radius:12px;justify-content:center;align-items:center;gap:11px;min-height:46px;font-weight:700;display:flex}.social-button span{text-align:center;width:24px;font-weight:800}.social-button.google span{color:#4285f4}.social-button:disabled{cursor:not-allowed}.login-divider{color:#89948f;align-items:center;gap:12px;margin:24px 0;font-size:.73rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:#e0ddd4;flex:1;height:1px}.login-card form{flex-direction:column;gap:18px;display:flex}.login-card label{color:#455d57;flex-direction:column;gap:8px;font-size:.82rem;font-weight:700;display:flex}.login-card input{color:#173b33;width:100%;font:inherit;background:#fff;border:1px solid #cdd3cc;border-radius:12px;outline:none;padding:13px 14px}.login-card input:focus{border-color:#477f6f;box-shadow:0 0 0 3px #dce9d6}.login-submit{width:100%;margin-top:4px}.login-error{color:#803319;background:#ffe1d7;border-radius:10px;padding:10px 12px;font-size:.82rem}.login-status{color:#173b33;background:#dce9d6;border-radius:10px;padding:10px 12px;font-size:.82rem}.mfa-actions{justify-content:space-between;gap:12px;margin-top:18px;display:flex}.login-card small{text-align:center;color:#89948f;margin-top:22px;display:block}.app-loading{place-items:center;min-height:100vh;display:grid}.app-loading img{width:64px;height:64px;animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.7;transform:scale(1.08)}}button:disabled{opacity:.55;cursor:wait}.error{color:#803319;background:#ffe1d7;border-radius:12px;margin-bottom:20px;padding:14px 16px}.summary{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:56px;display:grid}.summary article{background:#fffdf7b8;border:1px solid #d9d5c9;border-radius:18px;flex-direction:column;gap:10px;padding:22px;display:flex}.summary article.accent{background:#dce9d6;border-color:#b9cdb1}.summary span{color:#6c7b76;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600}.summary strong{font-family:Fraunces,serif;font-size:1.8rem}.import-panel{background:#fffdf8;border:1px solid #d9d5c9;border-radius:26px;margin-bottom:24px;padding:28px;box-shadow:0 22px 60px #173b330d}.import-panel p{color:#527068;max-width:640px;line-height:1.55}.import-form{grid-template-columns:minmax(140px,.8fr) minmax(160px,1fr) minmax(180px,1.2fr) auto;align-items:end;gap:12px;display:grid}.import-form label{color:#6c7b76;text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:6px;font-size:.68rem;font-weight:700;display:flex}.import-form input,.import-form select{color:#173b33;min-width:0;height:46px;font:inherit;text-transform:none;background:#fff;border:1px solid #d5d8d2;border-radius:12px;padding:0 12px;font-size:.9rem}.import-form input[type=file]{padding:10px 12px}.import-status{color:#527068;margin-top:12px;font-size:.82rem;display:block}.saved-statements{flex-direction:column;gap:10px;margin:18px 0 0;padding:0;list-style:none;display:flex}.saved-statements li{background:#fff;border:1px solid #e4e0d6;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.saved-statements div{flex-direction:column;gap:3px;min-width:0;display:flex}.saved-statements strong{color:#173b33;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.saved-statements span{color:#6c7b76;font-size:.76rem}.account-groups{flex-direction:column;gap:16px;display:flex}.account-group{background:#fffdf8;border:1px solid #d9d5c9;border-radius:26px;padding:28px;box-shadow:0 22px 60px #173b330d}.account-group .month-heading{align-items:flex-start}.account-group .month-heading span{color:#6c7b76;margin-top:4px;font-size:.78rem;font-weight:600;display:block}.account-totals{color:#527068;gap:16px;margin:4px 0 8px;font-size:.8rem;display:flex}.ledger{background:#fffdf8;border:1px solid #d9d5c9;border-radius:26px;padding:28px;box-shadow:0 22px 60px #173b330d}.section-heading{border-bottom:1px solid #e4e0d6;justify-content:space-between;align-items:center;padding-bottom:22px;display:flex}.filter-panel{border-bottom:1px solid #e4e0d6;padding:20px 0}.smart-search{gap:10px;display:flex}.search-field{color:#6c7b76;background:#fff;border:1px solid #cdd3cc;border-radius:13px;flex:1;align-items:center;gap:9px;min-width:0;padding:0 14px;display:flex}.search-field:focus-within{border-color:#477f6f;box-shadow:0 0 0 3px #dce9d6}.search-field input{color:#173b33;width:100%;min-width:0;height:46px;font:inherit;background:0 0;border:0;outline:0}.smart-button{color:#173b33;cursor:pointer;white-space:nowrap;background:#dce9d6;border:0;border-radius:13px;min-height:46px;padding:0 16px;font-weight:700}.filter-grid{grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin-top:12px;display:grid}.filter-grid label{color:#6c7b76;text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:5px;font-size:.68rem;font-weight:700;display:flex}.filter-grid select,.filter-grid input{color:#173b33;min-width:0;height:40px;font:inherit;text-transform:none;background:#fff;border:1px solid #d5d8d2;border-radius:10px;padding:0 10px;font-size:.78rem}.clear-filters{color:#527068;cursor:pointer;background:0 0;border:1px solid #d5d8d2;border-radius:10px;align-self:end;height:40px;font-size:.78rem;font-weight:700}.search-status{color:#527068;margin-top:10px;font-size:.76rem;display:block}.page-nav{flex-wrap:wrap;gap:8px;margin:-20px 0 32px;display:flex}.page-nav a{color:#527068;background:#fff;border:1px solid #d5d8d2;border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:700;text-decoration:none}.page-nav a[aria-current=page]{color:#fff;background:#173b33;border-color:#173b33}.review-banner{color:#8a452c;background:#f0d8c7;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;margin:-12px 0 24px;padding:14px 18px;font-weight:700;text-decoration:none;display:flex}.review-banner:hover{background:#ebc9b3}.merchant-group{border-bottom:1px solid #ece8de;padding:22px 0}.merchant-group:last-child{border-bottom:0}.merchant-meta{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.merchant-meta div{flex-direction:column;gap:4px;min-width:0;display:flex}.merchant-meta span{color:#7a8783;font-size:.82rem}.charge-list{color:#7a8783;flex-direction:column;gap:4px;margin:12px 0 14px;padding:0;font-size:.82rem;list-style:none;display:flex}.category-picks{flex-wrap:wrap;gap:8px;display:flex}.category-picks button{color:#173b33;text-transform:capitalize;cursor:pointer;background:#fff;border:1px solid #c8cdc6;border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:700}.category-picks button:hover:not(:disabled){background:#dce9d6;border-color:#173b33}.month-pager{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:28px;display:grid}.month-pager h2{text-align:center;margin:0;font-size:clamp(1.6rem,4vw,2.2rem)}.month-pager>div{flex-direction:column;align-items:center;gap:8px;display:flex}.month-jump select{color:#173b33;height:36px;font:inherit;background:#fff;border:1px solid #d5d8d2;border-radius:10px;padding:0 10px;font-size:.82rem}.month-group{border-bottom:1px solid #ece8de}.month-group:last-child{border-bottom:0}.month-heading{justify-content:space-between;align-items:baseline;gap:12px;padding:22px 0 4px;display:flex}.month-heading h3{margin:0;font-family:Fraunces,serif;font-size:1.35rem}.month-heading strong{color:#173b33}.plan-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;display:grid}.plan-form label{color:#6c7b76;text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:6px;font-size:.68rem;font-weight:700;display:flex}.plan-form input,.plan-form select{color:#173b33;min-width:0;height:46px;font:inherit;text-transform:none;background:#fff;border:1px solid #d5d8d2;border-radius:12px;padding:0 12px;font-size:.9rem}.plan-form button{min-height:46px}h2{margin:8px 0 0;font-family:Fraunces,serif;font-size:2rem}.count{color:#6c7b76;font-size:.85rem}.empty{text-align:center;color:#6c7b76;padding:68px 20px}.empty h3{color:#173b33;margin-bottom:8px;font-family:Fraunces,serif;font-size:1.4rem}.sprout{background:#dce9d6;border-radius:50%;place-items:center;width:44px;height:44px;margin:0 auto 14px;font-size:1.4rem;display:grid}.transaction{border-bottom:1px solid #ece8de;grid-template-columns:46px minmax(0,1fr) auto auto auto;align-items:center;gap:16px;padding:20px 0;display:grid}.delete-expense{color:#8a452c;justify-self:end;font-size:.78rem}.transaction:last-child{border-bottom:0}.merchant-icon{color:#8a452c;background:#f0d8c7;border-radius:14px;place-items:center;width:46px;height:46px;font-weight:700;display:grid}.details{flex-direction:column;gap:5px;min-width:0;display:flex}.details span{color:#7a8783;font-size:.82rem}.details .category,.classification{color:#46665e;width:max-content;max-width:100%;font:inherit;text-transform:capitalize;cursor:pointer;background:#e7eee3;border:0;border-radius:99px;padding:3px 8px;font-size:.69rem;font-weight:700}.details .category.other,.classification.personal{color:#8a452c;background:#f0d8c7}.classification.business{color:#46665e;background:#dce9d6}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.amount{margin-right:8px}.amount.credit{color:#2f6b4f}.pnl-ledger{margin-bottom:24px}.pnl-categories{flex-direction:column;gap:18px;margin:0;padding:18px 0 0;list-style:none;display:flex}.pnl-category{text-transform:capitalize;border-bottom:1px solid #e4e0d6;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.pnl-lines{flex-direction:column;gap:10px;margin:0;padding:8px 0 0;list-style:none;display:flex}.pnl-lines li{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.pnl-lines div{flex-direction:column;gap:3px;min-width:0;display:flex}.pnl-lines span{color:#7a8783;font-size:.82rem}.empty.compact{padding:36px 16px}.actions{gap:8px;display:flex}.actions button{color:#173b33;cursor:pointer;background:#fff;border:1px solid #c8cdc6;border-radius:10px;padding:8px 11px;font-size:.82rem;font-weight:600}.actions button:hover{border-color:#173b33}.pill{text-transform:capitalize;border-radius:99px;padding:7px 10px;font-size:.75rem;font-weight:700}.pill.business{background:#dce9d6}.pill.personal{background:#f0d8c7}.receipt-action{grid-column:2/-1;align-items:center;gap:10px;display:flex}.receipt-button{color:#527068;cursor:pointer;border:1px dashed #aebbb4;border-radius:10px;align-items:center;gap:7px;padding:8px 11px;font-size:.8rem;font-weight:700;display:inline-flex}.receipt-button:hover{color:#173b33;background:#f6f8f3;border-color:#173b33}.receipt-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.receipt-status{color:#527068;font-size:.78rem}footer{text-align:center;color:#7a8783;margin-top:28px;font-size:.78rem}footer a,.login-card small a{color:inherit}.offline-banner{z-index:20;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;color:#fff;text-align:center;background:#8a452c;font-size:.82rem;font-weight:700;position:sticky;top:0}@media (width<=760px){.login-page{grid-template-columns:1fr}.login-brand{display:none}main{width:min(100% - 28px,1120px);padding:calc(30px + env(safe-area-inset-top)) 0 calc(24px + env(safe-area-inset-bottom))}.hero{flex-direction:column;align-items:flex-start;margin-bottom:36px}.wordmark{margin-bottom:24px}.hero-actions{justify-content:stretch;width:100%}.hero-actions button,.hero-actions a.secondary{flex:calc(50% - 6px);min-height:48px}.hero-actions .primary{flex-basis:100%}.signed-in,.bank-status{text-align:left}.summary{grid-template-columns:repeat(2,1fr);margin-bottom:34px}.summary article{padding:17px}.summary strong{font-size:1.5rem}.import-panel,.account-group{border-radius:20px;padding:20px 16px}.import-form{grid-template-columns:1fr}.import-form button{min-height:48px}.plan-form{grid-template-columns:1fr 1fr}.plan-form button{grid-column:1/-1;min-height:48px}.month-pager{grid-template-columns:1fr 1fr;gap:10px}.month-pager>div{order:-1;grid-column:1/-1}.month-pager button{min-height:48px}.saved-statements li{flex-direction:column;align-items:flex-start}.ledger{border-radius:20px;padding:20px 16px}.smart-search{flex-direction:column}.smart-button{width:100%}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction{grid-template-columns:42px 1fr auto}.actions,.pill,.classification{grid-column:2/-1;justify-self:start}.actions{width:100%}.actions button{flex:1;min-height:44px}.category-picks button{min-height:40px}.receipt-button{min-height:44px}.login-panel{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.login-card{padding:30px 24px}.login-card input,.login-submit{min-height:48px}}@media (display-mode:standalone){body{overscroll-behavior-y:none}}
