:root{--chart-in: #2563eb;--chart-out: #c2410c;--chart-grid: #e3e7ec;--chart-axis: #5b6672;--chart-active: rgba(15, 118, 110, .1)}@media (prefers-color-scheme: dark){:root{--chart-in: #60a5fa;--chart-out: #fb923c;--chart-grid: #2a323b;--chart-axis: #9aa5b1;--chart-active: rgba(45, 212, 191, .14)}}.flow-chart{display:block;width:100%;height:auto;max-height:260px}.fc-in{fill:var(--chart-in)}.fc-hatch-base{fill:var(--chart-out)}.fc-hatch-line{stroke:var(--surface);stroke-width:1.6}.fc-fore{fill:var(--chart-out);fill-opacity:.3;stroke:var(--chart-out);stroke-width:1;stroke-dasharray:3 2}.fc-now{fill:none;stroke:var(--chart-axis);stroke-width:1.2}.fc-label-now{font-weight:700}.fc-grid{stroke:var(--chart-grid);stroke-width:1}.fc-base{stroke:var(--chart-axis);stroke-width:1}.fc-label{fill:var(--chart-axis);font-size:11px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.fc-active{fill:var(--chart-active)}.fc-hit{fill:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.chart-wrap{position:relative}.chart-callout{position:absolute;top:4px;width:9.5rem;padding:6px 8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 8px #0000002e;font-size:.78rem;line-height:1.3;pointer-events:none}.chart-callout dl{display:grid;grid-template-columns:1fr auto;gap:1px 8px;margin:4px 0 0}.chart-callout dt{color:var(--chart-axis)}.chart-callout dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.chart-hint{margin:4px 0 6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.chart-legend{list-style:none;margin:0 0 6px;padding:0;font-size:.85rem}.chart-legend li{display:inline-block;margin-right:16px}.chart-legend .swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.chart-legend .swatch.in{background:var(--chart-in)}.chart-legend .swatch.out{background:repeating-linear-gradient(45deg,var(--chart-out) 0,var(--chart-out) 3px,var(--surface) 3px,var(--surface) 5px);border:1px solid var(--chart-out)}.chart-legend .swatch.fore{background:color-mix(in srgb,var(--chart-out) 35%,var(--surface));border:1px dashed var(--chart-out)}.chart-nav{margin:0 0 6px}.chart-nav button{min-height:44px;min-width:44px;margin-right:8px}.chart-table summary{cursor:pointer;padding:6px 0;min-height:40px}.pie-block{margin-bottom:8px}.pie-wrap{position:relative;max-width:240px;margin:0 auto}.pie-tip{position:absolute;transform:translate(-50%,-120%);max-width:200px;padding:4px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 8px #00000040;font-size:12px;white-space:nowrap;pointer-events:none;z-index:2}.pie{display:block;width:100%;max-width:240px;max-height:240px;margin:0 auto}.pie-slice path,.pie-slice circle{stroke:var(--surface);stroke-width:1.5}.pie-slice.drill{cursor:pointer;outline:none}.pie-slice.drill:hover path,.pie-slice.drill:focus-visible path{opacity:.85}.pie-pct{fill:#fff;font-size:11px;font-weight:700;pointer-events:none;paint-order:stroke;stroke:#00000059;stroke-width:2px}.pie-title{margin:4px 0 8px;text-align:center}.review-tabs{display:flex;flex-wrap:wrap;margin:8px 0}.review-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 12px;margin:0 6px 6px 0;border-radius:999px;font-size:.9rem;min-height:40px}.review-tabs button.on{background:var(--brand);color:var(--brand-text);border-color:var(--brand);font-weight:600}.review-toolbar{margin:4px 0 8px}.review-toolbar select{font-size:16px;margin:4px 0;max-width:100%}.group-title{font-size:.95rem;margin:14px 0 4px}.ignore-panel{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}.ignore-panel legend{font-weight:600;padding:0 6px}.radio{display:block;padding:8px 0 2px;min-height:40px}.radio input{margin-right:8px}.rule-draft{margin:6px 0;padding-left:4px}.warn-text{color:var(--warn-fg);background:var(--warn-bg);padding:4px 8px;border-radius:6px;font-size:.85rem}.undo-bar{display:flex;justify-content:space-between;align-items:center;background:var(--warn-bg);color:var(--warn-fg);padding:8px 12px;border-radius:8px;margin:8px 0}.review .inline{display:inline-flex;align-items:center;gap:4px}.review-summary{display:flex;gap:8px;margin:8px 0}.review-summary>div{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center}.review-summary strong{display:block;font-size:1.3rem}.review-summary span{font-size:.8rem;color:var(--muted)}.place{padding:10px 0;border-bottom:1px solid var(--line)}.place-name{font-size:1rem;margin:0}.cat-chips{display:flex;flex-wrap:wrap;margin:6px 0 2px}.cat-chips button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 12px;margin:0 6px 6px 0;border-radius:999px;font-size:.9rem;min-height:40px}.cat-chips button.on{background:var(--brand);color:var(--brand-text);border-color:var(--brand);font-weight:600}.places select{font-size:16px;max-width:100%}.tx-filters .tx-search{margin-bottom:8px}.tx-filters .review-tabs{margin:0 0 4px}.tx-filters .review-tabs button{padding:6px 10px;min-height:36px;margin-bottom:4px}.tx-monthrow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.tx-monthrow .review-tabs{margin:0}.tx-meta{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.tx-meta p{margin:0}.tx-list{list-style:none;margin:8px 0;padding:0}.tx-day{display:flex;justify-content:space-between;align-items:baseline;gap:8px;color:var(--muted);font-size:.92rem;font-weight:600;padding:16px 0 6px}.tx-day span:first-child{color:var(--text);font-family:var(--f-display);font-size:1.12rem;font-weight:700;text-transform:capitalize}.tx-row{position:relative;border-top:1px solid var(--line);padding:2px 0}.tx-day+.tx-row{border-top:0}.tx-row.check:before{content:"";position:absolute;left:-10px;top:18px;width:6px;height:6px;border-radius:50%;background:var(--out)}.tx-main{display:block;width:100%;min-height:40px;padding:8px 0 0;text-align:left;background:none;border:0;color:var(--text);font:inherit;cursor:pointer}.tx-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.tx-desc{font-weight:600;flex:1;min-width:0;overflow-wrap:anywhere}.tx-amt{white-space:nowrap;font-weight:600}.tx-amt.out{color:var(--text)}.tx-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 0 10px}.tx-catbtn{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:4px 10px;min-height:32px;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:.92rem;max-width:100%;overflow-wrap:anywhere;text-align:left}.tx-catbtn.none{background:var(--warn-bg);color:var(--warn-fg);border-color:transparent;font-weight:600}.tx-chev{flex:none;width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.tx-sheet{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin:0 0 12px;padding:12px}.tx-sheet select{font-size:16px;max-width:100%}.tx-row .edit{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}.import-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 12px}.import-steps li{flex:1;text-align:center;padding:6px 4px;border-radius:999px;border:1px solid var(--line);font-size:.85rem;color:var(--muted)}.import-steps li.now{background:var(--brand);color:var(--brand-text);border-color:var(--brand);font-weight:600}.import-steps li.done{color:var(--text)}.bank-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.bank-cards .bank{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:10px;min-height:56px}.bank-cards .bank span{font-size:.8rem;color:var(--muted)}.bank-cards .bank.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.bank-steps h3{font-size:1rem;margin:8px 0 4px}.bank-steps ol{margin:0 0 6px;padding-left:20px}.tx-filters{position:sticky;top:env(safe-area-inset-top,0px);z-index:3;background:var(--bg);margin:-12px -16px 0;padding:12px 16px 10px;border-bottom:1px solid var(--line)}.tx-filters .review-tabs{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none}.tx-filters .review-tabs button{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border-radius:999px}.tx-filters .review-tabs button.on{background:var(--text);border-color:var(--text);color:var(--bg)}.tab-count{font-size:.85rem;font-weight:600;border-radius:999px;padding:0 6px;background:var(--warn-bg);color:var(--warn-fg)}.tx-filters .review-tabs button.on .tab-count{background:var(--bg);color:var(--text)}.undo{position:fixed;left:50%;transform:translate(-50%);bottom:calc(68px + env(safe-area-inset-bottom));z-index:6;display:flex;align-items:center;gap:12px;background:var(--text);color:var(--bg);border-radius:12px;padding:9px 14px;box-shadow:var(--shadow)}.undo button{background:none;border:0;color:inherit;font:inherit;font-weight:600;text-decoration:underline;padding:4px;min-height:36px;cursor:pointer}.history-filters .field{display:inline-block;width:48%;margin-right:2%;vertical-align:top}.history{list-style:none;margin:0;padding:0}.history>li{border-bottom:1px solid var(--line);padding:10px 0}.history summary{cursor:pointer}.history .when{display:block;font-size:.8rem;color:var(--muted)}.history ul{margin:8px 0 0;padding-left:18px;font-size:.9rem}.history-table{width:100%;border-collapse:collapse;font-size:.85rem}.history-table th,.history-table td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}.login{max-width:420px;margin:0 auto;padding:56px 16px 32px}.login h1{font-family:var(--f-display);font-size:2rem;line-height:1.1;letter-spacing:-.02em;margin:0 0 8px}.login-mark{width:48px;height:48px;border-radius:14px;background:var(--brand);display:grid;place-items:center;margin-bottom:22px}.login-mark svg{width:26px;height:26px;stroke:var(--brand-text);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.login form{display:block}.login input[type=email],.login input[type=password]{font:inherit;font-size:16px;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);width:100%;box-sizing:border-box}.login .btn{width:100%;margin-top:8px}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f3f5f4;--surface: #ffffff;--text: #16201e;--muted: #566360;--line: #dde3e1;--brand: #0b6b62;--brand-text: #ffffff;--brand-soft: #e1f1ee;--focus: #0b6b62;--in: #0b5fa8;--out: #b4470c;--shadow: 0 1px 2px rgba(10, 30, 26, .06), 0 8px 24px -12px rgba(10, 30, 26, .18);--f-display: "Bricolage Grotesque Variable", "Segoe UI", system-ui, sans-serif;--f-body: "Figtree Variable", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--ok-bg: #dcfce7;--ok-fg: #166534;--warn-bg: #fef3c7;--warn-fg: #92400e;--bad-bg: #fee2e2;--bad-fg: #991b1b;--c0: #0072b2;--c1: #e69f00;--c2: #009e73;--c3: #cc79a7;--c4: #56b4e9;--c5: #d55e00;--c6: #7b61c9;--c7: #8a9a2b;--c-nogoal: #be185d;--muted-bar: #9aa5a2;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #0d1312;--surface: #151d1b;--text: #e6efec;--muted: #93a29e;--line: #26312e;--brand: #3fd0bf;--brand-text: #04211d;--brand-soft: #123430;--focus: #3fd0bf;--in: #6db6f0;--out: #f0925c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6);--ok-bg: #12341f;--ok-fg: #86efac;--warn-bg: #3a2e0b;--warn-fg: #fcd34d;--bad-bg: #3d1616;--bad-fg: #fca5a5;--c0: #4aa8e6;--c1: #f0b429;--c2: #2fc79c;--c3: #e29bc2;--c4: #7cc6ef;--c5: #f08a47;--c6: #a592e8;--c7: #b3c24d;--c-nogoal: #f472b6;--muted-bar: #6f7d79}}*{box-sizing:border-box}:root{--fs: 81.25%}:root[data-text=normal]{--fs: 100%}:root[data-text=large]{--fs: 118.75%}html{font-size:var(--fs)}@media (min-width: 700px){html{font-size:calc(var(--fs) * 1.1)}}html,body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.4 var(--f-body);-webkit-text-size-adjust:100%}.app{max-width:560px;margin:0 auto;padding:12px 16px calc(84px + env(safe-area-inset-bottom));padding-top:calc(12px + env(safe-area-inset-top))}h2,h3{font-family:var(--f-display);font-size:1.12rem;font-weight:700;margin:0 0 10px}h2:focus{outline:none}.muted{color:var(--muted)}.block{display:block}.small{font-size:.85rem}.in{color:var(--in)}.out{color:var(--out)}.error{color:var(--bad-fg);background:var(--bad-bg);padding:10px 12px;border-radius:10px}.ok-text{color:var(--ok-fg);margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.kpis .card{margin:0}.kpis .kpi:last-child:nth-child(odd){grid-column:1 / -1}.headline{font-size:1.15rem;font-weight:700;margin:.4rem 0}.kpi .label{display:block;color:var(--muted);font-size:.8rem}.kpi strong{font-size:1.15rem}.btn{display:inline-block;min-height:44px;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;text-align:center;cursor:pointer}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-text);font-weight:600}.btn[disabled]{opacity:.5;cursor:default}.btn.small{min-height:36px;padding:6px 12px}.link{background:none;border:0;color:var(--brand);font:inherit;text-decoration:underline;padding:6px 0;cursor:pointer}.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:12px;background:var(--surface)}.seg button{flex:1;min-height:40px;border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer}.seg button.on{background:var(--brand);color:var(--brand-text);font-weight:600}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.month-nav button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--text);font:inherit;font-size:1.4rem;cursor:pointer}.month-nav button:disabled{opacity:.35;cursor:default}.month-filter.dim .month-nav{opacity:.55}.month-nav .month-label{font-weight:600}.bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line);margin-bottom:10px}.bar i{display:block;height:100%}.legend{list-style:none;margin:0;padding:0}.legend li{display:grid;grid-template-columns:14px 1fr auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.legend li:last-child{border-bottom:0}.dot{width:10px;height:10px;border-radius:5px;display:inline-block}.dot.gray{background:var(--muted-bar)}.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;margin-right:4px}.chip.ok{background:var(--ok-bg);color:var(--ok-fg)}.chip.warn{background:var(--warn-bg);color:var(--warn-fg)}.chip.bad{background:var(--bad-bg);color:var(--bad-fg)}.insights{list-style:none;margin:0;padding:0}.insights li{padding:8px 10px;border-radius:10px;margin-bottom:6px;background:var(--bg)}.insights li.warn{background:var(--warn-bg);color:var(--warn-fg)}.insights li.bad{background:var(--bad-bg);color:var(--bad-fg)}.insights .why{margin:4px 0 0}.insights li .link{color:inherit;padding:2px 0}.banner{display:flex;align-items:center;justify-content:space-between;background:var(--warn-bg);color:var(--warn-fg);border-radius:12px;padding:10px 12px;margin-bottom:12px}.banner span{flex:1;margin-right:10px}.tabbar{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{display:flex;max-width:560px;margin:0 auto}.tabbar button{position:relative;flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer}.tab-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tabbar button.on{color:var(--brand);font-weight:700}.empty{text-align:center;padding:28px 16px}.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.review{list-style:none;margin:0;padding:0}.review .row{display:flex;padding:10px 0;border-bottom:1px solid var(--line)}.review .row.dim{opacity:.6}.review .check{padding:4px 12px 0 0}.review .check input{width:22px;height:22px}.review .main{flex:1;min-width:0}.review .desc{font-weight:600;overflow-wrap:anywhere}.review .meta{color:var(--muted);font-size:.9rem}.review .badges{margin:4px 0}.review .controls select{display:block;width:100%;margin-top:6px}.savebar{position:fixed;left:0;right:0;bottom:calc(57px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);padding:10px 16px}.savebar-inner{display:flex;align-items:center;max-width:560px;margin:0 auto}.savebar-inner .btn.primary{flex:1}input[type=text],input[type=number],select{font:inherit;font-size:16px;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);width:100%}input[readonly]{opacity:.7}.field{display:block;margin-bottom:12px}.field>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.target{padding:10px 0;border-bottom:1px solid var(--line)}.status-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin:8px 0}.status-row p{margin:0}.target-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.list{list-style:none;margin:0;padding:0}.list-row{padding:10px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-main{word-wrap:break-word;overflow-wrap:anywhere}.list .list{margin-left:16px}.actions{margin-top:6px}.actions .btn,.actions .link{margin-right:8px;margin-bottom:4px}.preview{list-style:none;margin:0 0 12px;padding:8px 10px;border-radius:10px;background:var(--bg);font-size:.9rem}.preview li{padding:2px 0}.hint{margin:4px 0 8px}.menu{list-style:none;margin:0;padding:0}.menu li{margin-bottom:8px}.menu button{display:block;width:100%;min-height:56px;padding:10px 14px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.menu button{display:flex;align-items:center;gap:12px}.menu-icon{flex:none;width:24px;height:24px;fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.menu-text{flex:1;min-width:0}.menu button small{display:block;color:var(--muted)}.menu-group{margin:16px 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.menu-search{display:block;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;box-sizing:border-box}.badge{flex:none;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--line);color:var(--text)}.badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.tab-badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:18px;padding:0 5px;border-radius:999px;background:var(--out);color:var(--brand-text);font-size:.7rem;line-height:18px;text-align:center}.tab-dot{position:absolute;top:8px;left:calc(50% + 8px);width:9px;height:9px;border-radius:50%;background:var(--out)}.fold>summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:32px;cursor:pointer;list-style:none}.fold>summary::-webkit-details-marker{display:none}.fold>summary h3{margin:0}.fold>summary:after{content:"";flex:none;width:18px;height:18px;align-self:center;background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;transition:transform .2s}.fold[open]>summary:after{transform:rotate(180deg)}.fold[open]>summary{margin-bottom:10px}.back{display:inline-block;min-height:44px;margin-bottom:4px;background:none;border:0;color:var(--brand);font:inherit;cursor:pointer}.ocr-text{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border-radius:10px;padding:8px 10px;font-size:.85rem}.edit{margin-top:6px}.goal{padding:8px 0 12px;border-bottom:1px solid var(--line)}.goal:last-child{border-bottom:0}.goal-head{margin:0 0 2px}.goal-bar{height:12px;border-radius:6px;overflow:hidden;background:var(--line);margin:6px 0 10px}.goal-bar i{display:block;height:100%;background:var(--c1)}.goal-chart .gc-ideal,.goal-chart .gc-acc{stroke-linejoin:round;stroke-linecap:round}.chart-legend .swatch.goal-acc{background:var(--c0)}.chart-legend .swatch.goal-ideal{background:repeating-linear-gradient(90deg,var(--c2) 0 4px,transparent 4px 7px)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.num,.kpi strong,.hero-saldo,.legend strong,.tx-amt{font-variant-numeric:tabular-nums}.card{border-radius:16px;box-shadow:var(--shadow)}.plain{margin-bottom:26px}.plain>h2{margin-bottom:10px}.plain .legend li:first-child{border-top:0}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;border:0;border-radius:10px;background:var(--line);margin-bottom:8px}.seg button{border-radius:8px;color:var(--muted);min-height:34px}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000001f}.month-nav{border:0;background:transparent;margin-bottom:4px}.month-nav button{border-radius:50%;color:var(--muted)}.month-nav .month-label{font-size:1.12rem}.period-range{text-align:center;margin:0 0 14px}.hero{padding:6px 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.hero-label{color:var(--muted);font-size:.92rem}.hero .hero-saldo{display:block;font-family:var(--f-display);font-weight:700;font-size:2.7rem;line-height:1.05;letter-spacing:-.02em;margin:2px 0 4px}.hero .hero-saldo small{font-size:.5em;font-weight:500;margin-right:.2em;color:var(--muted);letter-spacing:0}.hero .hero-saldo.neg{color:var(--bad-fg)}.hero .headline{font:inherit;color:var(--muted);max-width:36ch;margin:0 0 6px}.hero .chip{margin-bottom:6px}.io{display:flex;gap:22px;margin-top:12px}.io>div{display:flex;flex-direction:column}.io .label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.85rem}.io .label svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.io strong{font-size:1.12rem;font-weight:600}.insights li{background:transparent;border-top:1px solid var(--line);border-radius:0;margin:0;padding:12px 0}.insights li:first-child{border-top:0;padding-top:2px}.insights li.warn,.insights li.bad{background:transparent;color:var(--text)}.goal-bar{height:8px;border-radius:4px}.goal-bar i{border-radius:4px;transition:width .6s ease}.pie-center{fill:var(--text);text-anchor:middle;font-family:var(--f-display);font-weight:700;pointer-events:none}.pie-center-label{fill:var(--muted);text-anchor:middle;pointer-events:none}.pie-hole{fill:var(--bg)}.pie-slice path{transform-origin:100px 100px;animation:pie-in .7s cubic-bezier(.2,.7,.2,1) both}@keyframes pie-in{0%{opacity:0;transform:scale(.92)}}.pie-pct{fill:#fff;stroke:#0000008c}.menu-group{font-family:var(--f-display);font-size:1.12rem;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text);margin:20px 0 4px}.menu li{margin:0}.menu button{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:8px 2px}.menu li:first-child button{border-top:0}.menu-icon{box-sizing:content-box;padding:8px;border-radius:10px;background:var(--brand-soft);width:20px;height:20px}.menu-search{margin-bottom:4px}.tabbar button.on:before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}.tabbar button.on{font-weight:600}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
