/* Darzen Couples Money live demo (c) Darzen, darzenstore.com */
:root{color-scheme:light;--bg: #FBF7F0;--surface: #FFFFFF;--surface-2: #F3EEE5;--surface-3: #EFE9DE;--ink: #2F3331;--ink-2: #474C4A;--muted: #646A68;--faint: #9AA09D;--line: #ECE6DB;--line-strong: #DED5C6;--brand: #4F6F67;--brand-ink: #FFFFFF;--brand-strong: #3F5C55;--brand-deep: #2F4F48;--brand-soft: #E7EEE9;--brand-softer: #F2F6F3;--peach: #F3B997;--peach-ink: #4A2F20;--peach-soft: #FBE6D8;--butter: #F6E7B8;--butter-soft: #FBF2D9;--butter-ink: #5A4512;--blue: #3F6E9A;--blue-soft: #E5EEF7;--blue-dot: #8FB3D6;--green: #2F7A52;--green-soft: #E2F2E7;--green-dot: #86C59E;--coral-soft: #FBE4DC;--coral-dot: #EE9A86;--heat-1: #FBE3DC;--heat-2: #F5BFAF;--heat-3: #EC9580;--heat-4: #DB6A55;--heat-peak: #C2493A;--good: #2F6B55;--good-soft: #E1EFE7;--warn: #86651A;--warn-soft: #F8EDD3;--bad: #A2482C;--bad-soft: #F8E3DA;--chart-1: #4F6F67;--chart-2: #F3B997;--chart-3: #A9C2B8;--chart-4: #D9A07E;--chart-5: #CFD8C8;--chart-grid: #EFE9DF;--logo-mark: #024749;--logo-word: #1C1C1B;--focus: #4F6F67;--overlay: rgba(47, 38, 26, .34);--shadow: 0 1px 2px rgba(74, 60, 40, .05), 0 6px 18px rgba(74, 60, 40, .05);--shadow-lift: 0 14px 34px -14px rgba(74, 60, 40, .38);--font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-num: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 40px;--r-card: 18px;--r-ctrl: 12px;--ease: cubic-bezier(.2, .7, .2, 1)}:root[data-app-theme=dark]{color-scheme:dark;--bg: #171918;--surface: #202422;--surface-2: #272C29;--surface-3: #2D332F;--ink: #ECEAE5;--ink-2: #CFCCC5;--muted: #A7ADA9;--faint: #7D8480;--line: #313733;--line-strong: #3E4540;--brand: #9DBCB3;--brand-ink: #14201C;--brand-strong: #B7D1C9;--brand-deep: #CFE2DB;--brand-soft: #26352F;--brand-softer: #1E2925;--peach: #F3B997;--peach-ink: #F7D9C6;--peach-soft: #3D2E25;--butter: #6B5A2A;--butter-soft: #35301E;--butter-ink: #F1DFA8;--blue: #9CC0E4;--blue-soft: #22303D;--blue-dot: #5F8AB3;--green: #9AD3B0;--green-soft: #1F3328;--green-dot: #4F9A6D;--coral-soft: #3E2822;--coral-dot: #D9826E;--heat-1: #3A2723;--heat-2: #5C3329;--heat-3: #8A4232;--heat-4: #B9553F;--heat-peak: #E2735A;--good: #8FCCAE;--good-soft: #1E3329;--warn: #E8C979;--warn-soft: #3A3220;--bad: #F0A285;--bad-soft: #3E2720;--chart-1: #9DBCB3;--chart-2: #F3B997;--chart-3: #5F7C72;--chart-4: #C98E6D;--chart-5: #3F4A44;--chart-grid: #2B312D;--logo-mark: #FFFFFF;--logo-word: #FFFFFF;--focus: #9DBCB3;--overlay: rgba(0, 0, 0, .6);--shadow: 0 1px 2px rgba(0, 0, 0, .35);--shadow-lift: 0 14px 34px -12px rgba(0, 0, 0, .7)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.num,.amount{font-family:var(--font-num);font-feature-settings:"tnum" 1,"lnum" 1;font-variant-numeric:tabular-nums lining-nums}.display{font-family:var(--font-display);font-weight:750;letter-spacing:-.03em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}svg.icon{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon.sm{width:16px;height:16px}.app{min-height:100%;display:flex;flex-direction:column}.topnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;display:flex;align-items:center;gap:18px;padding-block:12px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:31;background:var(--bg)}.brand{display:flex;align-items:center;gap:10px;flex:none}.brand svg.logo{height:22px;width:auto}.brand .product{font-weight:600;color:var(--muted);font-size:15px;padding-left:10px;border-left:1px solid var(--line-strong);line-height:1.1;white-space:nowrap}.logo .mark{fill:var(--logo-mark)}.logo .word{fill:var(--logo-word)}.tabs{display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--line);min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:36px;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap}.tabs button:hover{background:var(--surface-2);color:var(--ink)}.tabs button[aria-current=page]{background:var(--brand);color:var(--brand-ink)}.tabs .badge{font-size:11px;font-weight:800;padding:0 7px;border-radius:999px;background:var(--peach);color:#4a2f20;line-height:18px}.tabs button[aria-current=page] .badge{background:var(--brand-ink);color:var(--brand)}.topnav .spacer{flex:1}.topnav .actions{display:flex;align-items:center;gap:6px;flex:none}.main{flex:1;min-width:0;padding-block:26px 56px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px))}.main-inner{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.main-inner.wide{max-width:1560px}.tabbar{display:none}.phone-only{display:none!important}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}.page-head .title{min-width:0}.page-head h1{margin:0;font-family:var(--font-display);font-size:var(--fs-2xl);line-height:1.12;font-weight:750;letter-spacing:-.03em;text-wrap:balance;color:var(--ink)}.page-head .sub{color:var(--muted);font-size:14px;margin-top:4px}.page-head .grow{flex:1 1 auto;min-width:0}.kpis{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}.kpi{display:flex;align-items:center;gap:10px;min-width:0}.kpi .ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--brand);flex:none}.kpi .ic svg.icon{width:18px;height:18px}.kpi .v{font-family:var(--font-num);font-weight:750;font-size:19px;letter-spacing:-.01em;line-height:1.1;display:flex;align-items:center;gap:8px;white-space:nowrap}.kpi .k{font-size:12.5px;color:var(--muted);white-space:nowrap}.delta{display:inline-flex;align-items:center;gap:3px;font-family:var(--font);font-size:11.5px;font-weight:800;padding:1px 8px;border-radius:999px;background:var(--good-soft);color:var(--good);white-space:nowrap}.delta.down{background:var(--bad-soft);color:var(--bad)}.delta.flat{background:var(--surface-2);color:var(--muted)}.month-switch{display:inline-flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px}.month-switch button{width:36px;height:36px;border:0;border-radius:999px;background:transparent;display:grid;place-items:center;color:var(--ink-2)}.month-switch button:hover{background:var(--surface-2)}.month-switch .mlabel{min-width:132px;text-align:center;font-weight:700;font-size:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border-radius:var(--r-ctrl);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:700;font-size:14px;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.btn.peach{background:var(--peach);border-color:var(--peach);color:#4a2f20}.btn.peach:hover{filter:brightness(.97)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--bad);border-color:var(--bad);background:transparent}.btn.danger:hover{background:var(--bad-soft)}.btn.small{min-height:34px;padding:5px 12px;font-size:13px;border-radius:10px}.btn.pill{border-radius:999px}.btn[disabled]{opacity:.5;pointer-events:none}.icon-btn{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:50%;border:0;background:transparent;color:var(--muted)}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn.ring{border:1px solid var(--line);background:var(--surface)}.icon-btn.danger:hover{background:var(--bad-soft);color:var(--bad)}.link-btn{border:0;background:none;padding:0;color:var(--brand);font-weight:700;font-size:14px}.link-btn:hover{text-decoration:underline;text-underline-offset:3px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.dash{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start}.grid.side{grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:start}.stack{display:flex;flex-direction:column;gap:20px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:20px;box-shadow:var(--shadow);min-width:0}.card.flat{box-shadow:none}.card.tint{background:var(--brand-softer)}.card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:14px}.card-head h2{margin:0;font-size:var(--fs-md);font-weight:750;letter-spacing:-.01em}.card-head .meta{color:var(--muted);font-size:13px}.card-head .spacer{flex:1}.card-head .sub{flex-basis:100%;color:var(--muted);font-size:13px;margin-top:-6px}.label{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.big-num{font-family:var(--font-display);font-weight:750;font-size:var(--fs-3xl);line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.hero{background:linear-gradient(135deg,var(--brand-soft) 0%,var(--brand-softer) 100%);color:var(--ink);border-color:transparent;padding:24px;display:grid;gap:18px;position:relative;overflow:hidden}.hero .label{color:var(--brand-deep);opacity:.8}.hero .big{font-family:var(--font-display);font-size:46px;line-height:1;font-weight:750;letter-spacing:-.04em;color:var(--brand-deep);font-variant-numeric:tabular-nums}.hero .note{color:var(--ink-2);font-size:14px;max-width:50ch}.hero .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--brand) 22%,transparent)}.hero .stats .v{font-size:20px;font-weight:700}.hero .stats .k{font-size:13px;color:var(--muted)}.hero .fold{position:absolute;top:0;right:0;width:56px;height:56px;background:linear-gradient(225deg,var(--bg) 0 50%,color-mix(in srgb,var(--brand) 12%,transparent) 50% 100%);border-bottom-left-radius:10px;pointer-events:none}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;min-width:0}.stat .v{font-size:23px;font-weight:750;margin-top:2px;font-family:var(--font-num);letter-spacing:-.02em}.stat .k{font-size:13px;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}.chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}.chip.plain:before{display:none}.chip.good{background:var(--good-soft);color:var(--good)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.brand{background:var(--brand-soft);color:var(--brand-deep)}.chip.peach{background:var(--peach-soft);color:var(--peach-ink)}.chip.blue{background:var(--blue-soft);color:var(--blue)}.chip.green{background:var(--green-soft);color:var(--green)}.chip.coral{background:var(--coral-soft);color:var(--bad)}.bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:var(--brand)}.bar.good>span{background:var(--good)}.bar.warn>span{background:var(--warn)}.bar.bad>span{background:var(--bad)}.bar.peach>span{background:var(--peach)}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);min-width:0}.row:first-child{border-top:0;padding-top:2px}.row .main-col{flex:1 1 auto;min-width:0}.row .title{font-weight:600;overflow-wrap:anywhere}.title-btn{display:block;border:0;background:none;padding:0;text-align:left;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.title-btn:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}.row .sub .chip{margin-right:4px}.row .sub{font-size:13px;color:var(--muted)}.row .amount{font-weight:700;text-align:right;white-space:nowrap}.date-tile{width:46px;flex:none;text-align:center;border-radius:12px;background:var(--surface-2);padding:5px 0;line-height:1.1}.date-tile .d{font-size:17px;font-weight:700;font-family:var(--font-num)}.date-tile .m{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:800;font-size:12px;background:var(--peach-soft);color:var(--peach-ink)}.avatar.sage{background:var(--brand-soft);color:var(--brand-deep)}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;min-width:560px}.tbl th{text-align:left;font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl th.r,.tbl td.r{text-align:right}.tbl tr.group td{background:var(--surface-2);font-weight:700}.tbl tbody tr:not(.group):hover td{background:var(--brand-softer)}.money-input{width:116px;text-align:right;padding:7px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-weight:600}.money-input:hover{border-color:var(--line-strong)}.money-input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--brand-soft)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,.field .flabel{font-size:13px;font-weight:700;color:var(--ink-2)}.field .help{font-size:12px;color:var(--muted)}.input,select.input,textarea.input{width:100%;min-height:44px;padding:10px 12px;border-radius:var(--r-ctrl);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}textarea.input{min-height:96px;resize:vertical}textarea.input.code{min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--brand-soft)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1 / -1}.seg{display:inline-flex;padding:3px;gap:3px;border-radius:999px;background:var(--surface-2);flex-wrap:wrap}.seg button{border:0;background:transparent;border-radius:999px;padding:6px 14px;font-weight:700;color:var(--muted);min-height:34px;font-size:13.5px;display:inline-flex;align-items:center;gap:6px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--brand-deep);box-shadow:0 1px 3px #4a3c2824}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.toolbar .input{width:auto;min-width:0;flex:1 1 200px;min-height:40px}.toolbar select.input{flex:0 1 180px}.search{position:relative;flex:1 1 220px;min-width:0}.search svg.icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);width:18px;height:18px;pointer-events:none}.search .input{padding-left:38px;width:100%;min-height:40px;border-radius:999px}.filter{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:700;color:var(--ink-2)}.filter[aria-pressed=true]{background:var(--brand-soft);border-color:transparent;color:var(--brand-deep)}.check{display:flex;align-items:center;gap:10px;font-weight:500}.check input{width:18px;height:18px;accent-color:var(--brand)}.switch{position:relative;width:44px;height:26px;flex:none}.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.switch span{position:absolute;inset:0;border-radius:999px;background:var(--line-strong);transition:background-color .2s ease;pointer-events:none}.switch span:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .2s var(--ease)}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:after{transform:translate(18px)}.switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:14px 18px;border-radius:16px;background:var(--peach-soft);color:var(--ink)}.banner.sage{background:var(--brand-soft)}.banner.warn{background:var(--warn-soft)}.banner .grow{flex:1 1 260px;min-width:0}.banner strong{font-weight:700}.upnext{display:grid;gap:6px;padding:18px;border-radius:16px;background:var(--brand);color:var(--brand-ink);position:relative;overflow:hidden}.upnext .in{font-size:13px;font-weight:700;opacity:.85;display:flex;align-items:center;gap:6px}.upnext .in:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--peach)}.upnext .t{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:750;line-height:1.2;letter-spacing:-.02em}.upnext .d{font-size:13.5px;opacity:.85}.upnext .act{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.upnext .btn{background:#ffffff24;border-color:#ffffff38;color:var(--brand-ink)}.upnext .btn:hover{background:#ffffff38}.upnext.soon .in:before{animation:pulse 1.6s ease-in-out infinite}:root[data-app-theme=dark] .upnext .btn{background:#0000001f;border-color:#0000002e}.later-list{display:flex;flex-direction:column;gap:2px;margin-top:12px}.later-list .li{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px;font-weight:600}.later-list .li:before{content:"";width:3px;height:18px;border-radius:3px;background:var(--peach);flex:none}.later-list .li .when{margin-left:auto;color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}.rings{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.rings svg{width:132px;height:132px;flex:none}.rings .track{stroke:var(--surface-2)}.rings .legend-v{display:flex;flex-direction:column;gap:10px}.rings .legend-v div{display:grid;grid-template-columns:4px auto;column-gap:10px}.rings .legend-v i{grid-row:span 2;width:4px;border-radius:4px}.rings .legend-v .k{font-size:12.5px;color:var(--muted);font-weight:600}.rings .legend-v .v{font-family:var(--font-num);font-size:18px;font-weight:700}.rings .legend-v .v small{font-size:13px;color:var(--muted);font-weight:600}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(224px,1fr);gap:14px;overflow-x:auto;padding-bottom:6px;align-items:start;scroll-snap-type:x proximity}.col{background:var(--surface-2);border-radius:18px;padding:10px;display:flex;flex-direction:column;gap:10px;min-height:160px;scroll-snap-align:start}.col-head{display:flex;align-items:center;gap:8px;padding:4px 6px 2px}.col-head .dot{width:10px;height:10px;border-radius:50%;background:var(--faint);flex:none}.col-head h3{margin:0;font-size:14px;font-weight:800}.col-head .n{font-family:var(--font-num);font-size:12px;font-weight:800;padding:0 8px;border-radius:999px;background:var(--surface);color:var(--muted);line-height:20px}.col-head .sum{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:700}.col-body{display:flex;flex-direction:column;gap:10px;min-height:60px;border-radius:14px;transition:background-color .15s ease}.col.over .col-body{background:color-mix(in srgb,var(--brand) 10%,transparent)}.col-empty{padding:18px 10px;text-align:center;font-size:13px;color:var(--muted);border:1.5px dashed var(--line-strong);border-radius:14px}.tone-new .dot{background:var(--blue-dot)}.tone-new .tcard{background:var(--blue-soft)}.tone-active .dot{background:var(--coral-dot)}.tone-active .tcard{background:var(--coral-soft)}.tone-wait .dot{background:var(--butter)}.tone-wait .tcard{background:var(--butter-soft)}.tone-good .dot{background:var(--green-dot)}.tone-good .tcard{background:var(--green-soft)}.tone-done .dot{background:var(--faint)}.tone-done .tcard{background:var(--surface)}.tone-bad .dot{background:var(--bad)}.tone-bad .tcard{background:var(--surface);opacity:.82}.tcard{position:relative;display:flex;flex-direction:column;gap:8px;padding:13px 14px;border-radius:14px;background:var(--surface);border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;transition:box-shadow .18s ease,transform .18s var(--ease)}.tcard:hover{box-shadow:var(--shadow)}.tcard:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tcard .top{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:700}.tcard .top .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcard h4{margin:0;font-size:15.5px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.tcard .meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--ink-2)}.tcard .meta span{display:inline-flex;align-items:center;gap:4px}.tcard .meta svg.icon{width:14px;height:14px}.tcard .foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tcard .foot .pill-btn{margin-left:auto}.tcard .foot .grow{flex:1}.tcard .pill-btn{border:0;border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:800;background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #4a3c281f;display:inline-flex;align-items:center;gap:5px}.tcard .pill-btn:hover{background:var(--brand);color:var(--brand-ink)}.tcard .more{position:absolute;top:8px;right:8px;width:28px;height:28px}.tcard.dragging{opacity:.35}.drag-ghost{position:fixed;z-index:90;pointer-events:none;box-shadow:var(--shadow-lift);transform:rotate(1.5deg);cursor:grabbing}.drop-mark{height:4px;border-radius:4px;background:var(--brand);margin:-3px 2px}body.is-dragging,body.is-dragging *{cursor:grabbing!important}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid-line{stroke:var(--chart-grid);stroke-width:1}.chart .grid-line.zero{stroke:var(--line-strong)}.chart .axis-text{fill:var(--muted);font-size:11px;font-family:var(--font-num)}.chart .s1{stroke:var(--chart-1)}.chart .f1{fill:var(--chart-1)}.chart .s2{stroke:var(--chart-2)}.chart .f2{fill:var(--chart-2)}.chart .s3{stroke:var(--chart-3)}.chart .f3{fill:var(--chart-3)}.chart .s4{stroke:var(--chart-4)}.chart .f4{fill:var(--chart-4)}.chart .line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.chart .line.dash{stroke-dasharray:5 6;stroke-width:1.8;stroke:var(--faint)}.chart .area{opacity:.16}.chart .hover-line{stroke:var(--line-strong);stroke-width:1}.chart .hover-dot{stroke:var(--surface);stroke-width:2.5}.chart .bar-in{fill:var(--chart-1)}.chart .bar-out{fill:var(--chart-2)}.chart .bar-neg{fill:var(--bad);opacity:.55}.chart .hit{fill:transparent}.tip{position:absolute;z-index:5;pointer-events:none;min-width:120px;padding:9px 11px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:12.5px;box-shadow:var(--shadow-lift);transform:translate(-50%,calc(-100% - 12px));white-space:nowrap}.tip b{display:block;font-size:12px;opacity:.8;margin-bottom:3px}.tip div{display:flex;align-items:center;gap:8px;justify-content:space-between}.tip i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.legend{display:flex;gap:16px;font-size:13px;color:var(--muted);flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.legend i.dash{height:0;width:16px;border-top:2px dashed var(--faint);border-radius:0}.hbars{display:flex;flex-direction:column;gap:12px}.hbar .top{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:6px}.hbar .top .name{font-weight:600;min-width:0;overflow-wrap:anywhere}.hbar .top .val{color:var(--muted);white-space:nowrap}.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.donut-wrap svg{width:150px;height:150px;flex:none}.donut-wrap .center-v{font-family:var(--font-display);font-weight:750;fill:var(--ink);letter-spacing:-.02em}.donut-wrap .center-k{fill:var(--muted);font-size:10px;font-weight:700}.donut-list{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:8px}.donut-list div{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:10px;align-items:center;font-size:13.5px}.donut-list i{width:10px;height:10px;border-radius:3px}.donut-list .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-list .v{font-weight:700;font-family:var(--font-num)}.donut-list .p{color:var(--muted);font-family:var(--font-num);font-size:12.5px;min-width:38px;text-align:right}.heat{display:grid;gap:3px}.heat .hc{aspect-ratio:1;border-radius:4px;background:var(--surface-2)}.hc[data-l="0"]{background:var(--surface-2)}.hc[data-l="1"]{background:var(--heat-1)}.hc[data-l="2"]{background:var(--heat-2)}.hc[data-l="3"]{background:var(--heat-3)}.hc[data-l="4"]{background:var(--heat-4)}.heat .hc.peak{background:var(--heat-peak)}.heat .hc.out{background:transparent}.heat .hl{font-size:10.5px;color:var(--muted);font-weight:700;align-self:center;white-space:nowrap}.heat-legend{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);margin-top:8px;justify-content:flex-end}.heat-legend .hc{width:11px;height:11px;border-radius:3px;display:inline-block}.gauge svg{width:100%;max-width:240px;height:auto;display:block;margin:0 auto}.gauge .track{stroke:var(--surface-2)}.gauge .val{stroke:var(--brand)}.gauge .mark{stroke:var(--ink);stroke-width:2}.quad .q-label{font-size:11px;font-weight:800;fill:var(--muted);letter-spacing:.04em;text-transform:uppercase}.quad .q-bg{fill:var(--surface-2)}.quad .q-bg.alt{fill:var(--brand-softer)}.quad .pt{stroke:var(--surface);stroke-width:2;cursor:pointer}.quad .pt-label{font-size:11px;font-weight:700;fill:var(--ink-2)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal .dow{font-size:11px;font-weight:800;text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.cal .day{min-height:48px;border-radius:12px;background:var(--surface-2);padding:5px 6px;font-size:12px;font-weight:600;color:var(--ink-2);display:flex;flex-direction:column;justify-content:space-between}.cal .day.out{background:transparent}.cal .day.today{outline:2px solid var(--brand);outline-offset:-2px;background:var(--brand-softer)}.cal .dots{display:flex;gap:3px;flex-wrap:wrap}.cal .dots i{width:8px;height:8px;border-radius:50%;background:var(--brand);display:block}.cal .dots i.due{background:transparent;border:2px solid var(--brand)}.cal .dots i.paid{background:var(--good)}.cal .dots i.late{background:var(--bad)}.cal .dots i.peach{background:var(--peach)}dialog.sheet{border:0;padding:0;border-radius:22px;background:var(--surface);color:var(--ink);width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-shadow:0 24px 70px #2f261a47}dialog.sheet.wide{width:min(820px,calc(100vw - 32px))}dialog.sheet::backdrop{background:var(--overlay)}.sheet-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 48px)}.sheet-head{display:flex;align-items:center;gap:10px;padding:18px 20px 6px}.sheet-head h2{margin:0;font-family:var(--font-display);font-size:20px;font-weight:750;letter-spacing:-.02em;flex:1}.sheet-body{padding:10px 20px 4px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.sheet-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px 20px;flex-wrap:wrap}.sheet-foot .left{margin-right:auto}.sheet-error{color:var(--bad);font-weight:700;font-size:13.5px}.amount-input{font-size:34px;font-weight:700;text-align:center;min-height:64px;font-family:var(--font-num)}.steps{display:flex;gap:6px}.steps i{flex:1;height:4px;border-radius:4px;background:var(--line);display:block}.steps i.on{background:var(--brand)}.menu-list{display:flex;flex-direction:column;gap:4px}.menu-list button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:0;border-radius:12px;background:transparent;text-align:left;font-weight:600}.menu-list button:hover{background:var(--surface-2)}.menu-list button[aria-current=page]{background:var(--brand-soft);color:var(--brand-deep)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%) translateY(16px);opacity:0;display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg);padding:9px 10px 9px 16px;border-radius:999px;font-weight:600;font-size:14px;transition:opacity .2s ease,transform .2s var(--ease);pointer-events:none;z-index:95;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lift)}.toast.show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.toast .ok{width:20px;height:20px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;flex:none}:root[data-app-theme=dark] .toast .ok{background:var(--brand-deep)}.toast .ok svg.icon{width:13px;height:13px;stroke-width:3}.toast .msg{min-width:0}.toast .undo{border:0;border-radius:999px;padding:4px 12px;background:var(--peach);color:#4a2f20;font-weight:800;font-size:13px;flex:none}.toast:not(.has-undo){padding-right:16px}.empty{text-align:center;padding:28px 12px;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}.settings-list{display:flex;flex-direction:column;gap:20px}.set-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.set-row:first-of-type{border-top:0}.set-row .grow{flex:1;min-width:0}.set-row .t{font-weight:700}.set-row .d{font-size:13px;color:var(--muted)}.kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;font-size:14px}.kv .v{font-weight:700;text-align:right}.insights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.insights li{display:flex;gap:12px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.45}.insights li:first-child{border-top:0;padding-top:2px}.insights .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--brand);transform:translateY(-1px)}.insights .good .dot{background:var(--good)}.insights .warn .dot{background:var(--warn)}.insights .bad .dot{background:var(--bad)}.insights .peach .dot{background:var(--peach)}.insights strong{font-weight:700}.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:80}@media print{@page{margin:14mm}body{background:#fff!important}body:before{display:none}.topnav,.tabbar,.toast,.banner,.page-head .btn,.month-switch button,.link-btn,.icon-btn,.card-head .btn,.no-print,dialog{display:none!important}.main{padding:0!important}.main-inner{max-width:none;gap:14px}#view:before{content:attr(data-print);display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.card,.stat{box-shadow:none!important;break-inside:avoid}.board{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}#view.anim *{animation:none!important}}@media(max-width:1100px){.grid.dash,.grid.side{grid-template-columns:minmax(0,1fr)}.grid.four,.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.topnav .brand .product{display:none}}@media(max-width:900px){:root{--fs-2xl: 24px}.topnav{gap:10px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--surface)}.topnav .tabs,.desk-only{display:none!important}.phone-only{display:revert!important}.topnav .brand .product{display:inline}.topnav svg.logo{height:20px}.main{padding-block:16px 104px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.main-inner{gap:16px}.kpis{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.kpi .ic{display:none}.kpi .v{font-size:17px;flex-wrap:wrap;gap:4px 8px}.month-switch{width:100%;justify-content:space-between}.toolbar select.input{flex:1 1 140px}.tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.tabbar button{border:0;background:transparent;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:700;color:var(--muted)}.tabbar button[aria-current=page]{color:var(--brand-deep)}.tabbar .add{display:grid;place-items:center}.tabbar .add span{width:46px;height:46px;border-radius:16px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center}.grid.two,.grid.three{grid-template-columns:minmax(0,1fr)}.card{padding:16px}.hero{padding:20px}.hero .big{font-size:40px}.form-grid{grid-template-columns:minmax(0,1fr)}.board{grid-auto-columns:minmax(258px,84%);margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px}.toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}@media(max-width:560px){.grid.four{grid-template-columns:minmax(0,1fr)}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.hero .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hero .stats .v{font-size:16px}table.tbl{min-width:0}.tbl th,.tbl td{padding:9px 6px}.tbl-mobile-hide{display:none}.money-input{width:92px}.rings svg{width:112px;height:112px}.donut-wrap svg{width:128px;height:128px}dialog.sheet,dialog.sheet.wide{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:22px 22px 0 0;max-height:calc(100dvh - 24px)}.sheet-inner{max-height:calc(100dvh - 24px)}.sheet-foot{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.sheet-foot .btn{flex:1}.sheet-foot .left{flex-basis:100%;margin:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes growY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes draw{0%{stroke-dashoffset:var(--len, 1000)}to{stroke-dashoffset:0}}@keyframes sheetIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes flash{0%{background:var(--good-soft)}to{background:transparent}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes landed{0%{box-shadow:0 0 color-mix(in srgb,var(--brand) 45%,transparent)}to{box-shadow:0 0 0 10px transparent}}#view.anim :is(.page-head,.banner,.card,.stat,.col){animation:rise .45s var(--ease) both;animation-delay:calc(var(--i, 0) * 35ms)}#view.anim .bar>span{transform-origin:left center;animation:grow .8s var(--ease) .12s both}#view.anim .chart rect.bar-v{transform-box:fill-box;transform-origin:50% 100%;animation:growY .6s var(--ease) both;animation-delay:calc(.1s + var(--d, 0) * 35ms)}#view.anim .chart .line:not(.dash){stroke-dasharray:1000;animation:draw .9s var(--ease) .1s both}#view.anim .rings .arc,#view.anim .gauge .val{animation:draw .9s var(--ease) .1s both}#view.anim .donut-wrap .arc{animation:fadeIn .6s ease-out .1s both}#view.anim .insights li{animation:rise .4s var(--ease) both;animation-delay:calc(.22s + var(--i, 0) * 50ms)}dialog.sheet[open]{animation:sheetIn .22s var(--ease)}dialog.sheet[open]::backdrop{animation:fadeIn .22s ease-out}.row.flash{animation:flash 1.2s ease-out;border-radius:10px}.tcard.landed{animation:landed .6s ease-out}.btn,.tabs button,.tabbar button,.icon-btn,.seg button,.filter{transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease}.card{transition:box-shadow .2s ease,border-color .2s ease}.tabbar .add span{transition:transform .15s ease}.tabbar .add:active span{transform:scale(.94)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}:root[data-motion=off] *,:root[data-motion=off] *:before,:root[data-motion=off] *:after{transition:none!important;animation:none!important}.balance .bal-who{font-size:var(--fs-xl);font-weight:750;letter-spacing:-.02em;color:var(--ink);margin-bottom:-8px}.balance .toolbar{gap:10px 12px}.amount-col{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;flex:none}.amount-col .amount{font-weight:750}.row .sub .chip{margin-right:0;vertical-align:1px}.split-preview{padding:12px 14px;border-radius:12px;background:var(--surface-2);font-size:14px}.split-now{margin-top:14px;display:flex;flex-direction:column;gap:8px}.split-bar{height:12px;border-radius:999px;background:var(--peach);overflow:hidden}.split-bar span{display:block;height:100%;background:var(--brand);border-radius:999px 0 0 999px}.split-legend{display:flex;justify-content:space-between;font-size:14px}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;min-width:0}.goal{display:flex;flex-direction:column;gap:12px}.goal .g-head{display:flex;align-items:flex-start;gap:10px}.goal .g-head .main-col{flex:1;min-width:0}.goal h3{margin:0;font-size:var(--fs-lg);font-weight:750;letter-spacing:-.01em}.goal .g-nums{display:flex;align-items:baseline;gap:8px}.goal .g-nums .v{font-size:26px;font-weight:750;letter-spacing:-.02em}.stack-bar{display:flex;height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.stack-bar span{display:block;height:100%}.stack-bar .sa{background:var(--chart-1)}.stack-bar .sb{background:var(--chart-2)}.stack-bar .sj{background:var(--chart-3)}.goal .legend{gap:12px}.g-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px solid var(--line)}.g-facts .k{font-size:12px;color:var(--muted);font-weight:700}.g-facts .v2{font-weight:750}.goal .btn{align-self:flex-start}#view.anim .stack-bar span{transform-origin:left center;animation:grow .8s var(--ease) .12s both}.tcard .meta span{display:block;color:var(--ink-2)}@media(max-width:560px){.amount-col .small{display:none}}@media(max-width:560px){.bill-row{flex-wrap:wrap;row-gap:8px}.bill-row .main-col{flex:1 1 calc(100% - 60px)}.bill-row .amount-col{flex-direction:row;align-items:center;gap:10px;margin-left:58px}.bill-row>.btn{margin-left:auto}}:root{--demo-h: 46px}.demo-bar{position:sticky;top:0;z-index:45;box-sizing:border-box;height:calc(var(--demo-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:12px;background:#2f4f48;color:#fff;font-size:14px;font-weight:600;font-family:var(--font)}.demo-bar__tag{flex:none;padding:3px 9px;border-radius:999px;background:#f3b997;color:#4a2f20;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.demo-bar__txt{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#ffffffe0}.demo-bar__buy{flex:none;margin-left:auto;padding:7px 14px;border-radius:999px;background:#fff;color:#2f4f48;font-weight:800;text-decoration:none;white-space:nowrap;transition:background-color .15s ease}.demo-bar__buy:hover{background:#f3eee5}.demo-bar__buy:focus-visible{outline:2px solid #fff;outline-offset:2px}.topnav{top:calc(var(--demo-h) + env(safe-area-inset-top,0px))}@media(max-width:560px){.demo-bar__txt .long{display:none}}.is-framed{--demo-h: 0px}.is-framed .demo-bar{display:none}@media print{.demo-bar{display:none!important}}
