*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01" 1, "cv01" 1}::selection{background:color-mix(in oklab, var(--accent) 24%, transparent)}:root{--pos:oklch(52% .13 152);--neg:oklch(55% .18 27);--neutral:var(--text-dim);--warn:oklch(66% .13 72);--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-display:"Hanken Grotesk", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-num:var(--font-mono);--radius:8px;--radius-lg:12px;--shadow-1:none;--shadow-2:none;--hair:1px;--gap:16px;--pad:18px;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:17px;--fs-xl:20px;--fs-title:24px;--fs-stat:26px;--fs-stat-sm:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--r-ctl:10px;--r-ctl-sm:8px;--r-pill:999px;--t-fast:.14s;--t-med:.24s;--t-slow:.45s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.56,.5,1);--ease-exit:cubic-bezier(.4,0,1,1);--tag-house:oklch(60% .105 218);--tag-car:oklch(55% .142 286);--tag-food:oklch(71% .128 66);--tag-health:oklch(64% .118 156);--tag-other:oklch(62% .115 26)}[data-direction=humanist]{--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-display:"Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;--font-num:"Hanken Grotesk", system-ui, sans-serif;--radius:13px;--radius-lg:18px;--gap:18px;--pad:22px;letter-spacing:-.012em}[data-direction=humanist][data-theme=light]{--bg:oklch(98.4% .006 78);--surface:oklch(99.9% .0015 78);--surface-2:oklch(96.6% .006 78);--surface-3:oklch(94% .008 76);--border:oklch(91.2% .006 76);--border-strong:oklch(84% .009 74);--text:oklch(23.5% .014 66);--text-dim:oklch(47% .014 66);--text-faint:oklch(52% .014 66);--accent-l:.52;--accent-c:.158;--accent-h:262;--accent:oklch(var(--accent-l) var(--accent-c) var(--accent-h));--accent-strong:oklch(calc(var(--accent-l) - .06) var(--accent-c) var(--accent-h));--accent-bg:color-mix(in oklab, var(--accent) 9%, var(--surface));--pos:oklch(53% .13 152);--neg:oklch(55% .185 28);--pos-bg:color-mix(in oklab, var(--pos) 11%, var(--surface));--neg-bg:color-mix(in oklab, var(--neg) 10%, var(--surface));--accent-border:color-mix(in oklab, var(--accent) 26%, var(--border));--pos-border:color-mix(in oklab, var(--pos) 38%, var(--border));--neg-border:color-mix(in oklab, var(--neg) 38%, var(--border));--warn-border:color-mix(in oklab, var(--warn) 34%, var(--border));--on-accent:#fff;--on-neg:#fff;--warn:oklch(66% .13 72);--warn-bg:color-mix(in oklab, var(--warn) 11%, var(--surface));--warn-text:oklch(51% .12 72);--ink-shadow:38 34 28;--shadow-1:0 1px 2px rgb(var(--ink-shadow) / .045), 0 2px 5px rgb(var(--ink-shadow) / .05);--shadow-2:0 4px 16px rgb(var(--ink-shadow) / .09), 0 22px 56px rgb(var(--ink-shadow) / .11);--glow:0 1px 0 #ffffffa6 inset;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-direction=humanist][data-theme=dark]{--bg:oklch(18% .012 264);--surface:oklch(22.4% .014 264);--surface-2:oklch(26.2% .015 264);--surface-3:oklch(30.5% .016 264);--border:oklch(32% .015 264);--border-strong:oklch(43% .017 264);--text:oklch(95.5% .006 264);--text-dim:oklch(72% .013 264);--text-faint:oklch(66% .014 264);--accent-l:.72;--accent-c:.135;--accent-h:262;--accent:oklch(var(--accent-l) var(--accent-c) var(--accent-h));--accent-strong:oklch(calc(var(--accent-l) + .06) var(--accent-c) var(--accent-h));--accent-bg:color-mix(in oklab, var(--accent) 20%, var(--surface));--pos:oklch(78% .15 154);--neg:oklch(73% .17 28);--pos-bg:color-mix(in oklab, var(--pos) 16%, var(--surface));--neg-bg:color-mix(in oklab, var(--neg) 16%, var(--surface));--accent-border:color-mix(in oklab, var(--accent) 26%, var(--border));--pos-border:color-mix(in oklab, var(--pos) 38%, var(--border));--neg-border:color-mix(in oklab, var(--neg) 38%, var(--border));--warn-border:color-mix(in oklab, var(--warn) 34%, var(--border));--on-accent:oklch(18% .02 264);--on-neg:oklch(18% .03 27);--warn:oklch(80% .11 75);--warn-bg:color-mix(in oklab, var(--warn) 16%, var(--surface));--warn-text:oklch(82% .1 75);--shadow-1:0 1px 2px #00000040, 0 2px 6px #00000038;--shadow-2:0 6px 20px #00000057, 0 28px 64px #0006;--glow:0 1px 0 #ffffff0a inset;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tag-house:oklch(70% .11 218);--tag-car:oklch(68% .14 286);--tag-food:oklch(78% .13 66);--tag-health:oklch(74% .13 156);--tag-other:oklch(72% .13 26)}.num,.money{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1, "lnum" 1, "ss01" 0;letter-spacing:-.018em}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:600;line-height:1.05}.serif{font-family:var(--font-serif);letter-spacing:0;font-weight:400}.kicker{font-family:var(--font-display);letter-spacing:-.012em;color:var(--text-faint);font-style:normal;font-weight:500;line-height:1.12}.brand-name{font-family:var(--font-display)}.eyebrow{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);white-space:nowrap;font-weight:700}a{color:inherit}.app{grid-template-columns:256px 1fr;height:100dvh;display:grid;overflow:hidden}.sidebar{background:var(--surface);border-right:var(--hair) solid var(--border);padding:20px 14px;padding-bottom:calc(20px + env(safe-area-inset-bottom));flex-direction:column;gap:3px;display:flex;overflow-y:auto}.brand{align-items:center;gap:11px;padding:4px 8px 18px;display:flex}.brand-mark{background:var(--accent);width:36px;height:36px;color:var(--on-accent);font-family:var(--font-display);box-shadow:var(--shadow-1), 0 1px 0 #ffffff38 inset, 0 0 0 1px color-mix(in oklab, var(--accent) 45%, transparent) inset;border-radius:12px;flex:none;place-items:center;font-size:19px;font-style:normal;font-weight:700;display:grid}[data-theme=dark] .brand-mark{box-shadow:var(--shadow-1), 0 1px 0 #ffffff0a inset, 0 0 0 1px color-mix(in oklab, var(--accent) 45%, transparent) inset}.brand-name{letter-spacing:-.035em;font-size:20px;font-style:normal;font-weight:700;line-height:1}.brand-sub{color:var(--text-faint);margin-top:3px;font-size:11px;font-weight:500}.nav-group-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:16px 9px 6px;font-weight:700}.nav-item{border-radius:var(--r-ctl);color:var(--text-dim);font-size:var(--fs-md);cursor:pointer;text-align:left;width:100%;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;align-items:center;gap:11px;padding:9px 10px;font-weight:550;display:flex;position:relative}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item[aria-current=true],.nav-item[aria-current=page]{background:var(--accent-bg);color:var(--accent-strong);font-weight:650}.nav-item[aria-current=true]:before,.nav-item[aria-current=page]:before{content:"";background:var(--accent);border-radius:3px;width:3px;height:18px;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.nav-item .ico{opacity:.9;flex:none}.main{scroll-behavior:smooth;position:relative;overflow-y:auto}.topbar{z-index:30;background:color-mix(in oklab, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:var(--hair) solid var(--border);align-items:center;gap:14px;padding:13px 28px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.025em;font-size:18px;font-weight:650}.topbar .spacer{flex:1}.topbar .btn,.topbar .icon-btn{flex:none}.content{max-width:1240px;margin:0 auto;padding:28px}.btn{font:inherit;border-radius:var(--r-ctl);border:var(--hair) solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;transition:transform var(--t-fast) var(--ease-out), background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);box-shadow:var(--shadow-1);align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:650;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)scale(.985)}[data-theme=dark] .btn{border-color:var(--border-strong)}[data-theme=dark] .btn.ghost,[data-theme=dark] .btn.primary,[data-theme=dark] .btn.danger{border-color:#0000}.btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-1), 0 1px 0 #ffffff2e inset;border-color:#0000}.btn.primary:hover{background:var(--accent-strong);filter:none;border-color:#0000}.btn.ghost{color:var(--text-dim);box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.sm{border-radius:var(--r-ctl-sm);padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border-radius:var(--r-ctl);border:var(--hair) solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-dim);cursor:pointer;transition:transform var(--t-fast), color var(--t-fast), border-color var(--t-fast), background var(--t-fast);box-shadow:var(--shadow-1);flex:none;place-items:center;display:grid}.icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.seg{background:var(--surface-2);border:var(--hair) solid var(--border);box-shadow:var(--glow);border-radius:11px;gap:2px;padding:3px;display:inline-flex}.seg button{font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--text-dim);border-radius:var(--r-ctl-sm);transition:background var(--t-fast) var(--ease-out), color var(--t-fast);background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px;font-weight:650;display:inline-flex;position:relative}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-1)}[data-theme=dark] .seg button[aria-pressed=true]{background:var(--surface-3)}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-sm);color:var(--text-dim);align-items:center;gap:9px;font-weight:600;display:inline-flex}.switch .track{background:var(--border-strong);width:38px;height:22px;transition:background var(--t-med) var(--ease-out);border-radius:20px;flex:none;position:relative}.switch .knob{width:18px;height:18px;transition:transform var(--t-med) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.switch[aria-checked=true] .track{background:var(--accent)}.switch[aria-checked=true] .knob{transform:translate(16px)}.card{background:var(--surface);border:var(--hair) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1), var(--glow)}.card-h{padding:14px var(--pad);border-bottom:var(--hair) solid var(--border);align-items:center;gap:10px;display:flex}.card-h h3{font-size:14px;font-weight:650}.card-h .eyebrow{margin:0}.card-b{padding:var(--pad)}.sign{align-items:center;gap:5px;display:inline-flex}.amt-pos{color:var(--pos)}.amt-neg{color:var(--neg)}.amt-neu{color:var(--text-dim)}.tagchip{border-radius:var(--r-pill);border:var(--hair) solid color-mix(in oklab, var(--tg) 30%, var(--border));background:color-mix(in oklab, var(--tg) 10%, var(--surface));color:oklch(from var(--tg) .4 min(c, .11) h);white-space:nowrap;transition:background var(--t-fast);align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:12px;font-weight:600;display:inline-flex}[data-theme=dark] .tagchip{background:color-mix(in oklab, var(--tg) 20%, var(--surface));color:oklch(from var(--tg) .82 min(c, .1) h)}.tagdot{background:var(--tg);border-radius:50%;flex:none;width:8px;height:8px}.tag-path{color:var(--text-faint)}.status{border-radius:var(--r-pill);border:var(--hair) solid var(--border);background:var(--surface-2);color:var(--text-dim);align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:650;display:inline-flex}.status.pending{color:var(--warn-text);border-color:var(--warn-border);background:var(--warn-bg)}.status.ok{color:var(--pos);border-color:color-mix(in oklab, var(--pos) 38%, var(--border));background:var(--pos-bg)}.status.dim{color:var(--text-faint)}.ext-mark{font-size:var(--fs-2xs);color:var(--text-faint);border:1px dashed var(--border-strong);border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:5px;padding:1px 9px;font-weight:650;display:inline-flex}table.ledger{border-collapse:collapse;width:100%;font-size:13px}table.ledger th{text-align:left;color:var(--text-faint);font-weight:700;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;padding:10px var(--pad);border-bottom:var(--hair) solid var(--border);white-space:nowrap}table.ledger td{padding:11px var(--pad);border-bottom:var(--hair) solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums lining-nums}table.ledger tr:last-child td{border-bottom:none}table.ledger tr.click{cursor:pointer;transition:background var(--t-fast)}table.ledger tr.click:hover td{background:var(--surface-2)}.ralign,table.ledger th.ralign,table.ledger td.ralign{text-align:right}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.tiny{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.divider{height:var(--hair);background:var(--border);border:none;margin:0}.kbd{font-family:var(--font-mono);font-size:var(--fs-2xs);border:var(--hair) solid var(--border);color:var(--text-faint);border-bottom-width:2px;border-radius:5px;padding:1px 5px}.spacer{flex:1}.resp-split{gap:var(--gap);grid-template-columns:2fr 1fr;display:grid}.resp-stats{gap:var(--gap);grid-template-columns:repeat(4,1fr);display:grid}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.inp,.sel,textarea.inp{font:inherit;font-size:var(--fs-md);color:var(--text);background:var(--surface);border:var(--hair) solid var(--border);border-radius:var(--r-ctl);width:100%;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:9px 12px}.inp:focus,.sel:focus,textarea.inp:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg);outline:none}.inp::placeholder{color:var(--text-faint)}.sel{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 16px) 52%,calc(100% - 11px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}.amount-inp{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums;font-weight:700}.field-label{font-size:var(--fs-2xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.callout{border-radius:var(--radius);font-size:var(--fs-sm);padding:12px 15px;line-height:1.5}.callout.info{background:var(--accent-bg);border:var(--hair) solid color-mix(in oklab, var(--accent) 26%, var(--border));color:color-mix(in oklab, var(--accent) 58%, var(--text))}.callout.warn{background:var(--warn-bg);border:var(--hair) solid var(--warn-border);color:var(--warn-text)}.callout.neg{background:var(--neg-bg);border:var(--hair) solid color-mix(in oklab, var(--neg) 32%, var(--border));color:color-mix(in oklab, var(--neg) 68%, var(--text))}.effect-row{border-bottom:var(--hair) dashed var(--border);font-size:var(--fs-sm);align-items:flex-start;gap:10px;padding:9px 0;line-height:1.45;display:flex}.effect-row:last-child{border-bottom:none}.effect-ico{border-radius:var(--radius);background:var(--surface-2);width:22px;height:22px;color:var(--accent);flex:none;place-items:center;display:grid}.tx-row{text-align:left;width:100%;font:inherit;cursor:pointer;border-radius:var(--radius);transition:background var(--t-fast), transform var(--t-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.tx-row:hover{background:var(--surface-3)}.tx-row:active{transform:scale(.992)}.tx-ico{width:42px;height:42px;box-shadow:var(--glow);border-radius:13px;flex:none;place-items:center;display:grid}.avatar{width:34px;height:34px;color:var(--on-accent);letter-spacing:-.01em;border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.avatar.lg{width:42px;height:42px;font-size:15px}.avatar.dashed{color:var(--text-faint);border:1.5px dashed var(--border-strong);background:var(--surface-2)!important}.split-row{border-radius:var(--radius);border:1px solid var(--border);transition:border-color var(--t-fast), background var(--t-fast);align-items:center;gap:12px;padding:12px;display:flex}.split-row.on{border-color:color-mix(in oklab, var(--accent) 32%, var(--border));background:var(--accent-bg)}.split-row.off{opacity:.55}.share-step{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;display:inline-flex;overflow:hidden}.share-step button{cursor:pointer;width:30px;height:30px;color:var(--text-dim);font:inherit;background:0 0;border:none;place-items:center;font-size:16px;display:grid}.share-step button:hover{background:var(--surface-2);color:var(--text)}.share-step span{text-align:center;min-width:30px;font-family:var(--font-num);font-size:14px;font-weight:700}.meter{border-radius:var(--r-pill);background:var(--surface-3);height:8px;overflow:hidden}.meter>span{border-radius:var(--r-pill);height:100%;transition:width var(--t-slow) var(--ease-out);display:block}.tag-row{border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), opacity var(--t-fast);align-items:center;gap:11px;padding:11px 13px;display:flex;position:relative}.tag-row.interactive:hover{background:var(--surface-3)}.tag-grip{color:var(--text-faint);cursor:grab;opacity:.6;flex:none;display:inline-flex}.tag-grip:active{cursor:grabbing}.tag-row:hover .tag-grip{opacity:1}.tag-elbow{border-left:1.5px solid var(--border-strong);border-bottom:1.5px solid var(--border-strong);border-bottom-left-radius:4px;flex:none;align-self:flex-start;width:10px;height:10px;margin-top:4px;margin-left:-6px}.tag-rootzone{border-radius:var(--radius);border:1.5px dashed var(--border);transition:all var(--t-fast);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;padding:10px;font-size:12px;font-weight:650;display:flex}.audit-pill{font-family:var(--font-num);white-space:nowrap;border-radius:6px;padding:1px 8px;font-size:11px;font-weight:600}.audit-pill.old{background:var(--surface-2);color:var(--text-faint);border:1px solid var(--border);text-decoration:line-through}.audit-pill.new{background:var(--accent-bg);color:color-mix(in oklab, var(--accent) 60%, var(--text));border:1px solid color-mix(in oklab, var(--accent) 28%, var(--border))}.modal-overlay{z-index:100;background:color-mix(in oklab, var(--bg) 38%, transparent);-webkit-backdrop-filter:blur(8px)saturate(1.15);animation:modal-ov var(--t-fast) ease;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:440px;box-shadow:var(--shadow-2);max-height:calc(100dvh - 48px);animation:modal-pop var(--t-med) cubic-bezier(.2,.9,.3,1);flex-direction:column;display:flex}.modal.wide{max-width:580px}.modal-h{padding:18px var(--pad);border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;display:flex}.modal-ico{background:var(--accent-bg);width:38px;height:38px;color:var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}.modal-ico.danger{background:color-mix(in oklab, var(--neg) 13%, var(--surface));color:var(--neg)}.modal-b{padding:var(--pad);overscroll-behavior:contain;overflow-y:auto}.modal-f{padding:14px var(--pad);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;align-items:center;gap:10px;display:flex}@keyframes modal-ov{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise{animation:none}@media (prefers-reduced-motion:no-preference){.stagger>*{animation:rise var(--t-slow) var(--ease-out) both}.stagger>:nth-child(2){animation-delay:45ms}.stagger>:nth-child(3){animation-delay:90ms}.stagger>:nth-child(4){animation-delay:.135s}.stagger>:nth-child(n+5){animation-delay:.18s}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.menu-btn,.nav-backdrop{display:none}@media (width<=920px){.app{grid-template-columns:1fr}.sidebar{width:260px;transition:transform var(--t-med) var(--ease-out);z-index:60;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app.nav-open .sidebar{box-shadow:var(--shadow-2);transform:none}.content{padding:20px}.menu-btn{display:inline-flex}.app.nav-open .nav-backdrop{background:color-mix(in oklab, var(--bg) 38%, transparent);-webkit-backdrop-filter:blur(8px)saturate(1.15);z-index:55;animation:modal-ov var(--t-fast) ease;display:block;position:fixed;inset:0}}@media (width<=760px){.resp-split{grid-template-columns:1fr!important}.resp-stats{grid-template-columns:repeat(2,1fr)!important}.content{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.topbar{gap:10px;padding:11px 16px}.topbar h1{font-size:16px}}@media (width<=480px){.content{padding:13px}.topbar{gap:8px;padding:10px 13px}.add-label{display:none}.topbar .btn.primary{padding:9px 11px}}@media (pointer:coarse){.btn.sm{min-height:40px;padding:9px 12px}.icon-btn{width:44px;height:44px}}.empty{text-align:center;flex-direction:column;align-items:center;padding:52px 28px;display:flex}.empty-ico{border-radius:var(--radius-lg);background:var(--surface-2);width:52px;height:52px;color:var(--text-faint);box-shadow:var(--glow);place-items:center;margin-bottom:15px;display:grid}.empty-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 6px;font-size:17px;font-weight:700}.empty-sub{color:var(--text-dim);font-size:var(--fs-sm);max-width:40ch;margin:0;line-height:1.55}.empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.skeleton{background:var(--surface-2);border-radius:var(--radius)}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite pulse}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn.danger{background:var(--neg);color:var(--on-neg);box-shadow:var(--shadow-1), 0 1px 0 #ffffff29 inset;border-color:#0000}.btn.danger:hover{background:color-mix(in oklab, var(--neg) 88%, #000);border-color:#0000}.icon-btn.danger{color:var(--neg)}.icon-btn.danger:hover{color:var(--neg);border-color:color-mix(in oklab, var(--neg) 42%, var(--border));background:var(--neg-bg)}button.tagchip{cursor:pointer;font-family:inherit}button.tagchip:hover{border-color:color-mix(in oklab, var(--tg) 45%, var(--border));background:color-mix(in oklab, var(--tg) 16%, var(--surface))}button.tagchip[aria-pressed=true]{border-color:var(--tg);background:color-mix(in oklab, var(--tg) 18%, var(--surface));color:oklch(from var(--tg) .4 min(c, .11) h);box-shadow:0 0 0 1px color-mix(in oklab, var(--tg) 32%, transparent) inset}button.tagchip:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] button.tagchip:hover{background:color-mix(in oklab, var(--tg) 26%, var(--surface))}[data-theme=dark] button.tagchip[aria-pressed=true]{background:color-mix(in oklab, var(--tg) 30%, var(--surface));color:oklch(from var(--tg) .82 min(c, .1) h)}::-webkit-calendar-picker-indicator{opacity:.65}.field-err{color:var(--neg);align-items:flex-start;gap:6px;margin:6px 0 0;font-size:12px;line-height:1.45;display:flex}.inp[aria-invalid=true],.sel[aria-invalid=true]{border-color:color-mix(in oklab, var(--neg) 55%, var(--border))}.inp[aria-invalid=true]:focus{box-shadow:0 0 0 4px var(--neg-bg)}.stat-figure{font-family:var(--font-display);font-size:var(--fs-stat);letter-spacing:-.025em;font-variant-numeric:tabular-nums lining-nums;font-weight:700;line-height:1.1}.stat-figure.sm{font-size:var(--fs-stat-sm)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--gap);margin-bottom:var(--sp-5);display:flex}.page-head-text{min-width:0}.page-kicker{font-family:var(--font-serif);letter-spacing:0;color:var(--text-dim);margin:0;font-size:15px;font-style:italic;line-height:1.2}.page-title{font-size:var(--fs-title);letter-spacing:-.025em;margin:2px 0 0;font-weight:700}.page-head-actions{flex:none;align-items:center;gap:10px;display:flex}.page-back{font-size:var(--fs-sm);color:var(--text-dim);align-items:center;gap:5px;margin-bottom:8px;font-weight:650;text-decoration:none;display:inline-flex}.page-back:hover{color:var(--text)}.page-narrow{max-width:840px;margin-inline:auto}.form-col{max-width:640px;margin-inline:auto}.stats-row{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}@media (width<=620px){.stats-row{grid-template-columns:1fr 1fr}}.stat-tile{padding:var(--sp-4) 18px;flex-direction:column;gap:6px;display:flex;position:relative}.stat-tile .stat-sub{font-size:var(--fs-xs);color:var(--text-dim)}.stat-tile .stat-action{position:absolute;top:10px;right:10px}.skel-stats{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.skel-stats .skeleton{height:84px}.skel-rows{flex-direction:column;gap:10px;display:flex}.skel-rows .skeleton{height:56px}.skel-chart{align-items:center;gap:var(--gap);flex-wrap:wrap;display:flex}.skel-chart .skel-circle{border-radius:50%;flex:none;width:320px;max-width:100%;height:320px}.skel-chart .skel-legend{flex-direction:column;flex:1;gap:10px;min-width:140px;display:flex}.skel-chart .skel-legend .skeleton{height:14px}.skel-form{gap:var(--sp-4);flex-direction:column;display:flex}.skel-form .skeleton{height:40px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar .cluster{flex:none;align-items:center;gap:10px;display:flex}.period-label{text-align:center;min-width:120px;font-size:var(--fs-md);font-weight:650}.tagchip{max-width:100%}.tagchip .t-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.tagchip.pick{font-size:var(--fs-sm);background:var(--surface);border-color:var(--border);color:var(--text-dim);padding:5px 12px 5px 9px}.tagchip.pick[aria-pressed=true]{background:color-mix(in oklab, var(--tg) 14%, var(--surface));border-color:var(--tg);box-shadow:inset 0 0 0 1px var(--tg);color:oklch(from var(--tg) .4 min(c, .11) h)}[data-theme=dark] .tagchip.pick[aria-pressed=true]{background:color-mix(in oklab, var(--tg) 24%, var(--surface));color:oklch(from var(--tg) .82 min(c, .1) h)}.tag-group{flex-wrap:wrap;align-items:center;gap:8px;padding:7px 0;display:flex}.tag-group+.tag-group{border-top:var(--hair) solid var(--border)}.modal-h{align-items:center}html.modal-open .main{overflow:hidden}.modal-overlay.closing{animation:.16s forwards modal-ov-out}.modal-overlay.closing .modal{animation:modal-pop-out .16s var(--ease-exit) forwards}@keyframes modal-ov-out{to{opacity:0}}@keyframes modal-pop-out{to{opacity:0;transform:translateY(8px)scale(.98)}}.topbar-brand{align-items:center;gap:9px;display:none}@media (width<=920px){.topbar-brand{display:inline-flex}}.sidebar-foot{border-top:var(--hair) solid var(--border);align-items:center;gap:10px;margin-top:auto;padding:12px 8px 4px;display:flex}.sidebar-foot .avatar{background:var(--accent-bg);width:28px;height:28px;color:var(--accent);font-size:11px}.sidebar-foot .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-sm);color:var(--text-dim);flex:1;font-weight:550;overflow:hidden}.icon-btn.ghost{box-shadow:none;background:0 0;border-color:#0000}@media (width<=920px){.sidebar{visibility:hidden;transition:transform var(--t-med) var(--ease-out), visibility 0s var(--t-med)}.app.nav-open .sidebar{visibility:visible;transition:transform var(--t-med) var(--ease-out), visibility 0s}}.nav-item[aria-current=true]:before,.nav-item[aria-current=page]:before{left:-8px}.form-sec{padding:var(--pad)}.form-sec+.form-sec{border-top:var(--hair) solid var(--border)}.form-foot{z-index:5;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--bg) 38%);justify-content:flex-end;gap:10px;display:flex;position:sticky;bottom:0}@media (width<=760px){.form-foot{grid-template-columns:1fr 1fr;display:grid}.form-foot .btn{justify-content:center;width:100%}}.amount-wrap{position:relative}.amount-wrap:after{content:"€";color:var(--text-faint);font-weight:650;position:absolute;top:50%;right:14px;transform:translateY(-50%)}textarea.inp{resize:none;min-height:72px}.table-scroll{scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-scroll.faded{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000)}.filters-grid{gap:var(--gap);grid-template-columns:140px minmax(180px,240px) 170px 170px 1fr;align-items:end;display:grid}@media (width<=760px){.filters-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.filters-grid{grid-template-columns:1fr}}.tx-del{opacity:0;transition:opacity var(--t-fast)}.tx-row:hover .tx-del,.tx-row:focus-within .tx-del{opacity:1}@media (pointer:coarse){.tx-del{opacity:1}}.tx-net-gutter{padding-right:calc(36px + var(--sp-3))}@media (pointer:coarse){.tx-net-gutter{padding-right:calc(44px + var(--sp-3))}}.acct-rows{display:none}@media (width<=760px){.acct-table{display:none}.acct-rows{flex-direction:column;display:flex}.acct-row{padding:12px var(--pad);border-bottom:var(--hair) solid var(--border);align-items:center;gap:12px;display:flex}.acct-row:last-child{border-bottom:none}.acct-row-icon{border-radius:var(--radius);background:var(--accent-bg);width:42px;height:42px;color:var(--accent);flex:none;place-items:center;display:grid}.acct-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.acct-row-name{align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:650;display:flex}.acct-row-name .acct-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.acct-row-name .status,.acct-row-name .ext-mark{flex:none}.acct-row-type{font-size:var(--fs-xs);color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.acct-row-type .status,.acct-row-type .ext-mark{flex:none}.acct-row-balance{text-align:right;flex:none}.acct-row-actions{flex:none;gap:6px;display:flex}.acct-row-actions .icon-btn{width:44px;height:44px}}.legend{grid-template-columns:minmax(0,1fr) 48px auto;column-gap:14px;width:100%;max-width:380px;display:grid}.card-link{color:inherit;transition:box-shadow var(--t-fast), border-color var(--t-fast), transform var(--t-fast);text-decoration:none;display:block}.card-link:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong)}.card-link:active{transform:scale(.995)}.budget-stripe{position:relative}.budget-stripe:before{content:"";background:var(--tg);border-radius:2px;width:3px;position:absolute;top:14px;bottom:14px;left:0}.pub{background:var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-ui);flex-direction:column;display:flex;overflow:clip}[data-theme=dark] .pub{background:linear-gradient(180deg, color-mix(in oklab, var(--accent) 5%, var(--bg)), var(--bg) 55%)}.pub-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1140px;margin:0 auto;padding:22px 32px;display:flex}.pub-brand{color:var(--text);align-items:center;gap:11px;text-decoration:none;display:inline-flex}.pub-brand .brand-mark{border-radius:11px;width:34px;height:34px;font-size:17px}.pub-brand-name{font-family:var(--font-display);letter-spacing:-.035em;font-size:19px;font-weight:700;line-height:1}.pub-nav{align-items:center;gap:8px;display:inline-flex}.btn.lg{border-radius:12px;padding:12px 22px;font-size:15px}.lp-main{flex-direction:column;flex:1;align-items:flex-start;width:100%;max-width:1140px;margin:0 auto;padding:clamp(36px,8vh,96px) 32px 56px;display:flex}.lp-hero{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:center;gap:clamp(32px,5vw,72px);width:100%;display:grid}.lp-eyebrow{margin-bottom:26px}.lp-headline{font-family:var(--font-display);letter-spacing:-.046em;max-width:15ch;margin:0;font-size:clamp(2.85rem,8.6vw,6.1rem);font-weight:800;line-height:.95}.lp-headline .line{display:block}.lp-headline .ser{font-family:var(--font-serif);letter-spacing:-.005em;color:var(--accent);font-style:italic;font-weight:400}.lp-sub{max-width:52ch;color:var(--text-dim);margin:30px 0 0;font-size:clamp(1rem,1.55vw,1.2rem);line-height:1.6}.lp-cta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;display:flex}.lp-vignette{pointer-events:none;-webkit-user-select:none;user-select:none;min-height:380px;position:relative}.lp-vig-back{width:78%;box-shadow:var(--shadow-1);padding:16px 18px;position:absolute;top:0;left:0;transform:rotate(-2deg)translate(-14px,-18px)}.lp-vig-figure{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;font-weight:700}.lp-vig-main{box-shadow:var(--shadow-2);max-width:460px;margin-top:104px;margin-left:auto;position:relative}.lp-vig-total{font-size:15px;font-weight:700}.lp-vignette .tx-row{cursor:default;align-items:flex-start;padding:8px 0}.lp-vig-ico{background:var(--surface-2);width:34px;height:34px;color:var(--neg);border-radius:11px;flex:none;place-items:center;font-size:15px;line-height:1;display:grid}.lp-vig-desc{font-size:14px;font-weight:650;line-height:1.15}.lp-vignette .divider{margin:8px 0 12px}.lp-vig-budget{flex-direction:column;gap:7px;display:flex}@media (width<=900px){.lp-hero{grid-template-columns:1fr}.lp-vignette{min-height:0}.lp-vig-back{display:none}.lp-vig-main{max-width:420px;margin:40px auto 0;position:static;transform:none}}.lp-feats{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);width:100%;margin-top:clamp(44px,8vh,88px);display:grid}.lp-feat{border-right:1px solid var(--border);flex-direction:column;gap:9px;padding:26px 30px;display:flex}.lp-feat:first-child{padding-left:0}.lp-feat:last-child{border-right:none;padding-right:0}.lp-feat-idx{font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.lp-feat-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:17px;font-weight:700}.lp-feat-desc{color:var(--text-dim);max-width:32ch;margin:0;font-size:13.5px;line-height:1.55}.pub-footer{width:100%;max-width:1140px;color:var(--text-faint);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:22px 32px;font-size:12.5px;display:flex}.pub-footer .dotsep{opacity:.5}.auth{grid-template-columns:1.04fr 1fr;min-height:100svh;display:grid}.auth-aside{background:color-mix(in oklab, var(--accent) 4%, var(--surface));border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;gap:40px;padding:44px 52px;display:flex}.auth-statement{font-family:var(--font-display);letter-spacing:-.042em;max-width:15ch;margin:0;font-size:clamp(2rem,3.2vw,2.9rem);font-weight:800;line-height:1}.auth-statement .ser{font-family:var(--font-serif);color:var(--accent);letter-spacing:-.005em;font-style:italic;font-weight:400}.auth-statement-sub{max-width:40ch;color:var(--text-dim);margin:22px 0 0;font-size:15px;line-height:1.6}.auth-points{flex-direction:column;gap:13px;margin:26px 0 0;padding:0;list-style:none;display:flex}.auth-point{color:var(--text-dim);align-items:flex-start;gap:11px;font-size:13.5px;line-height:1.45;display:flex}.auth-point .tick{background:var(--accent-bg);width:22px;height:22px;color:var(--accent);border-radius:7px;flex:none;place-items:center;margin-top:-1px;display:grid}.auth-aside-foot{color:var(--text-faint);font-size:12px}.auth-panel{background:var(--bg);justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-form-wrap{width:100%;max-width:400px}.auth-mobile-brand{display:none}.auth-head{text-align:center;margin-bottom:26px}.auth-title{font-family:var(--font-display);letter-spacing:-.028em;color:var(--text);margin:0;font-size:26px;font-weight:800}.auth-subtitle{color:var(--text-dim);margin:7px 0 0;font-size:13.5px}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-alt{text-align:center;color:var(--text-dim);margin:18px 0 0;font-size:13px}.auth-alt a{color:var(--accent);font-weight:650;text-decoration:none}.auth-alt a:hover{text-decoration:underline}@media (width<=900px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-mobile-brand{width:100%;color:var(--text);justify-content:center;align-items:center;gap:10px;margin-bottom:20px;text-decoration:none;display:inline-flex}}.auth-panel{align-items:flex-start;padding-top:clamp(48px,16vh,160px)}.btn.lg{min-height:46px}@media (width<=720px){.pub-header{padding:18px 20px}.lp-main{padding:28px 20px 44px}.lp-feats{grid-template-columns:1fr}.lp-feat{border-right:none;border-bottom:1px solid var(--border);padding:22px 0 18px}.lp-feat:last-child{border-bottom:none}.pub-footer{text-align:center;flex-direction:column;gap:6px;padding:20px}}@media (width<=480px){.pub-header{gap:10px;padding:16px}.pub-brand-name{display:none}.pub-nav{gap:6px}.pub-header .btn.lg{padding:9px 13px;font-size:13px}}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;animation:.72s cubic-bezier(.2,.8,.2,1) forwards pub-rise;transform:translateY(15px)}.reveal.d0{animation-delay:0s}.reveal.d1{animation-delay:60ms}.reveal.d2{animation-delay:.13s}.reveal.d3{animation-delay:.21s}.reveal.d4{animation-delay:.3s}.reveal.d5{animation-delay:.4s}.reveal.d6{animation-delay:.5s}.reveal.d7{animation-delay:.6s}}@keyframes pub-rise{to{opacity:1;transform:none}}.tour-root{z-index:120;position:fixed;inset:0}.tour-scrim{background:color-mix(in oklab, var(--bg) 38%, transparent);-webkit-backdrop-filter:blur(8px)saturate(1.15);animation:.16s modal-ov;position:fixed}.tour-cutout{border-radius:var(--radius);box-shadow:0 0 0 2px var(--accent), 0 0 0 6px var(--accent-bg);pointer-events:none;animation:.16s modal-ov;position:fixed}.tour-block{background:0 0;position:fixed}.tour-card{width:100%;max-width:360px;box-shadow:var(--shadow-2);animation:.2s cubic-bezier(.2,.9,.3,1) modal-pop;position:fixed}.tour-card-h{padding:16px var(--pad) 6px;align-items:flex-start;gap:12px;display:flex}.tour-card-h .modal-ico{flex:none}.tour-card-b{padding:4px var(--pad) 14px}.tour-card-b p{color:var(--text-dim);margin:0;font-size:13.5px;line-height:1.55}.tour-card-f{padding:12px var(--pad) 14px;border-top:var(--hair) solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);align-items:center;gap:10px;display:flex}.tour-card-f .tour-f-spacer{flex:1}.tour-progress{color:var(--text-faint);align-items:center;gap:8px;font-size:11.5px;font-weight:600;display:flex}.tour-dots{gap:5px;display:flex}.tour-dot{background:var(--border-strong);border-radius:50%;width:6px;height:6px;transition:background .15s,transform .15s}.tour-dot.on{background:var(--accent);transform:scale(1.15)}.tour-arrow{background:var(--surface);border:var(--hair) solid var(--border);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.tour-arrow.top{border-top:none;border-left:none;margin-left:-6px;bottom:-7px;left:50%}.tour-arrow.bottom{border-bottom:none;border-right:none;margin-left:-6px;top:-7px;left:50%}.tour-arrow.left{border-bottom:none;border-left:none;margin-top:-6px;top:50%;right:-7px}.tour-arrow.right{border-top:none;border-right:none;margin-top:-6px;top:50%;left:-7px}.tour-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.tour-scrim,.tour-cutout,.tour-card{animation:none!important}}#root{min-height:100svh}.block{display:block}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.top{align-items:flex-start}.bottom{align-items:flex-end}.center{text-align:center}.gap-page{gap:var(--gap)}.self-center{align-self:center}.self-start{align-self:flex-start}.clip{overflow:hidden}.rot180{transform:rotate(180deg)}.middle{align-items:center}.justify-end{justify-content:flex-end}.shrink-0{flex-shrink:0}
