:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b0c;--surface:#141416;--surface-2:#1c1c1f;--surface-3:#242428;--line:#26262a;--text:#f0f0f1;--text-2:#b4b4bb;--muted:#80808a;--faint:#56565e;--accent:#7ee2a0;--on-accent:#0b0b0c;--accent-text:#7ee2a0;--accent-soft:#7ee2a01f;--negative:#f08c8c;--negative-soft:#f08c8c1f;--chart-1:#3987e5;--chart-1-hover:#5598e7;--overlay:#000000a6;--shadow-sm:0 6px 18px #0006;--shadow-lg:0 20px 60px #00000080;--radius:16px;--radius-sm:10px;--radius-pill:999px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f5;--surface:#fff;--surface-2:#f1f1f3;--surface-3:#e7e7ea;--line:#e4e4e7;--text:#18181b;--text-2:#52525b;--muted:#71717a;--faint:#a1a1aa;--accent:#178a4a;--on-accent:#fff;--accent-text:#15803d;--accent-soft:#178a4a1a;--negative:#c93c3c;--negative-soft:#c93c3c1a;--chart-1:#2a78d6;--chart-1-hover:#256abf;--overlay:#18181b59;--shadow-sm:0 6px 18px #18181b1f;--shadow-lg:0 20px 50px #18181b2e}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg)}body{color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul{list-style:none}input,select{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;width:100%;min-width:0;padding:10px 12px;transition:border-color .15s}input:focus,select:focus{border-color:var(--muted)}input::placeholder{color:var(--faint)}input[type=checkbox]{width:auto;accent-color:var(--accent)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num{font-variant-numeric:tabular-nums}.pos{color:var(--accent-text)}.neg{color:var(--negative)}.strong{font-weight:600}.label{color:var(--muted);font-size:12px}.sub{color:var(--muted);font-size:12.5px}.grow{flex:1;min-width:0}.between{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:8px;display:flex}.align-start{align-self:flex-start}.align-end{text-align:right}.full-width{width:100%}.app-shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.main{min-width:0}.content{max-width:1000px;margin:0 auto;padding:28px 40px 80px}.sidebar{border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:24px 14px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.2px;align-items:center;gap:10px;padding:0 8px 26px;font-size:15px;font-weight:600;display:flex}.logo{flex-shrink:0;display:block}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:6px 8px;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-item.on{color:var(--text);background:var(--surface-2)}.nav-icon{border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;transition:background .15s;display:grid}.nav-item.on .nav-icon{background:var(--accent-soft);color:var(--accent-text)}.badge{border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);margin-left:auto;padding:1px 7px;font-size:11.5px}.sidebar-footer{border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);align-items:center;gap:8px;margin-top:auto;padding:12px;font-size:12px;display:flex}.dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.credit{text-align:center;color:var(--muted);margin:14px 0 0;font-size:12px}.credit a{color:var(--text);font-weight:500;text-decoration:none}.credit a:hover{text-decoration:underline}.header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.header h1{letter-spacing:-.4px;font-size:22px;font-weight:600}.header-date{color:var(--muted);margin-top:2px;font-size:13px}.header-actions{align-items:center;gap:8px;display:flex}.month-picker{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);align-items:center;padding:2px;display:flex}.month-picker span{text-align:center;min-width:124px;font-size:13px}.month-picker .icon-button{border-radius:var(--radius-pill);width:28px;height:28px}.grid{gap:14px;display:grid}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.spaced{margin-bottom:14px}.masonry{columns:2;column-gap:14px}.masonry>*{break-inside:avoid;margin-bottom:14px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.bottom-nav,.fab,.mobile-only{display:none}.btn{border-radius:var(--radius-sm);background:var(--text);color:var(--bg);white-space:nowrap;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:500;transition:opacity .15s,background .15s;display:inline-flex}.btn:hover{opacity:.9}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.accent{background:var(--accent);color:var(--on-accent)}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.btn.ghost:hover{background:var(--surface-3);opacity:1}.btn.small{border-radius:8px;padding:5px 11px;font-size:12.5px}.btn.full{width:100%;padding:13px}.btn.danger{color:var(--negative)}.icon-button{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:grid}.icon-button:hover{color:var(--text);background:var(--surface-2)}.icon-button:disabled{opacity:.25;pointer-events:none}.icon-button.small{width:28px;height:28px}.link{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:12.5px}.link:hover{color:var(--text)}.segmented{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 12px;font-size:12.5px;transition:all .15s}.segmented button.on{background:var(--surface-3);color:var(--text)}.segmented.wide{display:flex}.segmented.wide button{flex:1;padding:8px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-header h3{font-size:14px;font-weight:600}.hero{border:1px solid var(--line);background:var(--surface);border-radius:20px;margin-bottom:14px;padding:26px 28px}.hero-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.hero-value{letter-spacing:-1.8px;font-variant-numeric:tabular-nums;margin:6px 0 4px;font-size:46px;font-weight:600;line-height:1.1}.pill{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:inline-flex}.pill.neg{background:var(--negative-soft);color:var(--negative)}.stat{text-align:left;flex-direction:column;gap:10px;width:100%;display:flex}.stat.clickable{cursor:pointer;transition:border-color .15s}.stat.clickable:hover{border-color:var(--faint)}.stat-value{letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.chip{border-radius:10px;flex-shrink:0;place-items:center;display:grid}.avatar{border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.calendar-badge{border:1px solid var(--line);background:var(--bg);text-align:center;border-radius:8px;flex-shrink:0;width:38px;overflow:hidden}.calendar-badge small{background:var(--surface-2);color:var(--muted);letter-spacing:.5px;text-transform:uppercase;padding:1px 0;font-size:9.5px;display:block}.calendar-badge b{padding:1px 0 2px;font-size:14px;font-weight:600;display:block}.list{flex-direction:column;display:flex}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.row:last-child{border-bottom:0}.scroll-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;max-height:290px;margin-right:-10px;padding-right:10px;overflow-y:auto}.scroll-list::-webkit-scrollbar{width:6px}.scroll-list::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:6px}.scroll-list::-webkit-scrollbar-track{background:0 0}.row.wrap{flex-wrap:wrap}.panel .row:first-child{padding-top:2px}.panel .row:last-child{padding-bottom:2px}.row .grow>div:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row-action{opacity:0;width:28px;height:28px}.row:hover .row-action{opacity:1}.row.done .grow>div:first-child{color:var(--muted);text-decoration:line-through}.row.done .amount{color:var(--muted)}.amount{text-align:right;white-space:nowrap;font-weight:500}.amount small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.check{border:1.5px solid var(--faint);width:20px;height:20px;color:var(--on-accent);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.check:hover{border-color:var(--accent)}.check.on{background:var(--accent);border-color:var(--accent)}.empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center;padding:32px 16px}.empty .link{font-size:inherit;color:var(--text);text-underline-offset:3px;margin-left:4px;text-decoration:underline}.progress-bar{background:var(--surface-3);border-radius:6px;height:6px;margin:10px 0 8px;overflow:hidden}.progress-bar>div{border-radius:6px;height:100%;transition:width .4s}.progress-bar.compact{margin:8px 0 0}.progress-bar.hero-progress{height:8px;margin:20px 0 0}.ring{flex-shrink:0;position:relative}.ring circle{transition:stroke-dashoffset .5s}.ring span{place-items:center;font-size:12.5px;font-weight:600;display:grid;position:absolute;inset:0}.legend{color:var(--text-2);flex-wrap:wrap;gap:18px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.overlay{z-index:50;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:20px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.sheet{border:1px solid var(--line);background:var(--surface);width:100%;max-width:460px;max-height:90vh;box-shadow:var(--shadow-lg);border-radius:20px;padding:22px 24px 24px;animation:.18s ease-out pop-in;overflow:auto}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.sheet-header h3{font-size:17px;font-weight:600}.field{flex-direction:column;gap:7px;margin-bottom:16px;display:flex}.field-label{color:var(--muted);font-size:12.5px}.hint{color:var(--faint);font-size:12px}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-section{margin-bottom:16px}.divider{background:var(--line);border:0;height:1px;margin:20px 0}.status{font-size:12.5px}.inline-form{align-items:center;gap:6px;display:flex}.inline-form input{padding:8px 11px}.checkbox-line{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;display:flex}.amount-field{border:1px solid var(--line);background:var(--bg);border-radius:14px;align-items:center;gap:8px;margin-bottom:18px;padding:14px 16px;display:flex}.field .amount-field{margin-bottom:0}.amount-field-symbol{color:var(--muted);font-size:28px;font-weight:500}.amount-field input{letter-spacing:-1px;background:0 0;border:0;border-radius:0;flex:1;padding:0;font-size:34px;font-weight:600}.category-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.option-button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);min-width:0;color:var(--text-2);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:all .15s;display:flex}.option-button.on{border-color:var(--text-2);background:var(--surface-2);color:var(--text)}.option-button .chip{border-radius:7px;width:24px;height:24px}.category-filter{scrollbar-width:none;gap:6px;margin-bottom:14px;display:flex;overflow-x:auto}.category-filter::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:7px;padding:5px 12px;font-size:12.5px;transition:all .15s;display:inline-flex}.filter-chip:has(.chip){padding-left:4px}.filter-chip .chip{border-radius:50%}.filter-chip:hover{border-color:var(--faint)}.filter-chip.on{border-color:var(--text-2);background:var(--surface-3);color:var(--text)}.option-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.icon-picker{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.icon-option{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);cursor:pointer;place-items:center;transition:all .15s;display:grid}.icon-option:hover{color:var(--text)}.icon-option.on{border-color:currentColor}.tax-summary{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);margin:-4px 0 16px;padding:12px 14px}.tax-summary .checkbox-line{margin-bottom:10px}.tax-breakdown div{color:var(--text-2);justify-content:space-between;padding:2px 0;font-size:13px;display:flex}.tax-breakdown .tax-total{border-top:1px solid var(--line);color:var(--text);margin-top:6px;padding-top:8px;font-weight:600}.tax-input{gap:8px;display:flex}.tax-input .btn{flex-shrink:0}.category-name-row{align-items:center;gap:10px;display:flex}.form-note{margin:-4px 0 14px}.settings-link{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);text-align:left;cursor:pointer;align-items:center;width:100%;padding:12px 14px;transition:border-color .15s;display:flex}.settings-link:hover{border-color:var(--faint)}.category-list{margin-bottom:16px}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.color-picker{gap:8px;display:flex}.color-swatch{outline:2px solid var(--surface);outline-offset:-4px;cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px}.color-swatch.on{border-color:var(--text)}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}}@keyframes fade-in{0%{opacity:0}}.budget-bar{border-radius:8px;gap:2px;height:8px;margin:22px 0 10px;display:flex;overflow:hidden}.budget-bar>div{border-radius:2px;height:100%}.daily-chart{align-items:flex-end;gap:2px;height:120px;margin-top:8px;display:flex;position:relative}.daily-column{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.daily-bar{background:var(--surface-3);border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:background .15s}.daily-bar.has-value{background:var(--chart-1)}.daily-column:hover .daily-bar.has-value{background:var(--chart-1-hover)}.daily-column.today .daily-bar{outline:1px solid var(--text-2);outline-offset:1px}.daily-column.future .daily-bar{border:1px dashed var(--line);background:0 0;border-bottom:0}.daily-axis{border-top:1px solid var(--line);color:var(--faint);justify-content:space-between;margin-top:6px;padding-top:6px;font-size:11px;display:flex}.chart-note{margin-top:8px}.tooltip{z-index:5;border:1px solid var(--line);background:var(--surface-3);box-shadow:var(--shadow-sm);white-space:nowrap;pointer-events:none;border-radius:8px;padding:5px 9px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.stacked-bar{gap:2px;height:10px;margin:4px 0 16px;display:flex}.stacked-bar>div{border-radius:2px;height:100%}.stacked-bar>div:first-child{border-radius:6px 2px 2px 6px}.stacked-bar>div:last-child{border-radius:2px 6px 6px 2px}.category-legend li{align-items:center;gap:10px;padding:7px 0;display:flex}.category-legend.selectable li{padding:0}.category-legend button{text-align:left;cursor:pointer;box-sizing:content-box;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;margin:0 -8px;padding:7px 8px;transition:background .15s;display:flex}.category-legend button:hover,.category-legend button.on{background:var(--surface-2)}.category-legend .dimmed,.stacked-bar .dimmed{opacity:.35}.stacked-bar>div,.category-legend li{transition:opacity .15s}.category-legend .percent{text-align:right;width:38px;color:var(--muted);font-size:12.5px}.notice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px 14px;padding:14px 16px;display:flex}.notice>.grow{flex:220px}.notice strong{font-weight:600}.notice-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.notice-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.tour{z-index:60;position:fixed;inset:0}.tour-backdrop{position:absolute;inset:0}.tour-backdrop.dimmed{background:var(--overlay)}.tour-spotlight{box-shadow:0 0 0 9999px var(--overlay);outline:2px solid var(--accent);outline-offset:2px;pointer-events:none;border-radius:14px;transition:all .25s;position:fixed}.tour-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);padding:18px 18px 14px;animation:.18s ease-out pop-in;position:fixed}.tour-card.centered{width:min(360px,100vw - 24px);top:50%;left:50%;transform:translate(-50%,-50%)}.tour-card h3{margin:12px 0 6px;font-size:16px;font-weight:600}.tour-card p{color:var(--text-2);font-size:13.5px}.tour-progress{gap:4px;display:flex}.tour-progress span{background:var(--surface-3);border-radius:3px;flex:1;height:3px}.tour-progress .done,.tour-progress .on{background:var(--accent)}.tour-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.tour-count{text-align:right;margin-top:10px;font-size:11.5px}.tour-anchor{display:inline-flex}.day-group{margin-bottom:18px}.day-group-header{color:var(--muted);justify-content:space-between;padding:0 4px 8px;font-size:12.5px;display:flex}.person-header{margin-bottom:12px}.person-name{align-items:center;gap:10px;font-weight:600;display:flex}.whatsapp{margin-top:14px}.removable{display:inline-flex;position:relative}.remove-badge{border:1px solid var(--line);background:var(--surface-3);width:18px;height:18px;color:var(--text-2);cursor:pointer;border-radius:50%;place-items:center;transition:background .15s,color .15s;display:grid;position:absolute;top:-6px;right:-6px}.remove-badge:hover{background:var(--negative-soft);color:var(--negative)}.remove-badge:after{content:"";position:absolute;inset:-8px}.person-option{padding:5px 10px 5px 5px}.person-input{align-items:center;gap:8px;display:flex}.person-input .num{text-align:right;width:100px;color:var(--text-2);flex-shrink:0}.person-input .person-amount{text-align:right;flex-shrink:0;width:130px}.form-error{margin:-6px 0 12px}.split-total{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);justify-content:space-between;align-items:center;margin:16px 0;padding:14px 16px;display:flex}.split-total-value{color:var(--text);font-size:14px}.split-total-owed{font-size:18px;font-weight:600}.goal-card{flex-direction:column;gap:14px;display:flex}.goal-header{align-items:center;gap:14px;display:flex}.goal-name{font-size:15px;font-weight:600}.goal-amount{letter-spacing:-.5px;font-size:22px;font-weight:600}.goal-pace{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-2);align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:flex}.settled-debts{flex-direction:column;gap:10px;margin-top:14px;display:flex}.row.settled .grow>div:first-child,.row.settled .amount{color:var(--text-2)}.saving-hint{margin:-4px 0 16px}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar,.desktop-only{display:none!important}.mobile-only{display:flex}.content{padding:calc(16px + env(safe-area-inset-top)) 16px 150px}.header{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px}.header h1{font-size:24px}.header-top{justify-content:space-between;align-items:center;display:flex}.header-actions{justify-content:space-between}.hero{border-radius:18px;padding:22px 20px}.hero-value{font-size:38px}.grid{gap:10px}.spaced{margin-bottom:10px}.cols-2{grid-template-columns:1fr}.cols-4,.cols-3,.cols-2.keep-columns{grid-template-columns:1fr 1fr}.cols-3>:nth-child(3){grid-column:span 2}.masonry{columns:1}.masonry>*{margin-bottom:10px}.panel{padding:16px}.stat-value{font-size:17px}.row-action{opacity:.6}.category-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-nav{z-index:20;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:3px;padding:2px 0;font-size:10.5px;display:flex}.bottom-nav button.on{color:var(--text)}.bottom-nav-icon{border-radius:10px;place-items:center;width:40px;height:32px;transition:background .2s,color .2s;display:grid}.bottom-nav button.on .bottom-nav-icon{background:var(--accent-soft);color:var(--accent-text)}.fab{right:16px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:21;background:var(--accent);width:56px;height:56px;color:var(--on-accent);box-shadow:var(--shadow-sm);cursor:pointer;border:0;border-radius:18px;place-items:center;display:grid;position:fixed}.overlay{place-items:end stretch;padding:0}.sheet{max-width:none;padding:10px 18px calc(22px + env(safe-area-inset-bottom));border-bottom:0;border-radius:22px 22px 0 0;animation:.22s ease-out slide-up}.sheet:before{content:"";background:var(--surface-3);border-radius:4px;width:36px;height:4px;margin:0 auto 14px;display:block}input,select{font-size:16px}}
