@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--canvas:#f6f7f4;--surface:#fff;--ink:#26352e;--muted:#89928c;--line:#e9ece7;--green:#284639;--green-2:#dff0ce;--lime:#d4eba9;--coral:#f1a48b;--gold:#edca76;--shadow:0 6px 24px rgba(40,60,46,.045);font-family:'DM Sans',sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--canvas);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a9d876;outline-offset:2px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 18px;z-index:5}.brand{height:44px;display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font:800 17px Manrope,sans-serif;letter-spacing:-.6px}.brand-mark,.mobile-brand .brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--green);color:var(--lime);font:800 20px Manrope,sans-serif}.brand-light{font-weight:500;color:#778279}.side-label,.eyebrow{color:#9aa39c;font-size:10px;font-weight:700;letter-spacing:1.3px}.side-label{margin:47px 0 12px 12px}.nav-list{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#758078;text-align:left;padding:12px 13px;border-radius:10px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:12px}.nav-item.active{background:#edf3e9;color:var(--green)}.nav-icon{font-size:19px;width:18px;text-align:center}.side-bottom{margin-top:auto;display:grid;gap:8px}.privacy-note{display:flex;align-items:center;gap:10px;padding:12px 10px;background:#f6f8f4;border-radius:10px;margin-bottom:12px}.privacy-note b,.privacy-note small{display:block}.privacy-note b{font-size:11px}.privacy-note small{font-size:10px;color:var(--muted);margin-top:4px}.privacy-dot{width:8px;height:8px;border-radius:100%;background:#80b47a;box-shadow:0 0 0 4px #e4f0e0}.text-button{border:0;background:none;color:#77847a;text-align:left;font-size:11px;padding:7px 10px}.text-button:hover,.link-button:hover{color:var(--green)}.main-area{margin-left:240px;padding:0 48px 50px;max-width:1580px}.topbar{height:84px;display:flex;align-items:center;justify-content:flex-end;gap:17px;border-bottom:1px solid var(--line)}.month-control{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);padding:6px 8px 6px 12px;border-radius:9px}.month-control select{border:0;background:transparent;color:#425048;font-size:12px;font-weight:600;min-width:91px;outline:none}.calendar-icon{font-size:16px;color:#839187}.icon-button{border:0;background:transparent;color:#526258;font-size:18px;border-radius:7px;width:30px;height:30px}.icon-button:hover{background:#f1f4ef}.primary-button{border:0;border-radius:8px;background:var(--green);color:white;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;font-size:12px;font-weight:700;box-shadow:0 3px 8px #28463914;transition:transform .15s,background .15s}.primary-button:hover{background:#365b47;transform:translateY(-1px)}.mobile-brand{display:none}.view{padding-top:40px}.hidden{display:none!important}.welcome-row,.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.welcome-row h1,.page-heading h1{font:700 28px Manrope,sans-serif;letter-spacing:-1px;margin:8px 0 5px}.subheading{font-size:12px;color:var(--muted);margin:0}.month-pill{padding:8px 12px;background:#edf1e9;border-radius:20px;color:#657267;font-size:10px;font-weight:700}.summary-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px}.summary-card{position:relative;isolation:isolate;overflow:hidden;background:#fff;border:1px solid #edf0eb;border-radius:13px;min-height:150px;padding:19px 20px;box-shadow:var(--shadow)}.balance-card{background:var(--green);color:white;border:0}.card-heading{display:flex;align-items:center;justify-content:space-between;color:#78847a;font-size:11px;font-weight:600}.balance-card .card-heading{color:#d0ddcf}.card-symbol{color:var(--lime);font-size:20px}.summary-value{font:700 25px Manrope,sans-serif;letter-spacing:-.7px;margin:17px 0 13px;position:relative;z-index:1}.balance-card .summary-value{color:#f3f8ec;font-size:28px}.card-foot{display:flex;align-items:center;gap:7px;color:#929b94;font-size:10px;position:relative;z-index:1}.balance-card .card-foot{color:#c5d4c6}.balance-arrow{margin-left:auto;color:#d5edb1;font-size:17px}.metric-icon{height:27px;width:27px;border-radius:9px;display:grid;place-items:center;font-size:15px}.income-icon{color:#52784d;background:#edf6e7}.expense-icon{color:#bb735d;background:#fff0e9}.metric-dot{height:7px;width:7px;border-radius:50%}.metric-dot.green{background:#96c67f}.metric-dot.coral{background:#ef9e84}.balance-orbit{position:absolute;border:1px solid #ffffff13;border-radius:50%;z-index:-1}.orbit-one{width:165px;height:165px;right:-38px;top:31px}.orbit-two{width:112px;height:112px;right:-11px;top:57px}.content-grid{display:grid;grid-template-columns:.92fr 1.3fr;gap:17px;margin-top:20px}.panel{background:#fff;border:1px solid #edf0eb;border-radius:13px;box-shadow:var(--shadow)}.category-panel,.recent-panel{padding:20px 21px;min-height:278px}.panel-title-row{display:flex;align-items:center;justify-content:space-between}.panel-title-row h2{font:700 14px Manrope,sans-serif;letter-spacing:-.25px;margin:0 0 5px}.panel-title-row p{margin:0;color:var(--muted);font-size:10px}.panel-badge{padding:6px 9px;border-radius:6px;background:#f4f6f2;font-size:10px;font-weight:700;color:#68746a}.category-chart{display:grid;gap:15px;margin-top:25px}.category-line{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;align-items:center;gap:10px}.category-name{font-size:10px;color:#657168;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-track{height:6px;border-radius:10px;background:#f0f2ef;overflow:hidden}.category-fill{height:100%;border-radius:10px;background:#92bb71}.category-amount{font-size:9px;color:#778278;font-weight:600;text-align:right}.link-button{background:none;border:0;color:#75867a;font-size:10px;font-weight:600}.link-button span{font-size:15px;margin-left:3px}.transaction-list{margin-top:13px}.transaction-item{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1f3f0}.transaction-item:last-child{border-bottom:0}.tx-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:14px}.tx-icon.expense{background:#fff1e9;color:#c87b61}.tx-icon.income{background:#edf5e8;color:#64895b}.tx-title{font-size:10px;font-weight:700;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-subtitle{font-size:9px;color:#98a098;margin-top:4px}.tx-amount{font-size:10px;font-weight:700;text-align:right;white-space:nowrap}.tx-amount.negative{color:#ad6f5d}.tx-amount.positive{color:#638457}.bottom-tip{margin-top:17px;display:flex;align-items:center;gap:8px;color:#8a958b;font-size:10px}.tip-icon{color:#a8ca7e;font-size:15px}.bottom-tip .text-button{margin-left:auto;color:#638157}.mobile-nav{display:none}.page-heading{align-items:center;margin-bottom:23px}.page-heading h1{margin-top:7px}.all-transactions{padding:18px 20px}.filter-row{display:flex;gap:10px;margin-bottom:15px}.search-box{height:37px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:7px;flex:1;max-width:340px;color:#96a098}.search-box span{font-size:19px}.search-box input{border:0;outline:0;width:100%;font-size:11px;background:transparent}.filter-row select{border:1px solid var(--line);background:#fff;border-radius:7px;padding:0 10px;color:#68756b;font-size:10px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:690px}thead th{height:37px;text-align:left;color:#a0a8a1;font-size:9px;letter-spacing:.6px;font-weight:700;border-bottom:1px solid #edf0ec}tbody td{height:56px;border-bottom:1px solid #f1f3f0;font-size:10px;color:#667269}td:first-child{color:#35443b;font-weight:700}td .tx-subtitle{margin-top:3px}.amount-head{text-align:right}td.amount-cell{text-align:right;font-weight:700;white-space:nowrap}.delete-button{border:0;background:transparent;color:#a1aaa2;font-size:15px;padding:6px}.delete-button:hover{color:#c06b58}.table-footer{font-size:10px;color:#8c978e;padding-top:13px}.empty-state{text-align:center;padding:45px 12px;color:#8e9990}.empty-art{display:grid;place-items:center;margin:0 auto 12px;width:46px;height:46px;border-radius:15px;background:#f1f5ec;color:#a7ca7d;font-size:22px}.empty-state h3{font:700 14px Manrope,sans-serif;color:#46564b;margin:0 0 7px}.empty-state p{font-size:10px;margin:0 0 16px}.empty-state .primary-button{font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:10;background:#1b2a2270;display:grid;place-items:center;padding:18px;backdrop-filter:blur(3px)}.transaction-modal{width:min(100%,490px);background:#fff;border-radius:16px;padding:25px 27px 22px;box-shadow:0 18px 70px #16291f35;max-height:calc(100vh - 36px);overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:flex-start}.modal-header h2{font:700 21px Manrope,sans-serif;letter-spacing:-.6px;margin:6px 0 0}.close-button{font-size:23px;color:#859188}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;background:#f3f5f2;border-radius:9px;margin:21px 0}.type-switch button{border:0;background:transparent;color:#818b83;font-size:11px;font-weight:700;padding:9px;border-radius:7px}.type-switch button.selected{background:#fff;color:#354b3d;box-shadow:0 2px 5px #243c3210}.type-switch button span{margin-right:4px}.transaction-modal form{display:grid;gap:13px}.transaction-modal label{display:block;font-size:10px;font-weight:700;color:#55635a}.transaction-modal label select,.transaction-modal label>input{display:block;width:100%;margin-top:6px;height:38px;padding:0 10px;border:1px solid #e5eae4;border-radius:7px;background:#fff;color:#4c5c51;font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.label-hint{font-size:9px;color:#a0aaa1;font-weight:500;margin-left:3px}.amount-input{display:flex;align-items:center;margin-top:6px;border:1px solid #e5eae4;border-radius:7px;padding-right:10px}.amount-input input{width:100%;height:38px;padding:0 10px;border:0;outline:0;background:transparent;font-size:12px;color:#34483a}.amount-input span{font-size:10px;color:#98a199}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:7px}.secondary-button{border:1px solid #e3e8e2;border-radius:8px;background:#fff;color:#718075;padding:10px 14px;font-size:11px;font-weight:600}.modal-actions .primary-button{font-size:11px}.toast{position:fixed;z-index:20;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#253e32;color:white;padding:11px 17px;border-radius:9px;font-size:11px;font-weight:600;box-shadow:0 5px 18px #20392c30;transition:all .2s}.toast.show{transform:translate(-50%,0);opacity:1}
@media(max-width:1050px){.main-area{padding:0 28px 40px}.sidebar{width:214px}.main-area{margin-left:214px}.content-grid{grid-template-columns:1fr}.category-panel,.recent-panel{min-height:auto}.category-chart{grid-template-columns:1fr 1fr;column-gap:22px}.bottom-tip{margin-bottom:12px}}
@media(max-width:700px){.sidebar{display:none}.main-area{margin:0;padding:0 17px 88px}.topbar{height:63px;justify-content:space-between;gap:8px}.mobile-brand{display:flex;align-items:center;gap:8px;font:800 12px Manrope,sans-serif;letter-spacing:-.2px}.mobile-brand .brand-mark{width:28px;height:28px;font-size:17px;border-radius:9px}.month-control{padding:5px 6px 5px 8px;gap:5px}.month-control select{min-width:67px;font-size:10px}.calendar-icon{display:none}.month-control .icon-button{width:25px;height:25px}.topbar>.primary-button{width:35px;height:35px;padding:0;font-size:19px}.topbar>.primary-button .button-label{display:none}.view{padding-top:28px}.welcome-row,.page-heading{align-items:flex-start;margin-bottom:19px}.welcome-row h1,.page-heading h1{font-size:23px}.month-pill{font-size:9px;margin-top:13px}.summary-grid{grid-template-columns:1fr 1fr;gap:9px}.summary-card{padding:14px;min-height:123px}.balance-card{grid-column:1/-1;min-height:135px}.card-heading{font-size:10px}.summary-value{font-size:20px;margin:14px 0 11px}.balance-card .summary-value{font-size:26px}.card-foot{font-size:9px}.content-grid{gap:10px;margin-top:11px}.category-panel,.recent-panel{padding:16px 15px}.category-chart{grid-template-columns:1fr;gap:12px;margin-top:19px}.category-line{grid-template-columns:minmax(80px,1fr) 1.35fr auto;gap:8px}.bottom-tip{font-size:9px;margin-top:15px}.bottom-tip .text-button{font-size:9px}.mobile-nav{position:fixed;z-index:6;inset:auto 0 0;display:grid;grid-template-columns:1fr 1fr 1fr;background:#fff;border-top:1px solid var(--line);padding:7px 10px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -5px 18px #2336290b}.mobile-nav button{display:grid;justify-items:center;gap:2px;border:0;background:transparent;color:#94a097;font-size:9px;font-weight:600;padding:3px}.mobile-nav button span{font-size:19px;line-height:21px}.mobile-nav button.active{color:var(--green)}.mobile-nav .mobile-plus{display:grid;place-items:center;width:26px;height:26px;background:var(--green);color:#fff;border-radius:8px;font-size:18px}.page-heading{align-items:center}.page-heading>.primary-button{width:35px;height:35px;padding:0;font-size:17px}.page-heading>.primary-button .button-label{display:none}.all-transactions{padding:13px 12px}.filter-row select{max-width:125px;font-size:9px}.search-box{min-width:0}.table-wrap{margin:0 -2px}.transaction-modal{padding:22px 19px 18px;border-radius:15px}.modal-header h2{font-size:19px}.modal-backdrop{align-items:end;padding:0}.transaction-modal{width:100%;max-height:92vh;border-radius:17px 17px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.modal-actions .primary-button{flex:1}.toast{bottom:80px;white-space:nowrap}}
@media(max-width:380px){.mobile-brand{font-size:10px;gap:5px}.main-area{padding-left:12px;padding-right:12px}.month-control select{min-width:60px}.summary-card{padding:12px}.card-heading{font-size:9px}.form-row{gap:8px}}
.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.import-top-button{height:37px;padding:0 12px;background:#fff}.import-top-button span:first-child{font-size:16px;color:#69855f}.import-modal{width:min(100%,900px);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:16px;padding:25px 27px 22px;box-shadow:0 18px 70px #16291f35}.import-intro{font-size:11px;color:#7e8980;line-height:1.6;margin:11px 0 16px}.upload-zone{position:relative;min-height:103px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #cbd7c9;border-radius:11px;background:#f9fbf7;color:#405448!important;cursor:pointer;text-align:center;padding:12px}.upload-zone:hover{border-color:#92b875;background:#f5f9f1}.upload-zone b{font-size:11px;margin:3px 0 5px}.upload-zone small{font-weight:400;color:#98a198;font-size:9px}.upload-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#eaf3e4;color:#648552;font-size:17px}.upload-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-progress{display:flex;align-items:center;gap:9px;color:#748174;font-size:10px;padding:14px 2px}.spinner{width:15px;height:15px;border:2px solid #e3eae0;border-top-color:#6d915d;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-errors{margin-top:12px;padding:10px 12px;border-radius:8px;background:#fff4ee;color:#9a624e;font-size:10px;line-height:1.6}.import-review{margin-top:18px}.review-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#79857b;font-size:10px;margin-bottom:9px}.review-list{display:grid;gap:9px;max-height:48vh;overflow:auto;padding:1px 3px 2px}.review-card{border:1px solid #e9eee8;border-radius:10px;padding:12px}.review-card.duplicate{opacity:.58;background:#f8f9f7}.review-topline{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.review-vendor{font-size:11px;font-weight:700;color:#3b4c40}.review-source{font-size:9px;color:#9aa39b;margin-top:4px}.review-amount{font-size:12px;font-weight:700;white-space:nowrap}.review-amount.debit{color:#ad6f5d}.review-amount.credit{color:#638457}.review-controls{display:grid;grid-template-columns:110px 135px minmax(150px,1fr) 1fr;gap:7px;margin-top:10px}.review-controls select,.review-controls input{min-width:0;width:100%;height:32px;border:1px solid #e5eae4;border-radius:6px;background:#fff;padding:0 7px;color:#59675c;font-size:9px}.review-checks{display:flex;align-items:center;gap:14px;margin-top:9px;font-size:9px;color:#7e897f}.review-checks label{display:flex!important;align-items:center;gap:5px;font-weight:500!important;cursor:pointer}.review-checks input{accent-color:#527457}.review-match{display:inline-flex;margin-top:7px;padding:4px 7px;background:#edf5e8;border-radius:5px;color:#617c57;font-size:9px}.review-detail{font-size:9px;color:#8a948b;margin-top:6px;line-height:1.45}.review-card select:disabled{background:#f5f6f4;color:#98a198}.import-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.import-actions .primary-button{font-size:10px}.split-editor{margin-top:10px;border-top:1px solid #eef1ed;padding-top:9px}.split-lines{display:grid;gap:6px}.split-line{display:grid;grid-template-columns:1fr 100px auto;gap:7px}.split-line select,.split-line input{min-width:0;height:31px;border:1px solid #e6ebe5;border-radius:6px;background:#fff;padding:0 7px;font-size:9px;color:#58665b}.split-line button,.add-split{border:0;border-radius:6px;background:#f1f5ee;color:#667f5e;font-size:9px;padding:6px 8px}.add-split{margin-top:7px}.split-total{font-size:9px;color:#839084;margin-top:6px}.split-total.invalid{color:#be7058}.review-card .remember-rule{margin-left:auto}.empty-review{padding:20px;text-align:center;color:#8b968d;font-size:10px}.chart-empty{font-size:10px;color:#9aa39b;padding:14px 0}.positive{color:#638457!important}.negative{color:#ad6f5d!important}
@media(max-width:700px){.topbar{gap:6px}.import-top-button{width:34px;height:35px;padding:0}.import-top-button .button-label{display:none}.import-top-button span:first-child{font-size:17px}.import-modal{width:100%;max-height:94vh;border-radius:17px 17px 0 0;padding:21px 15px calc(16px + env(safe-area-inset-bottom))}.modal-backdrop:has(.import-modal){align-items:end;padding:0}.review-list{max-height:49vh}.review-controls{grid-template-columns:1fr 1fr;gap:6px}.review-controls select:nth-child(3){grid-column:1/-1}.review-controls input{grid-column:1/-1}.review-checks{gap:8px;flex-wrap:wrap}.review-card{padding:10px}.review-summary{align-items:flex-start;flex-direction:column}.split-line{grid-template-columns:1fr 82px auto}}
/* Settings */
.setting-row>input,.setting-row label input,.settings-category textarea{font-family:inherit;font-size:11px}
.settings-grid{display:grid;gap:16px}.settings-panel{padding:20px}.settings-panel .panel-title-row{margin-bottom:15px}.settings-panel .panel-title-row h2{font:700 15px Manrope,sans-serif;margin:0 0 5px}.settings-panel .panel-title-row p{font-size:10px;color:var(--muted);margin:0}.settings-account-list,.settings-category-list{display:grid;gap:9px}.setting-row{display:flex;align-items:center;gap:7px}.setting-row>input,.setting-row label input,.settings-category textarea{width:100%;min-width:0;border:1px solid #e5eae4;border-radius:7px;background:#fff;padding:9px 10px;color:#4c5c51;font:11px inherit}.setting-row label{display:grid;gap:6px;flex:1;font-size:10px;font-weight:700;color:#55635a}.settings-category{display:grid;gap:10px;border:1px solid #e9eee8;border-radius:9px;padding:12px}.settings-category textarea{display:block;resize:vertical;line-height:1.6}.settings-category>label{font-size:10px;font-weight:700;color:#55635a}.settings-category .delete-button{font-size:18px}.settings-panel>.panel-title-row .secondary-button{font-size:10px;padding:8px 10px;white-space:nowrap}
@media(max-width:700px){.mobile-nav{grid-template-columns:repeat(4,1fr)}.mobile-nav button{font-size:8px}.settings-panel{padding:15px 13px}.settings-panel .panel-title-row{align-items:flex-start}.settings-panel .panel-title-row h2{font-size:13px}.settings-panel .panel-title-row p{max-width:230px;line-height:1.5}.settings-panel>.panel-title-row .secondary-button{font-size:9px;padding:7px 8px}.settings-category{padding:10px}}
