:root{--page: #f6f2ea;--chrome: #efe9dd;--surface: #fdfbf6;--surface-2: #ece4d3;--hairline: #dcd3c0;--border: #ccc2ae;--border-faint: #b3a88f;--chip-border: #b3a88f;--ink: #2d2620;--ink-2: #6b6150;--ink-3: #8c8270;--ink-ghost: #c4bba8;--accent: #3a6ea8;--accent-text: #2c5f96;--accent-rgb: 58, 110, 168;--on-accent: #ffffff;--income: #3d9a6d;--income-rgb: 61, 154, 109;--danger: #b44a3e;--danger-border: #dfaba2;--warn: #a1741f;--warn-border: #dcc99c;--muted-expense: #adc2d8;--muted-income: #a8ccb9;--nav-active-bg: #e7dfcd;--selected-bg: #edf2f9;--elevated: #ffffff;--scrim: rgba(48, 40, 28, .42)}[data-theme=dark]{--page: #1b1815;--chrome: #1f1b17;--surface: #2a251d;--surface-2: #3b352d;--hairline: #443f3a;--border: #514b42;--border-faint: #625c53;--chip-border: #6c6456;--ink: #eee9de;--ink-2: #a49c8c;--ink-3: #7f786c;--ink-ghost: #4f4b45;--accent: #6aa1dd;--accent-text: #a9c6e8;--accent-rgb: 106, 161, 221;--on-accent: #141210;--income: #55b389;--income-rgb: 85, 179, 137;--danger: #d97a70;--danger-border: #6b4038;--warn: #e0b36a;--warn-border: #5a4a33;--muted-expense: #3a4a5c;--muted-income: #3f6b57;--nav-active-bg: #332c22;--selected-bg: #322b1f;--elevated: #453e35;--scrim: rgba(10, 8, 6, .6)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--page: #1b1815;--chrome: #1f1b17;--surface: #2a251d;--surface-2: #3b352d;--hairline: #443f3a;--border: #514b42;--border-faint: #625c53;--chip-border: #6c6456;--ink: #eee9de;--ink-2: #a49c8c;--ink-3: #7f786c;--ink-ghost: #4f4b45;--accent: #6aa1dd;--accent-text: #a9c6e8;--accent-rgb: 106, 161, 221;--on-accent: #141210;--income: #55b389;--income-rgb: 85, 179, 137;--danger: #d97a70;--danger-border: #6b4038;--warn: #e0b36a;--warn-border: #5a4a33;--muted-expense: #3a4a5c;--muted-income: #3f6b57;--nav-active-bg: #332c22;--selected-bg: #322b1f;--elevated: #453e35;--scrim: rgba(10, 8, 6, .6)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Figtree,system-ui,-apple-system,sans-serif;background:var(--page);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}.num,.amount{font-variant-numeric:tabular-nums}.shell{display:flex;height:100%}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.sidebar{width:224px;flex-shrink:0;background:var(--chrome);border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:22px 14px 18px;gap:4px}.sidebar .logo-row{display:flex;align-items:center;gap:9px;padding:0 12px 20px}.logo-glyph{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:var(--accent);color:var(--on-accent);font-size:15px;font-weight:700}.sidebar .wordmark{font-size:19px;font-weight:700}.btn-new-entry{font-size:15px;font-weight:700;background:var(--accent);color:var(--on-accent);border:none;border-radius:10px;padding:11px;margin-bottom:14px}.btn-new-entry:disabled{opacity:.4;cursor:default}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--ink-2);font-size:15px;cursor:pointer;background:none;border:none;text-decoration:none;text-align:left;width:100%}.nav-item:hover{background:color-mix(in srgb,var(--nav-active-bg) 60%,transparent)}.nav-item.active{background:var(--nav-active-bg);color:var(--accent-text);font-weight:600}.nav-item svg{width:19px;height:19px;flex-shrink:0}.nav-item .kbd-hint{margin-left:auto}.nav-item:disabled,.nav-item.disabled{color:var(--ink-ghost);pointer-events:none}.kbd-hint{font-size:12px;color:var(--ink-3);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.sidebar .spacer,.rail68 .spacer{flex:1}.profile-row{display:flex;align-items:center;gap:10px;padding:16px 12px 10px;border-radius:10px;cursor:pointer;border:none;background:none;border-top:1px solid var(--hairline);text-align:left;width:100%}.profile-row:hover{background:color-mix(in srgb,var(--nav-active-bg) 60%,transparent)}.avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--elevated);border:1px solid var(--border-faint);font-size:13px;font-weight:600;flex-shrink:0}.profile-row .who{min-width:0}.profile-row .who .name{display:block;font-size:14px;font-weight:600}.profile-row .who .sub{display:block;font-size:12px;color:var(--ink-3)}.rail68{width:68px;flex-shrink:0;background:var(--chrome);border-right:1px solid var(--hairline);display:flex;flex-direction:column;align-items:center;padding:20px 0 16px;gap:8px}.rail68 .logo-glyph{width:30px;height:30px;border-radius:9px;font-size:16px;margin-bottom:8px}.rail68 .btn-plus{width:40px;height:40px;font-size:20px;font-weight:700;background:var(--accent);color:var(--on-accent);border:none;border-radius:11px;margin-bottom:10px}.rail68 .btn-plus:disabled{opacity:.4;cursor:default}.rail68 .nav-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;color:var(--ink-2);cursor:pointer;background:none;border:none}.rail68 .nav-icon:hover{background:color-mix(in srgb,var(--nav-active-bg) 60%,transparent)}.rail68 .nav-icon.active{background:var(--nav-active-bg);color:var(--accent-text)}.rail68 .nav-icon svg{width:20px;height:20px}.rail68 .avatar{width:34px;height:34px}.bars-icon{display:flex;gap:2.5px;align-items:flex-end;height:14px;width:19px;justify-content:center}.bars-icon span{width:4px;background:currentColor;border-radius:1px}.bars-icon span:nth-child(1){height:8px}.bars-icon span:nth-child(2){height:13px}.bars-icon span:nth-child(3){height:10px}.tabbar{display:none;background:var(--chrome);border-top:1px solid var(--hairline);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tabbar .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0 4px;color:var(--ink-2);font-size:11px;background:none;border:none;text-decoration:none;border-radius:10px}.tabbar .tab.active{color:var(--accent-text)}.tabbar .tab svg{width:22px;height:22px}.tabbar .tab-plus{flex:1;display:flex;align-items:center;justify-content:center}.tabbar .tab-plus button{width:46px;height:46px;border-radius:14px;background:var(--accent);color:var(--on-accent);font-size:24px;font-weight:700;border:none;margin-top:-14px;box-shadow:0 4px 14px #00000040}.sidebar,.rail68{display:none}@media(min-width:1200px){.sidebar{display:flex}}@media(min-width:900px)and (max-width:1199px){.rail68{display:flex}}@media(max-width:899px){.tabbar{display:flex}.shell{flex-direction:column}}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.card-heading{font-size:15px;font-weight:600;color:var(--ink-2)}.chip{font-size:14px;font-weight:600;background:var(--surface-2);border:1px solid var(--chip-border);border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap;color:var(--ink)}.chip.accent{color:var(--accent-text);background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.35)}.chip.dashed{color:var(--ink-2);font-weight:400;background:transparent;border:1px dashed var(--border-faint)}.btn{font-size:14px;font-weight:700;border-radius:10px;padding:9px 18px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:disabled{opacity:.4;cursor:default}.btn.danger{background:transparent;border-color:var(--danger-border);color:var(--danger)}.btn.pill{border-radius:999px}.btn.ghost{background:transparent;border-color:transparent;color:var(--accent-text)}.input{font-size:15px;background:var(--page);border:1px solid var(--border);border-radius:10px;padding:9px 12px;color:var(--ink);outline:none}.input::placeholder{color:var(--ink-3)}.input:focus{border-color:rgba(var(--accent-rgb),.55)}.tag-text{color:var(--accent-text);font-weight:600}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:100;animation:fade-in .15s ease-out}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;max-height:min(86vh,900px);overflow:auto;animation:pop-in .15s ease-out}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.98)}}@media(max-width:899px){.scrim.sheet-host{align-items:flex-end}.scrim.sheet-host .modal{width:100%!important;max-width:100%;border-radius:20px 20px 0 0;border-bottom:none;max-height:92vh}}.snackbar{position:fixed;left:24px;bottom:24px;z-index:200;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:11px 14px;display:flex;gap:12px;align-items:center;font-size:14px;box-shadow:0 8px 28px #0000004d;animation:fade-in .15s ease-out}.snackbar .undo{background:none;border:none;color:var(--accent-text);font-weight:700;font-size:14px}.snackbar .kbd-hint{padding:1px 5px}@media(max-width:899px){.snackbar{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}}.meter-track{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.meter-fill{height:100%;border-radius:4px;background:var(--accent)}.meter-fill.warn{background:var(--warn)}.meter-fill.over{background:var(--danger)}.page-scroll{flex:1;min-height:0;overflow-y:auto;padding:28px 32px}.page-title{font-size:26px;font-weight:700}.month-pager{display:flex;align-items:center;gap:4px;color:var(--ink-2)}.month-pager button{font-size:18px;padding:0 4px;background:none;border:none;color:var(--ink-2)}.month-pager button:disabled{color:var(--border-faint);cursor:default}@media(min-width:900px)and (max-width:1199px){.page-title{font-size:23px}}@media(max-width:899px){.page-scroll{padding:18px 16px}}.centered{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.error{color:var(--danger)}.hint{color:var(--ink-3);font-size:12px}.dd{position:relative;display:inline-flex}.dd-button{display:inline-flex}.dd-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:230px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px #00000059;overflow:hidden;z-index:60;display:flex;flex-direction:column}.dd-panel.right{left:auto;right:0}.dd-item{display:flex;align-items:center;gap:10px;padding:11px 14px;font-size:14px;cursor:pointer;border-top:1px solid var(--hairline)}.dd-item:first-child{border-top:none}.dd-item:hover,.dd-item.selected{background:var(--nav-active-bg)}.dd-meta{font-size:12px;color:var(--ink-3);margin-left:auto}.dd-footer{display:block;font-size:12px;color:var(--ink-3);padding:9px 14px;border-top:1px solid var(--hairline)}.cur-glyph{font-size:15px;font-weight:700;width:20px}.create-badge{width:22px;height:22px;border-radius:7px;background:rgba(var(--accent-rgb),.16);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}.tag-combobox .tag-input-pill{display:flex;align-items:center;gap:2px;font-size:14px;border:1px solid var(--accent);border-radius:999px;padding:6px 13px;background:var(--page)}.tag-combobox input{background:transparent;border:none;outline:none;width:90px;font-size:14px}.tag-panel{min-width:290px}.home{display:flex;height:100%;min-height:0}.home-feed{flex:1;min-width:0;display:flex;flex-direction:column}.page-head{display:flex;justify-content:space-between;align-items:baseline}.page-head-left{display:flex;align-items:center;gap:14px}.head-summary{font-size:15px;color:var(--ink-2)}.scrubber{margin-top:18px}.scrubber-summary{font-size:14px;color:var(--ink-2);margin-bottom:10px}.scrubber-days{display:flex;gap:4px}.scrubber-day{flex:1;display:flex;flex-direction:column;align-items:center;cursor:pointer;min-width:0}.scrubber-day.future{cursor:default}.scrubber-day .income-area{height:34px;display:flex;align-items:flex-end;width:100%}.scrubber-day .expense-area{height:46px;width:100%}.scrubber-day .baseline{width:100%;height:1px;background:var(--border-faint);margin:2px 0}.scrubber-day.future .baseline{background:var(--hairline)}.scrubber-day .bar{width:100%;border-radius:2px 2px 3px 3px}.scrubber-day .bar.income{background:var(--muted-income);border-radius:3px 3px 2px 2px}.scrubber-day .bar.expense{background:var(--muted-expense)}.scrubber-day .bar.sel{background:var(--accent)}.scrubber-day.selected .bar.income{background:var(--income)}.scrubber-day .day-label{font-size:11px;color:var(--ink-3);margin-top:4px}.scrubber-day.selected .day-label{color:var(--accent-text);font-weight:700}.scrubber-day.future .day-label{color:var(--ink-ghost)}.scrubber-empty-baseline{height:60px;border-bottom:2px solid var(--hairline)}.quickadd-slot{margin-top:20px}.quickadd{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:10px}.quickadd:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.amount-box{display:flex;align-items:baseline;gap:5px;background:var(--page);border:1px solid var(--border);border-radius:10px;padding:4px 12px 4px 8px}.cur-symbol{font-size:14px;color:var(--ink-2);cursor:pointer;padding:4px}.cur-symbol.foreign{color:var(--accent-text);font-weight:700}.amount-input{font-size:16px;font-weight:700;background:transparent;border:none;outline:none;color:var(--ink);width:70px}.quickadd-tags{display:flex;align-items:center;gap:6px}.quickadd-note{flex:1;min-width:0}.date-chip{font-size:13px;color:var(--ink-2);white-space:nowrap;cursor:pointer}.quickadd-hint{margin:6px 2px 0}.quickadd-hint .dot{color:var(--ink-ghost)}.link{color:var(--accent-text);font-weight:600;cursor:pointer;font-size:13px}.link.plain{color:var(--ink-2);font-weight:400;font-size:14px}@media(min-width:900px)and (max-width:1199px){.quickadd .quickadd-tags,.quickadd .quickadd-date{display:none}}@media(max-width:899px){.quickadd-slot{display:none}}.feed{margin-top:18px}.feed-day{font-size:15px;font-weight:600;color:var(--ink-2);margin:16px 0 4px}.feed>div:first-child .feed-day{margin-top:0}.feed-row{position:relative;display:grid;grid-template-columns:1fr auto auto 120px;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--hairline);cursor:pointer}.feed-row:hover{background:color-mix(in srgb,var(--surface) 60%,transparent)}.feed-row.picked{background:rgba(var(--accent-rgb),.07)}.feed-row.cursor{box-shadow:inset 2px 0 0 var(--accent)}.row-main{min-width:0}.row-title{display:block;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{display:block;font-size:13px;color:var(--ink-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-tag{font-size:13px}.row-wallet{font-size:13px;color:var(--ink-2)}.row-amount{font-size:16px;font-weight:600;text-align:right}.row-amount.income{color:var(--income)}.row-check{position:absolute;left:-26px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border-faint);display:none;align-items:center;justify-content:center;font-size:12px;color:var(--on-accent)}.feed-row:hover .row-check,.row-check.on{display:flex}.row-check.on{background:var(--accent);border-color:var(--accent)}.row-sub-wallet{display:none}@media(max-width:1199px){.feed-row{grid-template-columns:1fr auto 100px}.feed:not(.no-wallet-col) .row-wallet{display:none}.feed:not(.no-wallet-col) .row-sub-wallet{display:inline}.row-check{display:none!important}.row-title,.row-amount{font-size:15px}}.feed-selection-head{font-size:14px;font-weight:600;color:var(--accent-text);padding:8px 0}.action-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:10px 12px;box-shadow:0 8px 28px #00000059;z-index:90}.loadmore{display:block;margin:16px auto}.wallet-tx-row{grid-template-columns:1fr auto auto 110px}.empty-month{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:380px;margin:0 auto}.empty-month .t{font-size:17px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.empty-month .s{font-size:14px;color:var(--ink-3);line-height:1.5}.first-run{flex:1;display:flex;align-items:center;justify-content:center;height:100%}.first-run-card{width:440px;max-width:90vw;text-align:center}.card-fan{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.card-fan span{width:74px;height:48px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}.card-fan .fan-1{transform:rotate(-6deg)}.card-fan .fan-2{background:var(--surface-2);border-color:var(--chip-border);margin-top:-8px}.card-fan .fan-3{transform:rotate(6deg)}.first-run-card .t{font-size:22px;font-weight:700;margin-bottom:8px}.first-run-card .s{font-size:15px;color:var(--ink-2);line-height:1.55;margin-bottom:24px}.btn.wide{width:100%;padding:13px;border-radius:12px;font-size:15px}.first-run-card .btn{margin-bottom:10px}.btn.outline-accent{background:transparent;color:var(--accent-text);border:1px solid rgba(var(--accent-rgb),.4);font-weight:600}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.home-rail{width:328px;flex-shrink:0;border-left:1px solid var(--hairline);padding:28px 24px;display:flex;flex-direction:column;gap:24px;overflow-y:auto}@media(min-width:900px)and (max-width:1199px){.home-rail{width:284px;padding:22px 18px}.home-rail .rail-toptags{display:none}}@media(max-width:899px){.home-rail{display:none}}.home-mobile{display:none}@media(max-width:899px){.home-mobile{display:flex;flex-direction:column;gap:22px;margin-top:22px}}.acct-chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}.acct-chip-row::-webkit-scrollbar{display:none}.acct-chip{display:flex;align-items:center;gap:8px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px 7px 8px;color:var(--ink);cursor:pointer;white-space:nowrap}.acct-chip.open{background:var(--surface-2);border-color:var(--border-faint)}.acct-chip.over{border-color:var(--danger-border)}.acct-chip .donut{width:24px;height:24px}.acct-chip .acct-card-icon svg{width:20px;height:20px}.acct-chip-name{font-size:14px;font-weight:600}.acct-detail{display:flex;align-items:center;gap:14px;margin-top:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;cursor:pointer}.acct-detail-main{flex:1;min-width:0}.acct-detail-main .t{display:block;font-size:16px;font-weight:700}.acct-detail-main .s{display:block;font-size:13px;color:var(--ink-2);margin-top:3px}.acct-detail .link{white-space:nowrap}.rail-heading{margin-bottom:10px}.rail-heading-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.rail-stack{display:flex;flex-direction:column;gap:8px}.rail-card{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer}.rail-card.warn-card{border-color:var(--warn-border)}.rail-card.danger-card{border-color:var(--danger-border)}.rail-card-main{flex:1;min-width:0}.rail-card-main .t{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-card-main .s{display:block;font-size:12px;color:var(--ink-2);margin-top:1px}.rail-card .warn-icon svg{width:18px;height:18px;color:var(--warn);display:block}.warn-text{color:var(--warn)!important}.danger-text{color:var(--danger)!important}.danger-dot{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);font-size:12px;font-weight:700}.rail-amount{font-size:15px;font-weight:600}.donut{width:26px;height:26px;flex-shrink:0}.acct-card-icon svg{width:22px;height:22px;color:var(--ink-2);display:block}.cur{color:var(--ink-3);font-weight:400}.tagbar-row{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:center}.tagbar-row.wide-label{grid-template-columns:104px 1fr auto}.tagbar-row .tag-text{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tagbar-track{height:8px;border-radius:4px;background:var(--surface);overflow:hidden}.reports .tagbar-track,.report-card .tagbar-track{background:var(--page);height:9px;border-radius:5px}.tagbar-fill{height:100%;border-radius:4px}.tagbar-amount{font-size:13px;text-align:right}.wallets-page{display:flex;height:100%;min-height:0}.wallet-list{width:372px;flex-shrink:0;border-right:1px solid var(--hairline);padding:28px 20px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}@media(min-width:900px)and (max-width:1199px){.wallet-list{width:264px}}.wallet-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.list-title{font-size:22px;font-weight:700}.chips-inline{display:flex;gap:8px;align-items:center}.pill-link{font-size:13px;font-weight:600;color:var(--ink-2);border:1px solid var(--border);border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.pill-link.accent{color:var(--accent-text);border-color:rgba(var(--accent-rgb),.4)}.pill-link.danger{color:var(--danger);border-color:var(--danger-border)}.pill-link svg{width:15px;height:15px}.wallet-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;cursor:pointer}.wallet-card.selected{background:var(--selected-bg);border-color:var(--accent)}.wallet-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.wallet-card-name{font-size:16px;font-weight:600;display:flex;align-items:center;gap:7px;min-width:0}.wallet-card-name .wc-icon svg{width:16px;height:16px;color:var(--ink-2);display:block}.wallet-card-balance{font-size:16px;font-weight:700;white-space:nowrap}.wallet-card-sub{font-size:13px;color:var(--ink-2);margin-top:3px}.or-divider{display:flex;align-items:center;gap:10px;margin:8px 0 2px}.or-divider>span:first-child,.or-divider>span:last-child{height:1px;flex:1;background:var(--hairline)}.or-divider .hint{white-space:nowrap}.wallet-detail-pane{flex:1;min-width:0;display:flex;flex-direction:column}.wallet-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.wallet-detail-title{display:flex;align-items:center;gap:10px}.wallet-detail-title .t{font-size:24px;font-weight:700}.wallet-detail-title .cur{font-size:14px}.wallet-balance{font-size:32px;font-weight:700;margin-top:8px}.wallet-actions{display:flex;gap:10px;flex-wrap:wrap}.budget-card{padding:16px 18px;margin-top:20px}.budget-card.over{border-color:var(--danger-border)}.budget-card-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px;gap:8px}.budget-card-row .t{font-weight:600}.meter-track.big{height:9px;border-radius:5px;background:var(--page)}.wallet-mid{display:flex;gap:20px;margin-top:20px;align-items:stretch}.activity-card{flex:1.15;padding:16px 18px;min-width:0}.activity-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.month-pager.small{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}.month-pager.small button{font-size:15px}.wallet-side-cards{flex:1;display:flex;flex-direction:column;gap:20px;min-width:0}.side-card{flex:1;padding:16px 18px}.member-stack{display:flex;flex-direction:column;gap:10px}.member-line{display:flex;align-items:center;gap:10px}.member-line .t{font-size:14px;font-weight:600}.avatar.sm{width:28px;height:28px;font-size:12px}.avatar.big{width:56px;height:56px;font-size:22px}.setting-line{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:15px;gap:12px}.setting-sub{display:block;font-size:12px;color:var(--ink-3);margin-top:2px}.setting-links{display:flex;gap:14px;margin-top:10px}.wallet-txs{margin-top:24px}.mobile-back{display:none;background:none;border:none;color:var(--accent-text);font-size:15px;font-weight:600;padding:0 0 10px;text-align:left}@media(max-width:899px){.wallets-page{display:block;overflow-y:auto}.wallet-list{width:100%;border-right:none;padding:18px 16px}.wallet-detail-pane,.wallets-page.has-detail .wallet-list{display:none}.wallets-page.has-detail .wallet-detail-pane{display:flex;height:100%}.mobile-back{display:block}.wallet-mid{flex-direction:column}}@media(min-width:900px)and (max-width:1199px){.wallet-mid{flex-direction:column}}.heatmap-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.heatmap-grid.dow{margin-bottom:4px}.dow-label{text-align:center;font-size:11px;color:var(--ink-3)}.hm-cell{aspect-ratio:1;border-radius:6px;background:color-mix(in srgb,var(--surface-2) 55%,var(--page));display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink-3);cursor:pointer}.hm-cell.active{color:var(--accent-text)}.hm-cell.heavy{color:var(--on-accent)}.hm-cell.future{background:transparent;border:1px solid color-mix(in srgb,var(--surface-2) 55%,var(--page));color:var(--ink-ghost);cursor:default}.hm-cell.sel{background:var(--accent);color:var(--on-accent);outline:2px solid var(--accent-text);outline-offset:1px;font-weight:700}.heatmap-legend{display:flex;align-items:center;gap:5px;margin-top:12px}.heatmap-legend .lg,.trend-legend .lg{width:10px;height:10px;border-radius:3px;background:color-mix(in srgb,var(--surface-2) 55%,var(--page));display:inline-block}.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}@media(max-width:899px){.reports-grid{grid-template-columns:1fr}}.reports-col{display:flex;flex-direction:column;gap:20px;min-width:0}.report-card{border-radius:16px;padding:20px}.report-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.meter-stack{display:flex;flex-direction:column;gap:13px}.meter-row-head{display:flex;justify-content:space-between;font-size:14px;margin-bottom:5px;gap:8px}.report-card .meter-track{background:var(--page)}.bywallet-card{background:var(--page);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.bywallet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.bywallet-head .t{font-size:15px;font-weight:600}.flow-track{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--surface)}.flow.expense{background:var(--accent)}.flow.income{background:var(--income)}.flow-gap{width:2px}.credit-cycle-card{background:var(--page);border:1px solid var(--warn-border);border-radius:14px;padding:14px 16px;margin-bottom:10px}.ccc-head{display:flex;align-items:center;gap:7px;margin-bottom:12px}.ccc-head svg{width:16px;height:16px;color:var(--ink-2)}.ccc-head .t{font-size:15px;font-weight:600}.credit-badge{margin-left:auto;font-size:11px;color:var(--accent-text);background:rgba(var(--accent-rgb),.12);border-radius:5px;padding:2px 7px;font-weight:600}.ccc-line{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.ccc-due{display:flex;justify-content:flex-end;font-size:12px;font-weight:600;margin-bottom:8px}.ccc-cycle-labels{display:flex;justify-content:space-between;font-size:11px}.trend-card{margin-top:20px}.trend{display:flex;gap:12px}.trend-axis{display:flex;flex-direction:column;justify-content:space-between;height:140px;width:36px;font-size:11px;color:var(--ink-3);text-align:right}.trend-plot{flex:1;position:relative;min-width:0}.gridline{position:absolute;left:0;right:0;height:1px;background:var(--border);opacity:.6}.trend-bars{display:flex;align-items:flex-end;gap:18px;height:140px;border-bottom:1px solid var(--ink-ghost);position:relative}@media(max-width:899px){.trend-bars,.trend-labels{gap:6px!important}}.trend-month{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:4px;height:100%;cursor:pointer}.tb{width:12px;border-radius:3px 3px 0 0;min-height:1px}.tb.income{background:var(--muted-income)}.tb.expense{background:var(--muted-expense)}.tb.income.live{background:var(--income)}.tb.expense.live{background:var(--accent)}.trend-labels{display:flex;gap:18px;margin-top:6px}.trend-labels span{flex:1;text-align:center;font-size:12px;color:var(--ink-3)}.trend-labels span.live{color:var(--accent-text);font-weight:700}.trend-legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:12px}.trend-legend span{display:inline-flex;align-items:center;gap:5px}.search-scrim{align-items:flex-start;padding-top:110px}.search-panel{width:640px;max-width:calc(100vw - 32px);height:fit-content;background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 24px 80px #00000073}.search-page{padding:18px 16px;flex:1;min-height:0;overflow-y:auto}.search-page .search-panel{width:100%;box-shadow:none}.search-input-row{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--hairline)}.search-input-row svg{width:19px;height:19px;color:var(--ink-2);flex-shrink:0}.search-input-row input{font-size:17px;flex:1;background:transparent;border:none;outline:none;color:var(--ink)}.search-results{padding:14px 20px 18px;max-height:520px;overflow-y:auto}.search-group-label{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.04em;margin:8px 0}.search-tag-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.search-tag-chip{font-size:14px;color:var(--ink-2);background:var(--page);border:1px solid var(--border);border-radius:999px;padding:7px 13px;cursor:pointer}.search-tag-chip.primary{color:var(--accent-text);background:rgba(var(--accent-rgb),.18);border-color:transparent}.search-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 8px;margin:0 -8px;border-bottom:1px solid var(--hairline);cursor:pointer;border-radius:8px}.search-row.cursor,.search-row:hover{background:var(--nav-active-bg)}.search-row .t{display:block;font-size:15px;font-weight:600}.search-row .s{display:block;font-size:13px;color:var(--ink-2);margin-top:2px}.search-row .income{color:var(--income)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.modal-title{font-size:19px;font-weight:700}.modal-x{font-size:20px;color:var(--ink-2);background:none;border:none;padding:2px 6px}.modal-sub{font-size:14px;color:var(--ink-2);margin-bottom:20px;line-height:1.5}.modal-actions{display:flex;align-items:center;gap:12px;margin-top:16px}.modal-actions .btn{padding:12px 20px;border-radius:12px;font-size:15px}.modal-actions .btn.wide{flex:1}.form-stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);flex:1;min-width:0}.field .input{font-weight:400;color:var(--ink)}.field-row{display:flex;gap:12px}.invite-code-card{background:var(--page);border:1px solid var(--border);border-radius:16px;padding:20px;text-align:center;margin-bottom:14px}.invite-code-card .s{font-size:13px;color:var(--ink-2);margin-bottom:10px}.invite-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:32px;font-weight:700;letter-spacing:.14em;color:var(--accent-text)}.invite-actions{display:flex;gap:10px;margin-bottom:20px}.invite-actions .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:12px;font-size:15px}.invite-actions svg{width:17px;height:17px}.member-list{background:var(--page);border:1px solid var(--border);border-radius:14px;overflow:hidden}.member-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--hairline)}.member-row:last-child{border-bottom:none}.member-name{flex:1;font-size:15px}.member-role{font-size:13px;color:var(--ink-2)}.join-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px;font-weight:700;letter-spacing:.12em;text-align:center;width:100%;background:var(--page);border:1px solid var(--chip-border);border-radius:14px;padding:18px;color:var(--accent-text);outline:none;margin-bottom:14px}.join-preview{display:flex;align-items:center;gap:12px;background:rgba(var(--income-rgb),.1);border:1px solid rgba(var(--income-rgb),.35);border-radius:14px;padding:14px;margin-bottom:20px}.join-preview-glyph{width:38px;height:38px;border-radius:11px;background:var(--elevated);display:flex;align-items:center;justify-content:center;font-size:18px}.join-preview-main{flex:1;min-width:0}.join-preview-main .t{display:block;font-size:15px;font-weight:700}.join-preview-main .s{display:block;font-size:13px;color:var(--ink-2);margin-top:1px}.join-check svg{width:20px;height:20px;color:var(--income)}.facts-card{display:flex;flex-direction:column;gap:10px;background:var(--page);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:16px}.fact{font-size:14px}.archive-card{display:flex;align-items:center;gap:12px;background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.35);border-radius:14px;padding:14px;margin-bottom:18px}.archive-card-main{flex:1}.archive-card-main .t{display:block;font-size:14px;font-weight:600;color:var(--accent-text)}.archive-card-main .s{display:block;font-size:13px;color:var(--ink-2);margin-top:2px}.archive-btn{color:var(--accent-text);background:rgba(var(--accent-rgb),.16);border:none;border-radius:10px;padding:9px 14px;white-space:nowrap}.radio-card{border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:10px;cursor:pointer}.radio-card.on{border-color:var(--accent)}.radio-row{display:flex;align-items:center;gap:11px}.radio-row .t{font-size:15px;font-weight:600}.radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-faint);display:flex;align-items:center;justify-content:center;flex-shrink:0}.radio.on{border-color:var(--accent)}.radio.on:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent)}.radio-card .s{font-size:13px;color:var(--ink-2);margin:6px 0 0 31px}.move-target{display:flex;margin:12px 0 0 31px}.move-target-btn{display:flex;align-items:center;gap:8px;background:var(--page);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer}.move-target-btn .t{font-size:14px;font-weight:600}.scrim .modal:has(.entry-modal){padding:0!important}.entry-modal{display:flex;min-height:0}.entry-form{flex:1;min-width:0;padding:24px 28px}.entry-head-actions{display:flex;align-items:center;gap:12px}.ocr-banner{background:rgba(var(--income-rgb),.1);border:1px solid rgba(var(--income-rgb),.35);color:var(--income);font-size:13px;font-weight:600;border-radius:10px;padding:9px 12px;margin-bottom:14px}.entry-top-row{display:flex;align-items:center;gap:16px;margin:14px 0 16px;flex-wrap:wrap}.segmented{display:flex;background:var(--page);border:1px solid var(--border);border-radius:999px;padding:3px}.segmented button{font-size:14px;font-weight:600;border:none;border-radius:999px;padding:7px 16px;background:transparent;color:var(--ink-2)}.segmented button.on{background:var(--elevated);color:var(--ink)}.segmented.small button{font-size:13px;padding:6px 14px}.entry-amount-row{display:flex;align-items:baseline;gap:10px}.cur-chip{font-size:14px;font-weight:700;padding:6px 12px}.entry-amount{font-size:36px;font-weight:700;background:transparent;border:none;outline:none;color:var(--ink);width:160px}.input.ocr,.entry-amount.ocr{background:rgba(var(--income-rgb),.08);border:1px solid rgba(var(--income-rgb),.45);border-radius:10px}.field-label{font-size:13px;font-weight:600;color:var(--ink-2);margin:14px 0 6px}.field-label-row{display:flex;align-items:baseline;justify-content:space-between;margin:14px 0 6px}.field-label-row .field-label{margin:0}.chip-row{display:flex;gap:8px;overflow-x:auto}.chip-row.wrap{flex-wrap:wrap;overflow:visible}.select-chip{font-size:14px;font-weight:600;color:var(--ink-2);border:1px solid var(--border);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap;background:var(--page)}.select-chip.on{background:var(--surface-2);border-color:var(--chip-border);color:var(--ink)}.select-chip.tag.on{color:var(--accent-text);background:rgba(var(--accent-rgb),.18);border-color:transparent}.select-chip.ocr-suggest{color:var(--income);border-color:rgba(var(--income-rgb),.45);background:rgba(var(--income-rgb),.08)}.input.wide{width:100%;border-radius:12px;padding:11px 14px}textarea.input{resize:none;line-height:1.45;font-size:14px}.entry-date-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}.entry-receipt{width:300px;flex-shrink:0;background:var(--page);border-left:1px solid var(--hairline);padding:24px 22px;display:flex;flex-direction:column;gap:12px}.entry-receipt-head{display:flex;justify-content:space-between;align-items:baseline}.receipt-preview{flex:1;min-height:240px;border-radius:12px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;overflow:hidden}.receipt-preview img{max-width:100%;max-height:420px;object-fit:contain;cursor:pointer}.add-file{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;border-radius:10px;padding:10px}@media(max-width:899px){.entry-modal{flex-direction:column}.entry-receipt{width:100%;border-left:none;border-top:1px solid var(--hairline)}.receipt-preview{min-height:120px}}.receipt-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#080705eb;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.viewer-body{display:flex;gap:16px;max-width:90vw;max-height:80vh;overflow:auto}.viewer-body img{max-height:78vh;max-width:86vw;border-radius:10px}.viewer-caption{color:#cfc8ba;font-size:14px}.viewer-close{position:absolute;top:18px;right:20px;background:none;border:none;color:#cfc8ba}.viewer-close svg{width:22px;height:22px}.dropzone-overlay{position:fixed;top:12px;right:12px;bottom:12px;left:12px;border:2.5px dashed var(--accent);border-radius:16px;background:rgba(var(--accent-rgb),.07);-webkit-backdrop-filter:brightness(.75);backdrop-filter:brightness(.75);display:flex;align-items:center;justify-content:center;z-index:250;pointer-events:none}.dropzone-inner{text-align:center}.dz-icon{width:64px;height:64px;border-radius:18px;background:rgba(var(--accent-rgb),.14);border:1px solid rgba(var(--accent-rgb),.4);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.dz-icon svg{width:30px;height:30px}.dropzone-inner .t{font-size:20px;font-weight:700}.dropzone-inner .s{font-size:14px;color:var(--ink-2);margin-top:6px}.settings-head{display:flex;align-items:center;gap:16px;margin-bottom:8px}.settings-head .who{flex:1;min-width:0}.settings-head .name{display:block;font-size:22px;font-weight:700}.settings-head .sub{display:block;font-size:14px;color:var(--ink-2);margin-top:2px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}@media(max-width:899px){.settings-grid{grid-template-columns:1fr}}.toggle{width:40px;height:22px;border-radius:11px;background:var(--border-faint);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s ease-out}.toggle.on{background:var(--accent)}.toggle .knob{position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:var(--elevated);transition:left .15s ease-out}.toggle.on .knob{left:20px;background:var(--on-accent)}.budget-input{width:110px;text-align:right;padding:6px 10px}.shortcut-row{display:flex;align-items:center;gap:12px;padding:5px 0;font-size:14px}.shortcut-row .kbd-hint{min-width:110px;text-align:center}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-col{width:400px;display:flex;flex-direction:column;align-items:center;text-align:center}.login-logo{width:56px;height:56px;border-radius:16px;font-size:28px}.login-wordmark{font-size:30px;font-weight:700;margin-top:18px}.login-tagline{font-size:16px;color:var(--ink-2);margin-top:8px;line-height:1.5}.login-widget{margin-top:28px}.login-dev{margin-top:14px;width:100%;border-radius:12px;padding:14px;font-size:16px}.login-footnote{font-size:13px;color:var(--ink-3);margin-top:16px}.filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 .75rem}.filters input,.filters select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem}.warranty.ok{color:var(--income)}.warranty.soon{color:var(--warn)}.warranty.expired{color:var(--danger)}.ocr-banner.error{background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:var(--danger-border);color:var(--danger)}.row-amount-orig{display:block;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:1px}.attach-ic{display:inline-flex;vertical-align:-2px;margin-left:7px;color:var(--ink-3)}.attach-ic svg{width:13px;height:13px}.cur-code{font-size:11px;font-weight:600;color:var(--ink-3);letter-spacing:.02em}.row-amount-orig .cur-code{font-size:10px}
