:root{--bg:#f6f7f5;--card:#fff;--text:#1c2321;--muted:#5f6b67;--accent:#0f766e;--on-accent:#fff;--soft:#e6f2f0;--line:#e3e7e4}@media (prefers-color-scheme:dark){:root{--bg:#111615;--card:#1b2220;--text:#e8eeec;--muted:#9aa8a3;--accent:#2dd4bf;--on-accent:#06201d;--soft:#16302c;--line:#2a3431}}*{box-sizing:border-box}html{touch-action:manipulation}body{background:var(--bg);color:var(--text);padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.5 -apple-system,Segoe UI,system-ui,sans-serif}h1{margin:0;font-size:22px}h2{margin:0 0 8px;font-size:16px}p{margin:0 0 10px}.top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:14px}.card.banner{background:var(--accent);color:var(--on-accent);border:0}.card.banner button{background:var(--on-accent);color:var(--accent)}.card.note{background:var(--soft)}.muted{color:var(--muted);font-size:14px}.small{font-size:13px}.center{text-align:center}textarea{width:100%;min-height:70px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);resize:vertical;border-radius:10px;padding:10px;font-size:16px}button,.button{text-align:center;font:inherit;background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:10px;padding:12px 16px;font-weight:600;display:block}button.secondary,.button.secondary{background:var(--soft);color:var(--text)}button.link{color:var(--accent);background:0 0;width:auto;margin:0;padding:6px 0}button.quiet{color:var(--muted);background:0 0;width:auto;margin:0 0 14px;padding:0;font-size:13px;font-weight:400}button.small-btn{width:auto;margin:0;padding:6px 14px;font-size:14px}ul{margin:0;padding:0;list-style:none}li{border-top:1px solid var(--line);padding:8px 0}li:first-child{border-top:0}li.row{justify-content:space-between;align-items:center;gap:12px;display:flex}:root{--pos:#15803d;--neg:#b42318}@media (prefers-color-scheme:dark){:root{--pos:#4ade80;--neg:#f87171}}button:disabled{opacity:.45}button.danger{color:var(--neg);background:0 0}input[type=text],input[type=date],select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;padding:9px 10px;font-size:16px}section{margin:16px 0}.hero{text-align:center;padding:20px 14px}.big-number{letter-spacing:-.5px;direction:ltr;unicode-bidi:plaintext;margin:2px 0 6px;font-size:40px;font-weight:700}.breakdown{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:13px;display:flex}.upcoming{border-top:1px solid var(--line);text-align:start;margin-top:14px;padding-top:10px}.line{justify-content:space-between;padding:2px 0;font-size:14px;display:flex}.line.strong{border-top:1px dashed var(--line);margin-top:4px;padding-top:6px;font-weight:700}.day-label{color:var(--muted);align-items:center;gap:8px;margin:14px 4px 6px;font-size:13px;display:flex}.tag{background:var(--soft);color:var(--text);border-radius:6px;padding:0 6px;font-size:12px}.card.list{padding:0 14px}.tx{width:100%;color:var(--text);text-align:start;border-top:1px solid var(--line);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:11px 0;font-weight:400;display:flex}.tx:first-child{border-top:0}.amount{white-space:nowrap;font-weight:600}.amount.income{color:var(--pos)}.amount.transfer{color:var(--muted)}.fab{left:20px;bottom:calc(env(safe-area-inset-bottom) + 20px);border-radius:30px;width:60px;height:60px;margin:0;padding:0;font-size:32px;line-height:1;position:fixed;box-shadow:0 4px 14px #0003}body{padding-bottom:calc(env(safe-area-inset-bottom) + 100px)}.segmented{background:var(--soft);border-radius:10px;margin:12px 0;padding:3px;display:flex}.segmented button{color:var(--text);background:0 0;margin:0;padding:8px;font-weight:500}.segmented button.on{background:var(--card);font-weight:700;box-shadow:0 1px 3px #0000001f}.money-input{align-items:center;gap:6px;display:flex}.money-input input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;flex:1;min-width:0;padding:9px 10px;font-size:16px}.money-input.big input{text-align:center;background:0 0;border:0;padding:6px 0;font-size:38px;font-weight:700}.money-input.big .currency{color:var(--muted);font-size:28px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--card);width:auto;color:var(--text);border:1px solid var(--line);border-radius:20px;margin:0;padding:8px 14px;font-size:15px;font-weight:500}.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}input.chip{width:auto;padding:7px 12px}.field{color:var(--muted);flex-direction:column;gap:4px;margin-top:8px;font-size:14px;display:flex}.field.inline{flex-direction:row;align-items:center;gap:10px}.field.inline select{width:auto}.note-input{margin-top:4px}.edit-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.edit-row:first-child{border-top:0}.edit-row.compact{align-items:center;padding:6px 0}.edit-row.off input[type=text]{color:var(--muted);text-decoration:line-through}.edit-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex:none;margin-top:8px}.edit-row.compact input[type=checkbox]{margin-top:0}.edit-fields{flex:1;min-width:0}.onboarding h1{margin-bottom:6px}.hero-buttons{gap:10px;margin-top:12px;display:flex}.hero-buttons button{margin:0;padding:10px;font-size:15px}.line.strong-head{align-items:baseline;font-weight:700}.wizard .top{min-height:32px}.dots{justify-content:center;gap:6px;margin:4px 0 18px;display:flex}.dots span{background:var(--line);border-radius:4px;width:7px;height:7px}.dots span.on{background:var(--accent);width:20px}.step-title{text-align:center;margin-bottom:20px;font-size:24px}.tiles{flex-direction:column;gap:12px;display:flex}.tile{background:var(--card);color:var(--text);border:2px solid var(--line);flex-direction:column;gap:2px;margin:0;padding:22px 16px;font-size:20px;display:flex}.tile.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.tile .small{opacity:.75;font-weight:400}button.continue{margin-top:22px}.icon-btn{background:var(--soft);width:40px;height:40px;color:var(--text);border-radius:20px;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.menu-item{padding:14px 0}.wizard .chips{justify-content:center;gap:10px}.wizard .chips .chip{padding:12px 18px;font-size:17px}.amount-display{text-align:center;direction:ltr;margin:10px 0 18px;font-size:46px;font-weight:700}.amount-display.empty{color:var(--muted)}.amount-display .currency{color:var(--muted);margin-right:6px;font-size:30px}.keypad{direction:ltr;grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.key{background:var(--card);color:var(--text);border:1px solid var(--line);margin:0;padding:16px 0;font-size:26px;font-weight:500}.key:active{background:var(--soft)}.wizard .card.list{margin-top:4px}.section-label{margin:10px 0 2px}.warn{color:var(--neg);font-weight:600}.card-line{padding:4px 0 6px}.bar{background:var(--soft);border-radius:3px;height:6px;margin:3px 0 2px;overflow:hidden}.bar span{background:var(--accent);border-radius:3px;height:100%;display:block}.bar.high span{background:var(--neg)}.card.pending{border-color:var(--accent)}.card.pending h2{margin:2px 0 10px}.swipe{position:relative;overflow:hidden}.swipe-delete{background:var(--neg);color:#fff;border-radius:0;width:88px;margin:0;font-weight:600;position:absolute;top:0;bottom:0;right:0}.swipe-content{background:var(--card);touch-action:pan-y;position:relative}.swipe-content.dragging,.swipe-content.dragging input{-webkit-user-select:none;user-select:none}.ltr{text-align:left;word-break:break-all;direction:ltr}.card.toast{background:var(--soft);color:var(--pos);justify-content:space-between;align-items:center;padding:10px 14px;font-weight:600;display:flex}.card.toast button{color:var(--text);font-weight:500}.toggle-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.toggle-row input{width:22px;height:22px;accent-color:var(--accent);flex:none}.block{display:block}.tabbar{left:50%;bottom:calc(env(safe-area-inset-bottom) + 12px);background:var(--card);border:1px solid var(--line);z-index:10;border-radius:30px;align-items:center;gap:6px;padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000024}.tab{width:84px;color:var(--muted);background:0 0;border-radius:22px;flex-direction:column;align-items:center;gap:1px;margin:0;padding:6px 0 4px;font-size:11px;font-weight:500;display:flex}.tab.on{color:var(--accent);background:var(--soft)}.tab-add{border-radius:26px;width:52px;height:52px;margin:0;padding:0;font-size:30px;line-height:1}.tab-screen{animation:.18s ease-out tab-in}@keyframes tab-in{0%{opacity:0}to{opacity:1}}.month-switch{justify-content:space-between;align-items:center;margin:4px 0 12px;font-weight:600;display:flex}.month-switch button{padding:0 12px;font-size:26px}.month-switch button:disabled{opacity:.25}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:6px;display:grid}.stat{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:12px;padding:10px}.stat-value{white-space:nowrap;font-size:17px;font-weight:700}.stat.strong{border-color:var(--accent)}.bar-row{width:100%;color:var(--text);text-align:start;background:0 0;border-radius:0;margin:0;padding:7px 0;font-weight:400;display:block}.bar-detail{border-right:2px solid var(--line);margin-bottom:4px;padding:0 10px 6px}.bar-detail .tx{padding:6px 0}.bar span.neg{background:var(--neg)}.totals{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.section{padding:0}.section-head{width:100%;color:var(--text);text-align:start;background:0 0;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:14px;font-weight:400;display:flex}.section-title{font-weight:700}.section-value{white-space:nowrap;font-weight:700}.chevron{color:var(--muted);transition:transform .15s;display:inline-block}.chevron.open{transform:rotate(-90deg)}.section-body{padding:0 14px 12px}:root{--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-other:#b8b6ae;--pos-bar:#2a78d6;--neg-bar:#e34948;--grid:#e1e0d9}@media (prefers-color-scheme:dark){:root{--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-other:#5f5e5a;--pos-bar:#3987e5;--neg-bar:#e66767;--grid:#2c2c2a}}.stat-row.four{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0}.chart{direction:ltr;width:100%;height:auto;overflow:visible}.chart .baseline{stroke:var(--grid);stroke-width:1px}.chart .axis-label{fill:var(--muted);font-size:10px}.chart g.dim{opacity:.75}.chart-legend{color:var(--muted);gap:14px;margin-bottom:4px;font-size:13px;display:flex}.chart-readout{min-height:18px;margin:2px 0 6px;font-size:13px}.swatch{vertical-align:middle;border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.donut{flex-direction:column;align-items:center;display:flex}.donut svg{width:190px;height:190px}.donut circle{cursor:pointer;transition:stroke-width .15s,opacity .15s}.donut-label{fill:var(--muted);font-size:8px}.donut-value{fill:var(--text);font-size:12px;font-weight:700}.legend{width:100%;margin-top:8px}.legend-row{width:100%;color:var(--text);background:0 0;border-radius:0;align-items:center;gap:8px;margin:0;padding:5px 0;font-size:14px;font-weight:400;display:flex}.legend-row.on{font-weight:700}.legend-name{text-align:start;flex:1}.legend-pct{text-align:end;width:36px}.stack{border-radius:7px;gap:2px;height:14px;display:flex;overflow:hidden}.stack span{height:100%;display:block}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:6px;font-size:13px}.table th{text-align:start;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 2px;font-weight:500}.table td{border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 2px}.neg-text{color:var(--neg)}.pos-text{color:var(--pos)}.tab{width:64px}:root{--inc-bar:#22a06b;--exp-bar:#e34948}@media (prefers-color-scheme:dark){:root{--inc-bar:#2fbf7f;--exp-bar:#e66767}}.inc{color:var(--pos)}.exp,.amount.expense{color:var(--neg)}.tile.expense.on{background:var(--neg);border-color:var(--neg);color:#fff}.tile.income.on{background:var(--pos);border-color:var(--pos);color:#fff}.expense .amount-display{color:var(--neg)}.income .amount-display{color:var(--pos)}.cat-dot{vertical-align:middle;border-radius:5px;width:9px;height:9px;margin-inline-end:7px;display:inline-block}.color-dot{border:2px solid var(--card);width:26px;height:26px;box-shadow:0 0 0 1px var(--line);border-radius:13px;flex:none;margin:0;padding:0}.group{border-top:1px solid var(--line)}.group:first-child{border-top:0}.group-head{background:0 0;border-radius:0;justify-content:space-between;width:100%;margin:0;padding:10px 0;font-size:15px;font-weight:600;display:flex}.group-body{padding:0 0 6px}.bar.split{gap:0;display:flex}.bar.split span{border-radius:0}.bar.split span:first-child{border-radius:0 3px 3px 0}.bar.split span.expected{opacity:.35}.swipe-tabs{touch-action:pan-y;position:relative;overflow-x:clip}.tab-panel{will-change:transform}.tab-panel.neighbour{position:absolute;left:0;right:0}.floating-settings{top:calc(env(safe-area-inset-top) + 12px);z-index:11;position:fixed;right:16px}.swipe-tabs .top h1{margin-inline-start:52px}.tab-panel.enter-from-left{animation:.22s ease-out from-left}.tab-panel.enter-from-right{animation:.22s ease-out from-right}@keyframes from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes from-right{0%{transform:translate(100%)}to{transform:translate(0)}}.tabbar{position:fixed}.tab-indicator{background:var(--soft);z-index:0;border-radius:22px;position:absolute;top:6px;bottom:6px}.tab,.tab-add{z-index:1;position:relative}.tab.on{background:0 0}.locked{text-align:center;padding:24px 16px}.lock-icon{color:var(--muted);margin-bottom:6px}.meter{height:10px;margin:8px 0 4px;position:relative;overflow:visible}.limit-mark{background:var(--text);width:2px;position:absolute;top:-3px;bottom:-3px}.per-day{margin-top:10px;font-size:14px}.budget-row{border-top:1px solid var(--line);padding:8px 0}.budget-row:first-of-type{border-top:0}.budget-field{color:var(--text);flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.budget-field .money-input{flex:none;width:120px}.budget-parts{text-align:start;margin-top:10px;font-size:14px}.section-head.flat{padding:0}.method-group h2{margin-bottom:2px}.method-group>p{margin-bottom:6px}.method{border-top:1px solid var(--line)}.method-head{width:100%;color:var(--text);text-align:start;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:11px 0;font-weight:400;display:flex}.method-name{font-weight:600}.method-body{padding:0 0 12px}.add-in-group{margin-top:6px;font-size:15px}.add-kinds .chips{justify-content:flex-start}.fixed-summary{margin-bottom:4px}.statement{border-right:2px solid var(--line);margin:0 0 6px;padding:0 12px 6px}.statement .tx{padding:8px 0}.card-line-head{width:100%;color:var(--text);text-align:start;background:0 0;border-radius:0;margin:0;padding:0;font-weight:400;display:block}.card-detail{margin:6px 0 4px}.card-detail .later{margin-top:4px}.small-chevron{font-size:13px}.toast-bubble{left:50%;top:calc(env(safe-area-inset-top) + 64px);z-index:20;background:var(--card);max-width:calc(100% - 32px);color:var(--pos);border:1px solid var(--line);border-radius:22px;align-items:center;gap:14px;padding:10px 18px;font-weight:600;animation:5s forwards bubble;display:flex;position:fixed;box-shadow:0 6px 22px #00000029}.toast-bubble button{color:var(--text);font-weight:500}@keyframes bubble{0%{opacity:0;transform:translate(-50%,-10px)scale(.96)}6%{opacity:1;transform:translate(-50%)scale(1)}80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}button.stat{width:auto;font:inherit;color:var(--text);cursor:pointer;margin:0;font-weight:400}.stat.tappable{transition:background .15s,border-color .15s}:root{--inc-soft:#eaf6ef;--exp-soft:#fcecea}@media (prefers-color-scheme:dark){:root{--inc-soft:#15291f;--exp-soft:#2f1a19}}.stat.on.inc-bg{background:var(--inc-soft);border-color:var(--pos)}.stat.on.exp-bg{background:var(--exp-soft);border-color:var(--neg)}.breakdown-panel{margin-top:8px;animation:.18s ease-out panel-in}.exp-panel{background:var(--exp-soft);border-color:var(--neg)}.inc-panel{background:var(--inc-soft);border-color:var(--pos)}.breakdown-panel .bar{background:#7f7f7f26}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.cards-head{align-items:flex-start}.cards-head-text{flex:1;display:block}.cards-used{margin:2px 0;font-size:26px;font-weight:700;display:block}.cards-head .meter{margin:6px 0 4px;display:block}.field-label{color:var(--muted);margin:12px 0 0;font-size:14px}.stat-row.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}.backup-line{margin:14px auto 0;display:block}.quiet-lines{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:14px;display:flex}.quiet-lines .quiet{margin:0}button.quiet.due{color:var(--accent);font-weight:600}.check-result h2{margin-bottom:8px}.list-title{padding-top:12px}.last-entry{margin-top:2px}.check-due{background:var(--accent);width:100%;color:var(--on-accent);border-radius:16px;flex-direction:column;align-items:center;gap:2px;margin:0 0 14px;padding:14px;animation:2.4s ease-in-out infinite nudge;display:flex;box-shadow:0 6px 18px #0f766e4d}.check-due-title{font-size:17px;font-weight:700}@keyframes nudge{0%,70%,to{transform:translateY(0)}76%{transform:translateY(-5px)}82%{transform:translateY(0)}88%{transform:translateY(-3px)}94%{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.check-due{animation:none}}.goal-card{text-align:start;width:100%;color:var(--text);background:var(--card);font-weight:400;display:block}.goal-name{font-size:16px;font-weight:700}.goal-bar{border-radius:5px;height:10px;margin:8px 0 6px}.goal-bar span{background:var(--pos);border-radius:5px}.goal-bar.done span{background:var(--series-4)}.side-menu{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.side-menu.open{pointer-events:auto}.side-menu-backdrop{opacity:0;background:#00000059;transition:opacity .25s;position:absolute;inset:0}.side-menu.open .side-menu-backdrop{opacity:1}.side-menu-panel{background:var(--bg);width:min(80vw,320px);padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;gap:4px;transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.side-menu.open .side-menu-panel{transform:translate(0);box-shadow:-6px 0 24px #0000002e}.side-menu-bar{align-items:center;min-height:36px;margin-bottom:12px;display:flex}.side-menu-bar .link{padding:4px 0}.side-menu-bar button.side-menu-close{color:var(--muted);margin-inline-start:auto;padding:4px 8px;font-size:20px}.side-sub{grid-template-rows:0fr;transition:grid-template-rows .25s;display:grid}.side-sub.open{grid-template-rows:1fr}.side-sub>div{overflow:hidden}.side-sub-item{text-align:start;width:100%;color:var(--text);background:0 0;border-radius:0;margin:0;padding:11px 18px 11px 4px;font-size:16px;font-weight:500;display:block}.side-sub.open>div{border-bottom:1px solid var(--line);padding:4px 0}@media (prefers-reduced-motion:reduce){.side-sub{transition:none}}.side-menu-item{text-align:start;width:100%;color:var(--text);border-bottom:1px solid var(--line);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:16px 4px;font-size:20px;font-weight:700;display:flex}.side-menu-foot{margin-top:auto;padding-top:16px}@media (prefers-reduced-motion:reduce){.side-menu-panel,.side-menu-backdrop{transition:none}}.cal-area{touch-action:pan-y;overflow:hidden}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-head span{text-align:center;color:var(--muted);padding:2px 0 6px;font-size:12px}.cal-day{width:100%;color:var(--text);background:0 0;border-radius:10px;flex-direction:column;align-items:center;gap:3px;min-height:44px;margin:0;padding:7px 0 5px;font-size:15px;font-weight:500;display:flex}.cal-grid.week .cal-day{min-height:76px;font-size:18px}.cal-day.today span:first-child{color:var(--accent);font-weight:800}.cal-day.on{background:var(--accent);color:#fff}.cal-day.on.today span:first-child{color:#fff}.cal-dots{gap:3px;min-height:6px;display:flex}.cal-dot{background:var(--muted);vertical-align:middle;border-radius:3px;width:6px;height:6px;display:inline-block}.cal-dot.inc{background:var(--inc-bar)}.cal-dot.exp{background:var(--exp-bar)}.cal-day.on .cal-dot{box-shadow:0 0 0 1.5px #fff}.tx .cal-dot{border-radius:4px;width:8px;height:8px}.cal-year{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:10px;display:grid}.cal-mini{width:100%;color:var(--text);background:0 0;border-radius:10px;margin:0;padding:6px;font-weight:400;display:block}.cal-mini.on{background:var(--soft)}.cal-mini-name{margin-bottom:4px;font-size:13px;font-weight:700;display:block}.cal-mini-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-mini-grid span{aspect-ratio:1;border-radius:2px}.cal-mini-day{background:var(--line)}.cal-mini-day.inc{background:var(--inc-bar)}.cal-mini-day.exp{background:var(--exp-bar)}.cal-mini-day.none{background:var(--muted)}.cal-mini-day.today{outline:1.5px solid var(--accent)}.cal-hint{margin:8px 0 0}.cal-area>div{will-change:transform}.cal-area .enter-from-left{animation:.22s ease-out from-left}.cal-area .enter-from-right{animation:.22s ease-out from-right}.cal-area .zoom-enter-in{animation:.32s cubic-bezier(.2,.8,.2,1) zoom-enter-in}.cal-area .zoom-enter-out{animation:.32s cubic-bezier(.2,.8,.2,1) zoom-enter-out}@keyframes zoom-enter-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes zoom-enter-out{0%{opacity:0;transform:scale(1.6)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.cal-area .zoom-enter-in,.cal-area .zoom-enter-out{animation:none}}button.cal-add{margin:0 0 10px}.cal-balance h2{font-size:16px}.cal-balance .line{font-size:15px}.cal-balance-diff{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;font-weight:700}.cal-balance .muted{margin-top:6px}.cal-totals{justify-content:center;gap:12px;margin:0 0 12px;font-size:15px;font-weight:600;display:flex}.cal-allday{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.cal-hours{margin:4px 0 12px;position:relative}.cal-hour{border-top:1px solid var(--line);color:var(--muted);text-align:start;background:0 0;border-radius:0;margin:0;padding:0;font-weight:400;position:absolute;left:0;right:0}.cal-hour-label{background:var(--card);text-align:right;direction:ltr;width:44px;padding-left:4px;font-size:11px;position:absolute;top:-8px;right:0}.cal-now{background:var(--neg);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:44px}.cal-now:before{content:"";background:var(--neg);border-radius:4px;width:8px;height:8px;position:absolute;top:-3px;right:-4px}.cal-event{z-index:1;text-align:start;background:var(--soft);color:var(--text);border-right:3px solid var(--muted);border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;margin:0;padding:3px 7px;font-size:13px;font-weight:400;line-height:1.25;display:flex;position:absolute;overflow:hidden}.cal-event.flat{flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;position:static}.cal-event.inc{border-right-color:var(--inc-bar)}.cal-event.exp{border-right-color:var(--exp-bar)}.cal-event-title{font-weight:700}.cal-event-time{color:var(--muted);direction:ltr;font-size:11px}.cal-money{font-size:12px}.cal-allday-toggle{margin-top:10px}.cal-times{grid-template-columns:1fr 1fr;gap:10px;display:grid}.event-popup{z-index:25;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.event-popup-backdrop{background:#00000059;animation:.2s ease-out fade-in;position:absolute;inset:0}.event-popup-card{width:100%;max-width:420px;margin:0;animation:.25s cubic-bezier(.2,.8,.2,1) pop-in;position:relative;box-shadow:0 10px 30px #0003}.event-popup-later{color:var(--muted);margin:10px auto 0;display:block}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.event-popup-backdrop,.event-popup-card{animation:none}}.cal-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.cal-weekday{background:var(--soft);color:var(--text);border-radius:10px;margin:0;padding:10px 0;font-weight:600}.cal-weekday.on{background:var(--accent);color:#fff}.cal-tx{background:var(--muted);border-radius:2px;width:10px;height:4px;display:inline-block}.cal-tx.inc{background:var(--inc-bar)}.cal-tx.exp{background:var(--exp-bar)}.cal-day.on .cal-tx{box-shadow:0 0 0 1.5px #fff}.cal-dots{align-items:center}.cal-day-txs{margin-bottom:10px}.cal-day-txs .tx{padding:8px 0}.scope-buttons{flex-direction:column;gap:8px;display:flex}.scope-buttons button{margin:0}.home-cal .cal-area{padding-top:8px;padding-bottom:8px}.home-cal .month-switch{margin:0 0 6px}button.cal-title{color:var(--text);padding:4px 8px;font-size:16px;font-weight:600}.home-day-head{justify-content:space-between;align-items:center;display:flex}.home-day .tx{padding:9px 0}.agenda-time{text-align:right;direction:ltr}.day-switch{background:var(--soft);border-radius:10px;gap:4px;padding:3px;display:flex}.day-switch button{color:var(--muted);background:0 0;border-radius:8px;width:auto;margin:0;padding:5px 10px;font-size:14px;font-weight:600}.day-switch button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001a}.home-day-head{margin-bottom:6px}.month-range{margin:0 0 4px}.money-day .day-label{margin:10px 0 2px}.charge-row .muted{font-weight:600}.month-switch.single{justify-content:center}.cal-tx.planned{box-shadow:inset 0 0 0 1.5px var(--exp-bar);background:0 0}.expected-row{opacity:.75}.fixed-title{font-weight:700}.bar .fixed-bar{background:var(--text);opacity:.55}.bar .savings-bar{background:var(--pos);opacity:.5}.check-every{margin-top:10px}.check-every-row{align-items:center;padding:6px 0;font-size:15px}.check-every-row select{width:auto;margin:0;padding:6px 8px;font-size:15px}:root{--minor:#b7791f}@media (prefers-color-scheme:dark){:root{--minor:#e0a33a}}.minor{color:var(--minor);font-weight:700}.minor-panel{border-color:var(--minor)}:root{--holiday:#6b46c1}@media (prefers-color-scheme:dark){:root{--holiday:#b794f4}}.cal-day.holiday>span:first-child{color:var(--holiday);font-weight:700}.cal-day.rest>span:first-child{box-shadow:0 -2px 0 var(--holiday);border-radius:1px}.cal-day.on.holiday>span:first-child{color:#fff}.holiday-lines{flex-direction:column;gap:4px;margin:0 0 8px;display:flex}.holiday-line{color:var(--holiday);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.rest-note{color:var(--holiday)}.account-line{align-items:center;padding:5px 0}.check-when{color:var(--muted);font-weight:400}.check-when.exact{color:var(--pos)}.check-when.minor{color:var(--minor)}.check-when.off{color:var(--neg)}.when-step{flex-direction:column;gap:14px;display:flex}.when-box{border:2px solid var(--accent);text-align:center;background:var(--soft);border-radius:16px;padding:18px 14px}.when-label{color:var(--accent);font-size:30px;font-weight:800;line-height:1.2}.when-chips{justify-content:center}.tile.event{border-style:dashed}.future-note{text-align:center;margin:0 0 12px}.month-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.small-switch button{padding:3px 9px;font-size:13px}button.coming-toggle{margin:4px 0 2px;display:block}.part-title{margin:12px 0 0;font-size:14px;font-weight:700}.coming-part{border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:8px}button.hours-toggle{margin:8px 0 0;display:block}.panel-split{border-bottom:1px solid #7f7f7f40;margin-bottom:8px;padding-bottom:8px;font-weight:600}.tap-hint{color:var(--accent);margin-top:2px;font-size:12px;font-weight:600}.stat.on .tap-hint{color:inherit;opacity:.85}.time-picker{justify-content:flex-end;align-items:center;gap:6px;margin:6px 0 4px;display:flex}.time-picker select{text-align:center;width:auto;min-width:72px;margin:0;padding:8px 10px;font-size:18px}.toggle-row.several-days{margin-top:12px}.event-link{margin-top:10px}.event-step .tiles{margin-top:8px}.tile.event-tile.on{background:var(--accent);border-color:var(--accent);color:#fff}.tile.event-tile .small{opacity:.85}.card-charge .card-gap{margin:8px 0}.card-charge .card-gap .line{justify-content:space-between;padding:2px 0;display:flex}.card-charge .gap-actions{flex-direction:column;gap:8px;margin-top:10px;display:flex}.card-charge .statement{max-height:40vh;overflow-y:auto}.card-charge .row-links{text-align:center;margin-top:6px}.card-charge .edge-list{margin:10px 0}.card-charge .edge-item{border-top:1px solid var(--line,#e5e5e5);padding:6px 0}.card-charge .edge-item .line{justify-content:space-between;margin-bottom:4px;display:flex}.card-charge .small-seg button{padding:6px 8px;font-size:.85em}.card-charge .edge-hint{background:var(--soft,#f2f7f5);border-radius:10px;margin:10px 0;padding:10px}.card-charge .edge-hint p{margin:0 0 8px}.gap-ask{margin:10px 0}.gap-ask p{margin:0 0 8px}.check-delete{color:var(--muted,#888);margin:0 8px 0 0;padding:4px 6px}:root{--sav:#c2660a;--sav-soft:#fdf1e3}@media (prefers-color-scheme:dark){:root{--sav:#f5a14a;--sav-soft:#2e2214}}.sav{color:var(--sav)}.stat.on.sav-bg,.sav-panel{background:var(--sav-soft);border-color:var(--sav)}.savings-toggle{width:auto;color:var(--muted,#888);border:1px solid var(--line);background:0 0;border-radius:999px;margin:0;padding:4px 10px;font-size:.8em;font-weight:500}.savings-toggle.on{background:var(--sav-soft);color:var(--sav);border-color:var(--sav)}.fund-total{text-align:center}.fund-head{width:100%;color:var(--text);text-align:inherit;background:0 0;margin:0 0 8px;padding:0;font-weight:400;display:block}.fund-head .line,.fund-history .line{justify-content:space-between;gap:8px;display:flex}.fund-history{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:8px;display:flex}.fund-form{margin-top:8px}.danger-link{color:var(--neg);align-self:flex-start}.fund-stats{background:var(--sav-soft);border-radius:10px;flex-direction:column;gap:6px;margin:8px 0;padding:10px;display:flex}.fund-stats .line{justify-content:space-between;gap:8px;font-size:14px;display:flex}.stat-row:not(.two) .stat{min-width:0;padding:8px 4px;overflow:hidden}.stat-row:not(.two) .stat-value{letter-spacing:-.3px;font-size:clamp(12px,4.1vw,17px)}.stat-row:not(.two) .tap-hint{white-space:nowrap;font-size:clamp(10px,3vw,12px)}.unknown-totals{text-align:center;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 4px;display:grid}.unknown-big{direction:ltr;unicode-bidi:plaintext;font-size:22px;font-weight:700}.unknown-source{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.unknown-head{width:100%;color:var(--text);text-align:inherit;background:0 0;margin:0;padding:0;font-weight:400;display:block}.unknown-head .line,.unknown-gaps .line{justify-content:space-between;gap:8px;display:flex}.unknown-gaps{background:var(--soft);border-radius:10px;flex-direction:column;gap:6px;margin-top:8px;padding:8px;display:flex}.gap-bar{height:8px;margin:8px 0 4px;display:block}.gap-bar>span{background:var(--pos)}.open-gap .gap-actions{flex-direction:column;gap:8px;margin-top:8px;display:flex}.open-gap-line{background:var(--sav-soft);border:1px solid var(--sav);width:100%;color:var(--text);text-align:inherit;border-radius:14px;flex-direction:column;align-items:stretch;gap:2px;margin:0 0 10px;padding:10px 14px;font-weight:400;display:flex}.recheck-note{background:var(--sav-soft);border:1px solid var(--sav);border-radius:10px;padding:8px 12px}.card-gap-mark{background:var(--sav-soft);border:1px solid var(--sav);width:100%;color:var(--sav);text-align:inherit;border-radius:10px;margin:6px 0 0;padding:6px 10px;font-size:13px;font-weight:600;display:block}.gap-split{background:var(--soft);border-radius:10px;flex-direction:column;gap:4px;margin:6px 0;padding:8px 10px;display:flex}.rec-actions{gap:8px;display:flex}.rec-actions button{flex:1}.danger-text{color:var(--neg)}.rec-sheet .gap-actions{flex-direction:column;gap:8px;margin-top:8px;display:flex}.rec-columns{grid-template-columns:1fr 1fr;align-items:start;gap:8px;margin-top:12px;display:grid}.rec-col{flex-direction:column;gap:8px;min-width:0;display:flex}.rec-col .stat{width:100%}.rec-list{margin:0;padding:4px 8px}.rec-item+.rec-item{border-top:1px solid var(--line)}.rec-head{width:100%;color:var(--text);text-align:inherit;background:0 0;justify-content:space-between;align-items:baseline;gap:6px;margin:0;padding:8px 2px;font-weight:500;display:flex}.rec-name{overflow-wrap:anywhere;min-width:0}.rec-head .amount{white-space:nowrap;font-size:14px}.rec-detail{flex-direction:column;gap:4px;padding:0 2px 10px;font-size:13px;display:flex}.rec-detail .small-btn{align-self:flex-start;margin-top:4px}.rec-ended{margin-top:12px;padding:4px 12px}.fund-buttons{flex-wrap:wrap;gap:8px;display:flex}.fund-history-card .fund-day+.fund-day{border-top:1px solid var(--line)}.fund-day-head{width:100%;color:var(--text);background:0 0;justify-content:space-between;margin:0;padding:10px 2px;font-weight:500;display:flex}.fund-day-rows{flex-direction:column;gap:6px;padding:0 4px 10px;display:flex}.fund-day-row .line{justify-content:space-between;gap:8px;display:flex}.fund-edit{margin:6px 0}.goal-bar span{background:var(--sav)}.place-options{flex-direction:column;gap:8px;display:flex}.place-tile{text-align:start}.place-tile .small{opacity:.8;margin-top:2px;font-weight:400;display:block}.goal-numbers{text-align:start;flex-direction:column;gap:4px;margin:10px 0;display:flex}.goal-numbers .line{justify-content:space-between;gap:8px;font-size:14px;display:flex}.goal-paid{width:100%;color:var(--text);background:0 0;margin:0;padding:0;font-weight:400}.goal-paid-list{background:var(--sav-soft);border-radius:10px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.goal-tosave{border-top:1px solid var(--line);padding-top:4px;font-weight:700}.reserved-line{display:block}.goal-moves{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;margin-bottom:6px;padding-bottom:8px;display:flex}.goal-moves .line{justify-content:space-between;display:flex}
