:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f2f3f5;--surface:#fff;--raised:#fff;--text:#14171a;--muted:#646b75;--line:#e3e6ea;--accent:#2158c4;--on-accent:#fff;--danger:#bf2f25;--success:#177245;--shadow:0 1px 2px #1018280a, 0 6px 20px #1018280d;--surface-2:color-mix(in srgb, var(--text) 6%, transparent);--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--danger-soft:color-mix(in srgb, var(--danger) 11%, transparent);--success-soft:color-mix(in srgb, var(--success) 13%, transparent);--radius:16px;--radius-sm:12px;--ease:cubic-bezier(.2, .7, .2, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--dur:.22s;--tabbar-height:60px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e1012;--surface:#181b1e;--raised:#3a4047;--text:#eceef0;--muted:#98a0aa;--line:#292d32;--accent:#7aadff;--on-accent:#06142b;--danger:#ff8a80;--success:#62d39b;--shadow:none;--surface-2:color-mix(in srgb, var(--text) 8%, transparent);--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--danger-soft:color-mix(in srgb, var(--danger) 14%, transparent);--success-soft:color-mix(in srgb, var(--success) 15%, transparent)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}h1{letter-spacing:-.02em;margin:0 0 12px;font-size:28px;font-weight:700}h2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:20px 4px 8px;font-size:13px;font-weight:600}p{margin:0}.num{font-variant-numeric:tabular-nums}.icon{flex:none;display:block}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.8)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,14px)scale(.94)}10%,82%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,8px)scale(.98)}}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}}.screen{max-width:560px;padding:calc(14px + env(safe-area-inset-top)) 16px calc(var(--tabbar-height) + 36px + env(safe-area-inset-bottom));animation:fade .2s var(--ease) backwards;margin:0 auto}.screen>*{animation:rise .34s var(--ease) backwards}.screen>:nth-child(2){animation-delay:30ms}.screen>:nth-child(3){animation-delay:60ms}.screen>:nth-child(4){animation-delay:90ms}.screen>:nth-child(5){animation-delay:.12s}.screen>:nth-child(6){animation-delay:.15s}.screen>:nth-child(n+7){animation-delay:.18s}.screen-head{align-items:center;gap:6px;min-height:44px;margin-bottom:10px;display:flex}.screen-head h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:30px;overflow:hidden}.screen-head .icon-button{margin-left:-8px}.screen-head:has(.icon-button) h1{font-size:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:4px 14px}.card.form{padding:14px}.card:has(>.form){padding:14px}.card.due{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;display:flex}.card>.row:last-child{border-bottom:0}.row>.num{text-align:right}.row.muted,.muted-text{color:var(--muted);font-size:14px}.row.total{font-weight:600}.row.sub{color:var(--muted);padding:6px 0 6px 30px;font-size:14px}.note{margin:-4px 4px 12px}.card-foot{text-align:center;padding:10px 0;font-size:13px}.intro{margin:0 4px 14px}.hero{border:1px solid var(--line);background:radial-gradient(120% 140% at 100% 0%, var(--accent-soft), transparent 60%), var(--surface);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;gap:2px;margin-bottom:4px;padding:18px 18px 16px;display:flex}.hero-label{color:var(--muted);font-size:14px;font-weight:500}.hero-number{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(34px,11.5vw,46px);font-weight:700;line-height:1.12}.hero-number.negative{color:var(--danger)}.hero-unit{letter-spacing:.06em;color:var(--muted);font-size:13px;font-weight:600}.pill{color:var(--muted);background:var(--surface-2);animation:fade .3s var(--ease) backwards;border-radius:999px;flex:none;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.pill.waiting{color:var(--accent);background:var(--accent-soft)}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.dot.ok{background:var(--success)}.dot.failed{background:var(--danger)}.dot.waiting{background:var(--accent);animation:1.6s ease-in-out infinite pulse}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted);font-size:14px;font-weight:500}.hint{color:var(--muted);font-size:13px}.error{color:var(--danger);animation:rise .2s var(--ease) backwards;font-size:14px}.success{color:var(--success);animation:rise .2s var(--ease) backwards;font-size:14px}.preview{border-radius:var(--radius-sm);background:var(--accent-soft);animation:rise .2s var(--ease) backwards;padding:10px 12px;font-size:15px}.notice{overflow-wrap:anywhere;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);margin:0 0 10px;padding:10px 12px;font-size:14px}input,select{width:100%;min-width:0;min-height:48px;font:inherit;color:var(--text);background:var(--surface-2);border-radius:var(--radius-sm);appearance:none;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease);border:1.5px solid #0000;padding:10px 12px;font-size:16px}input::placeholder{color:var(--muted);opacity:.7}input.num{text-align:left}input.amount-big{letter-spacing:-.02em;min-height:62px;font-size:30px;font-weight:700}input[type=date],input[type=month]{text-align:left}input::-webkit-date-and-time-value{text-align:left}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23808893' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:38px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:0}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{min-height:46px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:transform .14s var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), opacity var(--dur) var(--ease);padding:10px 14px;font-weight:600}button:disabled{opacity:.5;cursor:default}button.primary{width:100%;min-height:50px;color:var(--on-accent);background:var(--accent);border-color:var(--accent)}button.danger{color:var(--danger)}button.wide{width:100%;margin-top:8px}button.primary:active:not(:disabled),button.wide:active:not(:disabled),.actions>button:active:not(:disabled){transform:scale(.975)}.chip:active,.cat-tile:active{transform:scale(.95)}.icon-button{width:40px;min-height:40px;color:var(--text);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.icon-button:active{background:var(--surface-2);transform:scale(.92)}.actions{gap:10px;padding:10px 0;display:flex}.actions>button{flex:1}.confirm p{margin-top:8px}.segmented{grid-template-columns:repeat(var(--count,2), minmax(0, 1fr));background:var(--surface-2);border-radius:var(--radius-sm);margin-bottom:4px;padding:3px;display:grid;position:relative}.segmented:before{content:"";width:calc((100% - 6px) / var(--count,2));background:var(--raised);transform:translateX(calc(var(--index,0) * 100%));transition:transform .3s var(--ease);border-radius:9px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 3px #00000024}.segmented button{min-height:38px;color:var(--muted);background:0 0;border:0;padding:6px 4px;font-size:14px;position:relative}.segmented button[aria-pressed=true]{color:var(--text)}.kinds{margin-bottom:12px}.categories{border:0;flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;display:flex}.categories legend{margin-bottom:6px;padding:0}.category-group{flex-direction:column;gap:6px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface-2);border-color:#0000;border-radius:999px;min-height:42px;padding:8px 16px;font-weight:500}.chip[aria-pressed=true]{color:var(--on-accent);background:var(--accent)}.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.cat-tile{background:var(--surface-2);border:1.5px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:92px;padding:10px 4px 8px;font-size:13px;font-weight:500;line-height:1.2;display:flex}.cat-tile small{color:var(--muted);font-size:12px;font-weight:400}.cat-icon{background:var(--raised);width:40px;height:40px;transition:transform .3s var(--spring);border-radius:50%;place-items:center;font-size:22px;line-height:1;display:grid}.cat-tile[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.cat-tile[aria-pressed=true] .cat-icon{transform:scale(1.12)}.cat-tile[aria-pressed=true] small{color:inherit}.cat-tile[aria-expanded=true]:not([aria-pressed=true]){border-color:var(--accent)}.subcats{animation:rise .22s var(--ease) backwards;padding-top:4px}.status{align-items:center;gap:10px;display:inline-flex}.row.setting{align-items:center}.setting-text{flex-direction:column;gap:2px;display:flex}.switch{background:var(--surface-2);border:0;border-radius:999px;flex:none;width:52px;min-height:32px;padding:0;position:relative}.switch:after{content:"";width:26px;height:26px;transition:transform .26s var(--spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch[aria-checked=true]{background:var(--success)}.switch[aria-checked=true]:after{transform:translate(20px)}.toast{left:50%;bottom:calc(var(--tabbar-height) + 28px + env(safe-area-inset-bottom));z-index:3;color:var(--bg);background:var(--text);pointer-events:none;animation:toast 2.4s var(--ease) forwards;border-radius:999px;align-items:center;gap:8px;padding:10px 18px 10px 14px;font-size:15px;font-weight:600;display:flex;position:fixed;box-shadow:0 8px 28px #00000040}.tabbar{z-index:2;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding:0 max(env(safe-area-inset-left), 6px) env(safe-area-inset-bottom) max(env(safe-area-inset-right), 6px);background:color-mix(in srgb, var(--surface) 80%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--tabbar-height);color:var(--muted);background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-size:11px;font-weight:600;display:flex}.tab .icon{transition:transform .3s var(--spring)}.tab:active .icon{transform:scale(.88)}.tab[aria-current=page]{color:var(--accent)}.tab[aria-current=page] .icon{animation:pop .38s var(--spring)}.tab-add-button{width:54px;height:54px;color:var(--on-accent);background:var(--accent);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 0 5px var(--bg);transition:transform .3s var(--spring), box-shadow var(--dur) var(--ease);border-radius:50%;place-items:center;margin-top:-18px;display:grid}.tab-add:active .tab-add-button{transform:scale(.92)}.tab-add[aria-current=page] .tab-add-button{box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 0 5px var(--bg), 0 0 0 7px var(--accent)}.tab-add[aria-current=page] .icon{animation:none;transform:rotate(90deg)}.act-day{animation:act-rise .3s var(--ease) backwards;animation-delay:calc(var(--i,0) * 40ms)}.act-day>h2{top:0;top:env(safe-area-inset-top);z-index:1;background:var(--bg);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin:0;padding:12px 4px 8px;position:sticky}.card.list{padding:0;overflow:hidden}.list-item{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;min-height:64px;transition:background-color .12s var(--ease);background:0 0;border-radius:0;align-items:center;gap:12px;padding:10px 14px;font-weight:400;display:flex}.list-item:last-child{border-bottom:0}.list-item:active{background:var(--surface-2)}.list-text{flex-direction:column;flex:1;min-width:0;display:flex}.list-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.act-amount{text-align:right;flex:none;max-width:50%;font-weight:600}.act-amount>span,.act-summary-amount>span{white-space:nowrap}.act-in{color:var(--success)}.act-bubble{width:40px;height:40px;color:var(--accent);background:var(--accent-soft);border-radius:50%;flex:none;place-items:center;display:grid}.act-bubble-emoji{background:var(--surface-2);font-size:20px;line-height:1}.act-bubble-income{color:var(--success);background:var(--success-soft)}.act-bubble-lg{width:56px;height:56px}.act-bubble-lg.act-bubble-emoji{font-size:28px}.act-empty{text-align:center;padding:48px 16px}.act-summary{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:8px 0 20px;display:flex}.act-summary-amount{font-size:30px;font-weight:700;line-height:1.2}.act-confirm{background:var(--danger-soft);border-radius:var(--radius);animation:act-rise .2s var(--ease) backwards;padding:14px}.act-confirm .actions{padding-bottom:0}@keyframes act-rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.act-day,.act-confirm{animation:none}}.lock-screen{--pin-key:72px;max-width:340px;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));text-align:center;animation:lock-in .32s var(--ease);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}.lock-icon{border-radius:18px}.lock-screen h1{margin:16px 0 6px;line-height:1.2}.lock-hint{min-height:2.8em}.lock-error{min-height:1.4em;margin:8px 0 14px}.lock-screen>button.primary{margin-top:20px}.lock-screen .card{text-align:left;width:100%;margin:8px 0 0}.lock-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pin-dots{justify-content:center;align-items:center;gap:14px;height:16px;margin-top:12px;display:flex}.pin-dots.shake{animation:pin-shake .4s var(--ease)}.pin-dot{border:1.5px solid var(--muted);border-radius:50%;width:14px;height:14px}.pin-dot.on{background:var(--accent);border-color:var(--accent);animation:pin-pop var(--dur) var(--spring)}.pin-dots.busy .pin-dot{animation:.7s ease-in-out infinite alternate pin-pulse}.pin-pad{grid-template-columns:repeat(3, var(--pin-key));gap:14px 24px;display:grid}.pin-key{width:var(--pin-key);height:var(--pin-key);background:var(--surface);touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease);border-radius:50%;place-items:center;padding:0;font-size:26px;font-weight:500;display:grid}.pin-key.ghost{background:0 0;border-color:#0000}.pin-key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pin-key:active:not(:disabled){background:var(--accent-soft);transition-duration:0s;transform:scale(.94)}@media (height<=720px){.lock-screen{--pin-key:60px;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.lock-icon{border-radius:14px;width:56px;height:56px}}@keyframes lock-in{0%{opacity:0;transform:translateY(8px)}}@keyframes pin-pop{0%{transform:scale(.4)}}@keyframes pin-shake{20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes pin-pulse{to{opacity:.3}}.month-picker{align-items:center;gap:8px;margin-bottom:12px;display:flex}.month-label{text-align:center;flex:1;min-width:0;font-size:17px;font-weight:600}@keyframes month-from-right{0%{opacity:0;transform:translate(12px)}}@keyframes month-from-left{0%{opacity:0;transform:translate(-12px)}}@keyframes month-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes month-grow{0%{transform:scaleX(0)}}.screen>.month-slide{animation:none}.month-slide[data-direction=next],.screen>.month-slide[data-direction=next]{animation:month-from-right .24s var(--ease) backwards}.month-slide[data-direction=prev],.screen>.month-slide[data-direction=prev]{animation:month-from-left .24s var(--ease) backwards}.month-section{animation:month-rise .3s var(--ease) backwards}.month-section:nth-child(2){animation-delay:60ms}.month-section:nth-child(3){animation-delay:.12s}.month-empty{padding:14px 0}.month-block{gap:10px;padding:8px 0;display:flex}.month-block+.month-block{border-top:1px solid var(--line)}.month-bubble{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:16px;line-height:1;display:grid}.month-body{flex:1;min-width:0}.month-head,.month-sub{justify-content:space-between;gap:12px;display:flex}.month-head{align-items:center;min-height:32px}.month-head>.num,.month-sub>.num{text-align:right}.month-sub{color:var(--muted);align-items:baseline;padding-top:6px;font-size:14px}.month-income .month-sub{padding-left:14px}.month-bar{background:var(--surface-2);border-radius:999px;height:4px;margin:2px 0;overflow:hidden}.month-bar>span{background:var(--accent);border-radius:inherit;transform-origin:0;height:100%;animation:month-grow .5s var(--ease) backwards;display:block}.month-income .month-bar>span{background:var(--success)}.month-total{border-top:1px solid var(--line)}.card.month-net{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;padding:14px;font-weight:600;display:flex}.month-net-value{text-align:right;margin-left:auto;font-size:20px;font-weight:700}.month-net-value[data-tone=positive]{color:var(--success)}.month-net-value[data-tone=negative]{color:var(--danger)}
