:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1c3440;background:#f5f7f8;font-synthesis:none;--bg:#f5f7f8;--surface:#fff;--text:#1c3440;--muted:#75858d;--line:#e8eef0;--teal:#168879;--soft:#eaf5f1;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #51b9a8;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:34px;letter-spacing:-1.3px;font-weight:700}h2{font-size:18px;letter-spacing:-.35px}h3{font-size:17px}p{line-height:1.6}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);padding:12px;min-height:45px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #16887916}label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}label input,label select,label textarea{display:block;margin-top:8px}textarea{min-height:75px;resize:vertical}.app-shell{min-height:100vh}.desktop-sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:var(--surface);border-right:1px solid var(--line);padding:38px 24px;display:flex;flex-direction:column}.brand{font-size:20px;font-weight:750;letter-spacing:-.7px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.brand-icon{width:37px;height:37px;background:var(--teal);color:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.beta{font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted);margin-left:47px;margin-top:-5px}.desktop-sidebar nav{display:grid;gap:10px;margin-top:48px}.desktop-sidebar nav button{border:0;background:none;padding:14px 16px;border-radius:11px;display:flex;align-items:center;gap:13px;text-align:left;font-size:14px;font-weight:500;color:var(--muted)}.desktop-sidebar nav button.active{background:var(--soft);color:var(--teal);font-weight:650}.sidebar-note{margin-top:auto;padding:20px 10px 0;color:var(--muted)}.sidebar-note svg{color:var(--teal);margin-bottom:12px}.sidebar-note strong{display:block;color:var(--text);font-size:12px}.sidebar-note p{font-size:11px;margin-top:7px;line-height:1.8}.main-content{max-width:1450px;padding:0 46px 30px;margin-left:235px}.topbar{height:95px;display:flex;align-items:center;justify-content:flex-end;gap:24px;border-bottom:1px solid var(--line)}.local-badge{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:500;color:var(--muted)}.status-dot{width:6px;height:6px;background:#289c7b;border-radius:50%;box-shadow:0 0 0 4px #289c7b12}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:12px 18px;border:1px solid transparent;border-radius:11px;font-size:13px;font-weight:650;transition:transform .15s,filter .15s}.button:hover{filter:brightness(.97);transform:translateY(-1px)}.primary{background:var(--teal);color:#fff}.secondary{background:var(--surface);border-color:var(--line);color:var(--text)}.full{width:100%}.danger{background:#fff1ef;color:#b4483c;border-color:#f6d6d1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:37px 0 29px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:var(--muted);margin-bottom:10px}.page-heading>div>p:last-child{font-size:13px;margin-top:10px;color:var(--muted)}.month-picker{display:flex;align-items:center;gap:9px;white-space:nowrap;margin:0;border:1px solid var(--line);background:var(--surface);padding:0 12px;border-radius:10px;color:var(--muted)}.month-picker input{border:0;box-shadow:none;min-height:40px;font-size:12px;width:145px;padding:8px 0;margin:0}.overview-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.balance-card{padding:30px 32px;border-radius:20px;background:#153d38;color:#fff;position:relative;overflow:hidden}.balance-card:after{content:"";pointer-events:none;position:absolute;width:230px;height:230px;border:1px solid #ffffff0a;border-radius:50%;right:-65px;top:-65px;box-shadow:0 0 0 35px #ffffff03,0 0 0 70px #ffffff02}.balance-card .eyebrow{color:#bad2cc;margin:0;font-size:9px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.balance-symbol{border:1px solid #ffffff1c;border-radius:11px;width:36px;height:36px;display:grid;place-items:center;color:#bedcd4}.balance-value{font-size:48px;letter-spacing:-2px;display:block;margin:15px 0 8px;font-weight:650;font-variant-numeric:tabular-nums}.balance-card>p{font-size:11px;color:#bad2cc}.balance-footer{display:flex;gap:55px;margin-top:29px}.balance-footer span{font-size:10px;color:#9dbfb4;display:block;margin-bottom:8px}.balance-footer strong{font-size:18px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.balance-progress{background:#ffffff16;height:4px;border-radius:10px;overflow:hidden;margin-top:20px}.balance-progress span{display:block;height:100%;background:#88d4b9;border-radius:10px}.quick-card{background:var(--surface);border:1px solid var(--line);padding:25px 26px;border-radius:20px;display:flex;flex-direction:column;align-items:flex-start;position:relative}.quick-orbit{position:absolute;right:24px;top:24px;width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--teal);display:grid;place-items:center}.quick-card h2{font-size:23px;line-height:1.3;letter-spacing:-.7px;margin-bottom:10px}.quick-card>p{font-size:12px;color:var(--muted);max-width:210px}.quick-card .button{margin-top:auto;margin-bottom:10px}.quick-card .caption{width:100%;text-align:center;font-size:10px}.insight-strip{display:flex;gap:13px;align-items:flex-start;padding:20px 5px 27px;color:var(--muted)}.insight-strip svg{flex-shrink:0;color:var(--teal);margin-top:2px}.insight-strip strong{font-size:11px;color:var(--text);font-weight:600}.insight-strip p{font-size:11px;margin-top:4px;line-height:1.6}.content-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:22px;align-items:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.section-heading p{font-size:11px;color:var(--muted);margin-top:6px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;background:none;border:0;color:var(--teal);padding:5px 0;font-size:11px;font-weight:600}.category-progress{padding:0 0 21px;margin-bottom:19px;border-bottom:1px solid var(--line)}.category-progress:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.category-label{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:550}.category-dot{width:7px;height:7px;display:inline-block;border-radius:3px;background:#65a994}.category-progress:nth-of-type(3n) .category-dot{background:#dab780}.category-progress:nth-of-type(3n+1) .category-dot{background:#91aac6}.category-progress strong{font-size:12px;font-variant-numeric:tabular-nums}.progress-track{height:5px;background:var(--line);border-radius:10px;margin:12px 0 8px;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:10px;background:#77b39e;transition:width .3s}.progress-track .over{background:#d47a65}.caption{font-size:10px;color:var(--muted);line-height:1.6;font-weight:400}.stack{display:grid;gap:22px}.purchase-row{width:100%;display:flex;align-items:center;gap:12px;padding:15px 0;background:none;border:0;text-align:left;border-bottom:1px solid var(--line)}.purchase-row:last-child{border:0;padding-bottom:0}.purchase-icon{width:37px;height:37px;border-radius:12px;background:#f1f4f5;color:#6c818a;display:grid;place-items:center;flex-shrink:0}.purchase-icon.credit{background:var(--soft);color:var(--teal)}.purchase-copy{display:grid;gap:5px;min-width:0}.purchase-copy strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-copy span{font-size:10px;color:var(--muted)}.purchase-copy small{font-size:9px;color:var(--muted)}.purchase-copy .review-label{color:#b77d29}.purchase-amount{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.purchase-amount svg{color:#a8b6bb}.credit-text{color:var(--teal)}.empty-state{text-align:center;padding:28px 18px 20px;color:var(--muted)}.empty-state>span{background:var(--soft);border-radius:16px;width:53px;height:53px;display:grid;place-items:center;color:var(--teal);margin:0 auto 16px}.empty-state>svg{margin-bottom:16px;color:var(--teal)}.empty-state h3{font-size:14px;color:var(--text);margin-bottom:8px}.empty-state p{font-size:11px;max-width:250px;margin:0 auto 15px}.bill-row{display:flex;align-items:center;gap:13px;padding:15px 0;border-top:1px solid var(--line)}.bill-row>div{flex:1;min-width:0;display:grid;gap:5px}.bill-row strong{font-size:12px}.bill-row small{font-size:10px;color:var(--muted);text-transform:capitalize}.bill-date{font-size:10px;color:var(--muted);background:var(--bg);padding:9px;border-radius:9px;min-width:54px;text-align:center}.empty-caption{font-size:11px;color:var(--muted);line-height:1.8;padding:8px 0}.icon-button{padding:8px;border:0;background:none;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border-radius:10px}.icon-button:hover{background:var(--bg)}.page-footer{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;padding:32px 0 8px}.page-footer span{margin-left:auto}.mobile-brand,.mobile-nav,.floating-add{display:none}.activity-tools{display:flex;gap:10px;margin-bottom:20px}.activity-tools>select{width:auto;max-width:190px;font-size:12px}.search-field{display:flex;flex:1;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 12px;margin:0;color:var(--muted)}.search-field input{border:0;font-size:12px;box-shadow:none;margin:0;padding-left:0}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.budget-tile{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-align:left}.budget-tile:hover{border-color:#77b39e}.budget-tile .category-progress{margin:0 0 10px;padding:0;border:0}.budget-tile .text-button{font-size:10px}.pill{font-size:9px;background:var(--soft);padding:4px 7px;border-radius:6px;display:inline-block;margin-bottom:10px;color:var(--teal)}.space-top{margin-top:22px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.body-copy{font-size:12px;color:var(--muted);margin:15px 0;line-height:1.8}.section-icon{display:grid;place-items:center;width:46px;height:46px;background:var(--soft);color:var(--teal);border-radius:14px;margin-bottom:18px}.backup-warning{padding:16px;border-radius:12px;background:#fff9eb;border:1px solid #f1e6c8;margin:22px 0;color:#8b7239}.backup-warning strong{font-size:12px}.backup-warning p{font-size:11px;margin-top:7px}.button-stack{display:grid;gap:10px;margin-bottom:14px}.file-button{margin:0}.file-button input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.settings-grid code{word-break:break-all;font-size:11px;color:var(--text)}.danger-zone{border-color:#f1ddd8}.sheet{width:min(480px,calc(100% - 28px));max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--text);box-shadow:0 20px 80px #102c3344;padding:25px;overflow-y:auto}.sheet::backdrop{background:#0b252b77;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.sheet-head h2{font-size:21px}.sheet form>label{margin-top:18px}.sheet .button.full{margin-top:20px}.amount-entry{text-align:center;padding:20px 0 5px}.amount-entry>label{font-size:9px;letter-spacing:1.4px;color:var(--muted);margin:0 0 10px}.amount-entry>div{display:flex;justify-content:center;align-items:center;gap:5px;font-size:44px;letter-spacing:-1px;font-weight:600}.amount-entry>div>span{color:#a8b8bb;font-size:32px}.amount-entry input{border:0;box-shadow:none;width:230px;font-size:47px;font-weight:600;letter-spacing:-2px;min-height:70px;padding:0;background:none;border-radius:0;margin:0;color:var(--text)}.amount-entry input::placeholder{color:#a8b8bb}.optional{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.optional summary{font-size:13px;cursor:pointer}.optional summary>span{float:right;font-size:11px;color:var(--muted)}.check-label{display:flex;gap:10px;align-items:center;font-weight:450}.check-label input{width:17px;min-height:17px;margin:0;accent-color:var(--teal)}.privacy-line{display:flex;align-items:center;justify-content:center;gap:5px;font-size:10px;color:var(--muted);margin-top:15px;text-align:center}.error{padding:13px;border-radius:10px;background:#fff0ed;color:#b04d43;font-size:12px;margin-top:14px;line-height:1.6}.error-banner{background:#fff0ed;color:#b04d43;border-radius:10px;padding:15px;margin-bottom:18px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.error-banner button{border:0;background:none;color:inherit}.toast{position:fixed;bottom:30px;left:calc(50% + 100px);transform:translate(-50%);max-width:calc(100% - 30px);padding:13px 20px;border-radius:13px;background:#173f37;color:#fff;font-size:12px;box-shadow:0 8px 35px #102c3340;display:flex;gap:10px;align-items:center;z-index:10}.loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:25px;text-align:center}.loading>p{font-size:13px;color:var(--muted)}@media(max-width:1150px){.desktop-sidebar{width:190px;padding:30px 16px}.brand{font-size:18px;gap:8px}.main-content{margin-left:190px;padding:0 28px 25px}.overview-grid{grid-template-columns:1.4fr 1fr}.balance-card{padding:25px}.balance-value{font-size:42px}.quick-card{padding:22px}.quick-orbit{width:34px;height:34px;right:18px;top:22px}.quick-orbit svg{width:20px}.content-grid{grid-template-columns:1fr}.content-grid>.stack{grid-template-columns:1fr 1fr}.activity-tools{flex-wrap:wrap}.search-field{flex-basis:100%}.settings-grid{grid-template-columns:1fr}}@media(max-width:760px){.desktop-sidebar{display:none}.main-content{margin:0;padding:0 20px calc(102px + env(safe-area-inset-bottom))}.topbar{height:78px;justify-content:space-between;border-bottom:0}.mobile-brand{display:flex;align-items:center;gap:9px;font-size:18px;letter-spacing:-.5px;font-weight:750}.brand-icon{width:32px;height:32px;border-radius:10px}.desktop-add{display:none}.local-badge{font-size:10px}.page-heading{padding:18px 0 23px;align-items:flex-start;gap:12px}.page-heading .eyebrow{display:none}h1{font-size:29px;letter-spacing:-1px}.page-heading>div>p:last-child{font-size:11px;margin-top:8px}.month-picker{padding:0 7px;border-radius:9px;margin-top:1px}.month-picker svg{display:none}.month-picker input{font-size:10px;width:110px;min-height:35px}.overview-grid{grid-template-columns:1fr;gap:15px}.balance-card{padding:26px;border-radius:18px}.balance-value{font-size:47px;margin-top:18px}.balance-footer{margin-top:25px;justify-content:space-between;gap:20px}.balance-footer strong{font-size:20px}.balance-card>p{font-size:11px}.quick-card{padding:17px 19px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 12px;border-radius:15px}.quick-card h2{font-size:15px;margin:0;line-height:1.5;letter-spacing:-.3px}.quick-card h2 br{display:none}.quick-card>p,.quick-card .quick-orbit{display:none}.quick-card .button{grid-column:2;grid-row:1/3;margin:0;min-height:42px;font-size:11px;padding:10px 13px}.quick-card>.caption{grid-column:1;grid-row:2;text-align:left;font-size:9px;margin-top:3px}.quick-card .button svg{display:none}.insight-strip{padding:20px 2px 23px;gap:10px}.insight-strip svg{width:17px}.insight-strip strong,.insight-strip p{font-size:10px}.content-grid{gap:16px}.content-grid>.stack{grid-template-columns:1fr;gap:16px}.card{padding:21px;border-radius:15px}.section-heading{margin-bottom:22px}.section-heading h2{font-size:16px}.category-progress{padding-bottom:18px;margin-bottom:18px}.category-label,.category-progress strong{font-size:12px}.category-progress .caption{font-size:10px}.purchase-row{padding:16px 0}.purchase-copy strong{font-size:12px}.purchase-copy span{font-size:10px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:9px 8px calc(10px + env(safe-area-inset-bottom));z-index:5}.mobile-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:0;color:var(--muted);font-size:9px;padding:5px 0}.mobile-nav button.active{color:var(--teal)}.mobile-nav button.active svg{stroke-width:2.5}.floating-add{position:fixed;right:20px;bottom:calc(84px + env(safe-area-inset-bottom));display:grid;place-items:center;width:52px;height:52px;background:var(--teal);color:#fff;border:0;border-radius:18px;box-shadow:0 4px 17px #16887940;z-index:4}.page-footer{font-size:9px;padding-top:24px;flex-wrap:wrap}.page-footer span{font-size:8px}.budget-grid{grid-template-columns:1fr;gap:12px}.budget-tile{padding:17px}.section-heading>.button{font-size:11px;padding:8px 11px;min-height:35px}.activity-tools{gap:8px}.activity-tools>select{flex:1;max-width:none;min-width:0;font-size:11px;padding:10px}.activity-tools input{font-size:12px}.search-field{width:100%}.bill-row{gap:10px}.bill-row strong{font-size:11px}.bill-row .text-button{font-size:10px}.bill-date{font-size:9px;min-width:46px;padding:8px 5px}.settings-grid,.settings-grid .stack{gap:16px}.body-copy{font-size:12px}.sheet{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-width:100%;max-height:calc(100dvh - 20px);margin:auto 0 0;border-radius:22px 22px 0 0;padding:22px 23px calc(23px + env(safe-area-inset-bottom));border-bottom:0}.sheet input,.sheet select,.sheet textarea{font-size:16px}.amount-entry input{font-size:48px}.toast{left:50%;bottom:calc(85px + env(safe-area-inset-bottom));width:max-content;font-size:11px;padding:12px 16px;z-index:20}.button{min-height:45px}.section-heading>div>p{font-size:10px;max-width:190px}}@media(max-width:360px){.main-content{padding-left:15px;padding-right:15px}.page-heading h1{font-size:25px}.page-heading>div>p:last-child{font-size:10px}.month-picker input{width:98px}.quick-card{padding:15px}.quick-card h2{font-size:13px}.quick-card .button{font-size:10px;padding:10px}.balance-value{font-size:43px}.card{padding:18px}}:root[data-theme=dark]{--bg:#102125;--surface:#172b30;--text:#e2ecea;--muted:#91a7aa;--line:#284045;--teal:#67c9af;--soft:#203e39;color-scheme:dark;color:var(--text);background:var(--bg)}:root[data-theme=dark] .primary,:root[data-theme=dark] .brand-icon,:root[data-theme=dark] .floating-add{color:#113b30}:root[data-theme=dark] .balance-card{background:#1d4d41}:root[data-theme=dark] .purchase-icon{background:#243b40;color:#a3b9bd}:root[data-theme=dark] .backup-warning{background:#39351f;border-color:#554b2a;color:#d9c58e}:root[data-theme=dark] .danger{background:#3b2928;color:#eea497;border-color:#5e3833}:root[data-theme=dark] .error,:root[data-theme=dark] .error-banner{background:#3b2928;color:#eea497}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#102125;--surface:#172b30;--text:#e2ecea;--muted:#91a7aa;--line:#284045;--teal:#67c9af;--soft:#203e39;color-scheme:dark;color:var(--text);background:var(--bg)}:root:not([data-theme=light]) .primary,:root:not([data-theme=light]) .brand-icon,:root:not([data-theme=light]) .floating-add{color:#113b30}:root:not([data-theme=light]) .balance-card{background:#1d4d41}:root:not([data-theme=light]) .purchase-icon{background:#243b40;color:#a3b9bd}:root:not([data-theme=light]) .backup-warning{background:#39351f;border-color:#554b2a;color:#d9c58e}:root:not([data-theme=light]) .danger{background:#3b2928;color:#eea497;border-color:#5e3833}:root:not([data-theme=light]) .error,:root:not([data-theme=light]) .error-banner{background:#3b2928;color:#eea497}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important;animation:none!important}}.csv-preview{display:grid;gap:12px;max-height:460px;overflow:auto;margin:18px 0}.csv-preview>div,.csv-preview>article{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px;font-size:12px}.csv-preview select{font-size:12px}.csv-preview p{font-size:11px;color:var(--muted)}
