:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f3f0;--surface-1:#fcfcfb;--surface-2:#f0efec;--border:#e3e2de;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#8a8984;--accent:#2a78d6;--accent-soft:#e4effc;--good:#1a7f37;--warn:#9a6200;--bad:#c62828;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--track:#cde2fb;--radius:12px;color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111110;--surface-1:#1a1a19;--surface-2:#242422;--border:#2f2f2c;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#8f8e86;--accent:#3987e5;--accent-soft:#1b2c44;--good:#4cc26b;--warn:#e0a43a;--bad:#ff6b6b;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--track:#184f95}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0}button,input,select{font:inherit;color:inherit}code{background:var(--surface-2);border-radius:6px;padding:1px 6px;font-size:.9em}.loading{text-align:center;color:var(--text-secondary);padding:48px}.topbar{z-index:10;background:var(--surface-1);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 24px;display:flex;position:sticky;top:0}.brand{font-size:18px;font-weight:700}.tabs{flex-wrap:wrap;flex:1;gap:4px;display:flex;position:relative}.tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:0;border-radius:8px;padding:8px 12px}.tab-icon,.tab-short,.show-mobile{display:none}.tab:hover{background:var(--surface-2)}.tab{z-index:1;transition:color .25s,background-color .2s;position:relative}.tab.active,.tab.active:hover{color:var(--text-primary);background:0 0;font-weight:600}.save{color:var(--text-muted);font-size:13px}.save-error{color:var(--bad);font-weight:600}.save-box{align-items:center;gap:12px;display:flex}.save-btn{white-space:nowrap;padding:6px 14px;font-size:14px}.save-btn.done{color:var(--text-secondary)}.save-btn.done:before{content:"✓ ";color:var(--good)}.content{max-width:1100px;margin:0 auto;padding:24px 16px 64px;overflow-x:clip}.stack{flex-direction:column;gap:16px;display:flex}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card.highlight{border-color:var(--accent)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card-head h2{margin:0;font-size:17px}.card-actions{flex-wrap:wrap;gap:8px;display:flex}button{cursor:pointer;border:1px solid var(--border);background:var(--surface-1);border-radius:8px;padding:7px 14px}button:hover{background:var(--surface-2)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{filter:brightness(1.08)}button.ghost{color:var(--text-secondary);background:0 0;border-color:#0000;padding:4px 8px}button.ghost:hover{background:var(--surface-2);color:var(--text-primary)}button.danger{color:var(--bad)}button.link{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}.form{background:var(--surface-2);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px;padding:16px;display:grid}.field{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}.field.wide,.form .wide{grid-column:1/-1}.field input,.field select{border:1px solid var(--border);background:var(--surface-1);color:var(--text-primary);border-radius:8px;padding:8px 10px;font-size:15px}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:-1px}.check{font-size:14px;display:block}.check input{vertical-align:-2px;margin:0 8px 0 0}.part-row{grid-template-columns:1fr 140px;gap:12px;display:grid}.part-row.payout-row{grid-template-columns:1fr 180px}.bonus-toggle{margin-top:4px}.sound-settings{flex-direction:column;gap:4px;display:flex}.sound-settings p{margin:4px 0 0}.form-actions{grid-column:1/-1;gap:8px;display:flex}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px}.table tr:last-child td{border-bottom:0}.table.compact td{white-space:nowrap;padding:6px 8px}.table tr.done td{opacity:.55}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.row-actions{text-align:right;white-space:nowrap}.progress-cell{min-width:150px}.scroll-x{overflow-x:auto}.muted{color:var(--text-muted)}.small{font-size:13px}.strong{font-weight:600}.warn{color:var(--warn)}.bad{color:var(--bad)}.good{color:var(--good)}.tag{background:var(--surface-2);color:var(--text-secondary);border-radius:99px;margin-left:6px;padding:1px 8px;font-size:12px;display:inline-block}.tag.good{color:var(--good)}.empty{text-align:center;color:var(--text-secondary);background:var(--surface-2);border-radius:10px;padding:24px}.lead{margin:0 0 12px;font-size:16px}.hero{padding:8px 4px}.hero-label{color:var(--text-secondary)}.hero-value{letter-spacing:-.02em;font-variant-numeric:proportional-nums;font-size:48px;font-weight:650}.stats,.compare{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.stat{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat-label{color:var(--text-secondary);font-size:13px}.stat-value{margin:2px 0;font-size:24px;font-weight:600}.stat-hint{color:var(--text-secondary);font-size:13px}.stat-hint.good{color:var(--good)}.stat-hint.warn{color:var(--warn)}.stat-hint.bad{color:var(--bad)}.plan-tile.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.progress{background:var(--track);border-radius:99px;height:8px;margin:4px 0;overflow:hidden}.progress-fill{background:var(--series-1);border-radius:99px;height:100%}.split{gap:2px;height:20px;margin-bottom:12px;display:flex}.split-seg{height:100%}.split-seg:first-child{border-radius:4px 0 0 4px}.split-seg:last-child{border-radius:0 4px 4px 0}.split-seg:only-child{border-radius:4px}.legend{color:var(--text-secondary);flex-wrap:wrap;gap:8px 20px;margin-bottom:8px;font-size:13px;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.bars{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:150px 1fr 170px;align-items:center;gap:12px;font-size:14px;display:grid}.bar-track{height:16px}.bar-fill{background:var(--series-1);border-radius:0 4px 4px 0;min-width:2px;height:100%}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.debt-list{flex-direction:column;gap:12px;display:flex}.debt-row{align-items:baseline;gap:12px;display:flex}.debt-row>:first-child{flex:1}.steps{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.strategy-toggle{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.option{text-align:left;border-radius:10px;flex-direction:column;gap:4px;padding:14px;display:flex}.option span{color:var(--text-secondary);font-size:13px}.option.active{border-color:var(--accent);background:var(--accent-soft)}.extra-row{flex-direction:column;gap:8px;max-width:560px;display:flex}.subtabs{background:var(--surface-2);border-radius:10px;align-self:flex-start;gap:4px;padding:4px;display:inline-flex;position:relative}.subtab{color:var(--text-secondary);z-index:1;background:0 0;border:0;border-radius:8px;padding:6px 14px;transition:color .25s;position:relative}.subtab.active,.subtab.active:hover{color:var(--text-primary);background:0 0;font-weight:600}.muted-card{background:var(--surface-2)}.bonus-note{background:var(--accent-soft);border-radius:8px;margin:0 0 8px;padding:8px 12px;font-size:14px}.split-seg.rest,.swatch.rest{background:color-mix(in srgb, var(--text-muted) 40%, transparent)}.table.paycheck{margin-top:4px}.table.paycheck td{white-space:normal}.table.paycheck td.num{white-space:nowrap;vertical-align:top}.table.paycheck .group-head td{padding-top:12px;font-weight:600}.table.paycheck .group-head .swatch{vertical-align:0;margin-right:6px}.table.paycheck .line td{color:var(--text-secondary);border-bottom:0;padding:3px 8px 3px 32px}.table.paycheck .line td.num{padding-left:8px}.date{min-width:92px;color:var(--text-muted);font-variant-numeric:tabular-nums;display:inline-block}.chart{position:relative}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .axis{fill:var(--text-muted);font-size:12px}.chart .crosshair{stroke:var(--text-muted);stroke-width:1px}.chart .dot{stroke:var(--surface-1);stroke-width:2px}.tooltip{pointer-events:none;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;min-width:200px;padding:8px 10px;font-size:13px;position:absolute;box-shadow:0 4px 16px #0000001f}.tooltip-title{color:var(--text-secondary);margin-bottom:4px}.tooltip-row{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;display:grid}@media (width<=720px){:root{--nav-h:56px}.topbar{padding:calc(8px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 8px calc(16px + env(safe-area-inset-left));justify-content:space-between;gap:8px}.save{display:none}.save-btn{min-height:36px;padding:4px 12px}.tabs{z-index:20;padding:4px env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:color-mix(in srgb, var(--surface-1) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);grid-template-columns:repeat(6,1fr);gap:0;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--nav-h);border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 0;font-size:11px;line-height:1.1;display:flex}.tab:hover{background:0 0}.tab.active{color:var(--accent);background:0 0;font-weight:600}.tab-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;display:block}.tab-label{display:none}.tab-short{display:block}.content{padding:16px calc(12px + env(safe-area-inset-right)) calc(var(--nav-h) + 32px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.stack{gap:12px}.card{padding:16px;overflow-x:auto}.card-head h2{font-size:16px}button{min-height:44px}button.ghost{min-height:40px;padding:6px 10px}button.link{min-height:0}.card-actions{width:100%}.card-actions>button{flex:1}.field input,.field select{min-height:44px;font-size:16px}.check{padding:6px 0}.check input{vertical-align:-4px;width:20px;height:20px}.form{grid-template-columns:1fr;padding:12px}.part-row{grid-template-columns:1fr 110px}.part-row.payout-row{grid-template-columns:1fr 150px}.form-actions>button{flex:1}.table.stackable thead{display:none}.table.stackable,.table.stackable tbody{display:block}.table.stackable tr{border-bottom:1px solid var(--border);padding:12px 0;display:block}.table.stackable tr:last-child{border-bottom:0}.table.stackable td{text-align:right;white-space:normal;border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;display:flex}.table.stackable td[data-label]:before{content:attr(data-label);color:var(--text-muted);text-align:left;flex:none;font-size:13px;font-weight:400}.table.stackable td.title{text-align:left;padding-bottom:6px;font-weight:600;display:block}.table.stackable td.title .muted,.table.stackable td.title .warn{font-weight:400}.table.stackable td.row-actions{justify-content:flex-start;gap:4px;margin-left:-10px;padding-top:8px}.table.stackable td:empty,.table.stackable .hide-mobile{display:none}.table.stackable .cell{text-align:right}.table.stackable .progress-cell .cell{flex:1;max-width:200px}.show-mobile{display:inline}.table.paycheck .line td{padding-left:14px}.table.paycheck .group-head .muted{display:none}.date{min-width:76px}.scroll-x{margin:0 -16px;padding:0 16px}.subtabs{grid-template-columns:1fr 1fr;align-self:stretch;display:grid}.subtab{padding:8px 6px;font-size:14px}.debt-row{flex-wrap:wrap;row-gap:0}.lead{font-size:15px}.legend{gap:6px 14px}.tooltip{min-width:180px}.stats{grid-template-columns:1fr 1fr}.compare{grid-template-columns:1fr}.stat-value{font-size:20px}.strategy-toggle{grid-template-columns:1fr}.bar-row{grid-template-columns:1fr auto}.bar-track{grid-area:2/1/auto/-1}.hero-value{font-size:40px}}@media (width<=380px){.stats{grid-template-columns:1fr}.tab{font-size:10px}}:root{--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1)}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{to{transform:scale(1)}}@keyframes letter-in{to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}@keyframes grow-x{0%{transform:scaleX(0)}}@keyframes progress{to{transform:scaleX(1)}}@keyframes page-in-right{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes page-in-left{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:none}}@keyframes drop-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes splash-out{to{opacity:0;filter:blur(8px);visibility:hidden;transform:scale(1.08)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes icon-pop{0%{transform:none}40%{transform:scale(1.22)translateY(-2px)}to{transform:none}}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}.splash{z-index:100;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);background:var(--bg);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;inset:0}.splash.leaving{animation:splash-out .55s var(--ease-inout) forwards;pointer-events:none}.splash-mark{width:112px;height:112px;margin-bottom:8px;overflow:visible}.splash-ring{fill:none;stroke:var(--accent);stroke-width:4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transform-origin:60px 60px;animation:draw .9s var(--ease-inout) .1s forwards;transform:rotate(-90deg)}.splash-trend{fill:none;stroke:var(--series-3);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw .7s var(--ease-inout) .55s forwards}.splash-dot{fill:var(--series-3);transform-box:fill-box;transform-origin:50%;animation:pop .45s var(--ease-spring) 1.15s forwards;transform:scale(0)}.splash-title{letter-spacing:-.02em;font-size:34px;font-weight:700;display:flex}.splash-title span{opacity:0;animation:letter-in .5s var(--ease-out) forwards;display:inline-block;transform:translateY(14px)}.splash-tagline{color:var(--text-secondary);opacity:0;animation:.5s ease-out 1.1s forwards fade-up}.splash-progress{background:var(--surface-2);border-radius:99px;width:140px;height:3px;margin-top:12px;overflow:hidden}.splash-progress div{background:var(--accent);transform-origin:0;height:100%;animation:1.6s cubic-bezier(.4,0,.2,1) forwards progress;transform:scaleX(0)}.app.revealing .topbar{animation:slide-down .6s var(--ease-out) both}.page-right{animation:page-in-right .45s var(--ease-out) both}.page-left{animation:page-in-left .45s var(--ease-out) both}.page-none{animation:.4s ease-out both fade-in}.page>.stack>*,.page>.card{animation:rise .5s var(--ease-out) both}.page>.stack>:nth-child(2){animation-delay:50ms}.page>.stack>:nth-child(3){animation-delay:.1s}.page>.stack>:nth-child(4){animation-delay:.15s}.page>.stack>:nth-child(5){animation-delay:.2s}.page>.stack>:nth-child(6){animation-delay:.25s}.page>.stack>:nth-child(7){animation-delay:.3s}.page>.stack>:nth-child(n+8){animation-delay:.35s}.tab-indicator,.subtab-indicator{z-index:0;pointer-events:none;transition:transform .45s var(--ease-spring), width .45s var(--ease-spring), height .3s var(--ease-out), opacity .2s;position:absolute;top:0;left:0}.tab-indicator{background:var(--accent-soft);border-radius:8px}.subtab-indicator{background:var(--surface-1);border-radius:8px;box-shadow:0 1px 3px #0000001f}.progress-fill,.bar-fill{transform-origin:0;animation:grow-x .9s var(--ease-out) .2s both;transition:width .6s var(--ease-out)}.split-seg{transform-origin:0;animation:grow-x .7s var(--ease-out) .15s both;transition:width .6s var(--ease-out)}.split-seg:nth-child(2){animation-delay:.3s}.split-seg:nth-child(3){animation-delay:.45s}.split-seg:nth-child(4){animation-delay:.6s}.split-seg:nth-child(n+5){animation-delay:.75s}.bar-row:nth-child(2) .bar-fill{animation-delay:.27s}.bar-row:nth-child(3) .bar-fill{animation-delay:.34s}.bar-row:nth-child(4) .bar-fill{animation-delay:.41s}.bar-row:nth-child(n+5) .bar-fill{animation-delay:.48s}.line-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.3s var(--ease-inout) .25s forwards}.line-fade{animation:.8s .7s both fade-in}.tooltip{animation:.15s ease-out fade-in}.table tbody tr{animation:rise .4s var(--ease-out) both}.table tbody tr:nth-child(2){animation-delay:40ms}.table tbody tr:nth-child(3){animation-delay:80ms}.table tbody tr:nth-child(4){animation-delay:.12s}.table tbody tr:nth-child(5){animation-delay:.16s}.table tbody tr:nth-child(n+6){animation-delay:.2s}.form{animation:drop-in .3s var(--ease-out)}.bonus-note,.warn{animation:.4s ease-out fade-in}button{transition:background-color .2s, border-color .2s, color .2s, box-shadow .2s, transform .18s var(--ease-spring)}button:active:not(:disabled){transform:scale(.96)}.option{transition:background-color .25s, border-color .25s, transform .18s var(--ease-spring)}.field input,.field select{transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent)}@media (hover:hover){button.primary:hover{box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 40%, transparent)}.stat,.plan-tile{transition:transform .25s var(--ease-out), box-shadow .25s}.stat:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}}.save-saving:before{content:"";background:var(--accent);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:6px;animation:1s ease-in-out infinite pulse;display:inline-block}.save-saved{animation:.4s ease-out fade-in}.save-saved:before{content:"✓ ";color:var(--good)}@media (width<=720px){.app.revealing .topbar{animation:.5s ease-out both fade-in}.app.revealing .tabs{animation:slide-up .6s var(--ease-out) .1s both}.tab{justify-content:flex-start;padding-top:8px}.tab-indicator{background:0 0}.tab-indicator:after{content:"";background:var(--accent-soft);border-radius:16px;width:56px;height:32px;margin-left:-28px;position:absolute;top:4px;left:50%}.tab.active .tab-icon{animation:icon-pop .45s var(--ease-spring)}.page-right,.page-left{animation-duration:.38s}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.auth-screen{min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.auth-card{text-align:left;background:var(--surface-1);border:1px solid var(--border);width:100%;max-width:380px;animation:rise .5s var(--ease-out) both;border-radius:16px;flex-direction:column;gap:12px;padding:28px 24px;display:flex;box-shadow:0 12px 40px #00000014}.auth-card h1{letter-spacing:-.02em;margin:0;font-size:26px}.auth-card p{margin:0}.auth-card button.primary{margin-top:4px}.auth-mark{width:56px;height:56px}.auth-mark circle{fill:none;stroke:var(--accent);stroke-width:5px}.auth-mark path{fill:none;stroke:var(--series-3);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.auth-error{color:var(--bad);font-size:14px;animation:.2s ease-out fade-in}.auth-notice{background:var(--accent-soft);border-radius:8px;padding:8px 12px;font-size:14px}.auth-card .field input{min-height:44px;font-size:16px}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:50;background:var(--surface-1);border:1px solid var(--border);width:min(560px,100% - 32px);animation:drop-in .3s var(--ease-out);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0000002e}.toast p{flex:1;margin:0}.toast button{min-height:0;padding:2px 8px}@media (width<=720px){.toast{bottom:calc(var(--nav-h) + 20px + env(safe-area-inset-bottom))}}.account-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.account-row p{margin:0}
