:root{--rail-w: 218px;--tabbar-h: 64px;--ease-out: cubic-bezier(.16, 1, .3, 1);--t-tap: .12s;--t-state: .16s;--t-enter: .24s;--t-measure: .5s}html[data-theme=light]{--bg: #fcfbf9;--panel: #ffffff;--panel2: #fbf6f0;--text: #2a2724;--muted: #7d7268;--line: #e6dacb;--line2: #efe6db;--accent: #e89b8b;--accent2: #d9a65c;--accent-fill: #b4573f;--accent-on: #ffffff;--focus: #b4573f;--over: #b33d2b;--shadow: 0 2px 14px rgba(150, 110, 90, .05);--track: #f0e7dd;--rail: #262430;--rail-text: #e9e5ec;--rail-muted: #9d98a8;--rail-item: #34313f}html[data-theme=dark]{--bg: #17171c;--panel: #222229;--panel2: #1c1c22;--text: #ece9e4;--muted: #97928a;--line: #2a2a32;--line2: #2a2a32;--accent: #e0735c;--accent2: #e3b35e;--accent-fill: #e0735c;--accent-on: #17171c;--focus: #e0735c;--over: #ef7a63;--shadow: none;--track: #2e2e37;--rail: #0e0e12;--rail-text: #ece9e4;--rail-muted: #8e8a80;--rail-item: #26262e}*{box-sizing:border-box}:where(a[href],button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.rail,.tabbar{--focus: var(--accent)}:where(button,[role=button],[role=switch],[role=radio],[role=tab],.seg,.modeseg,.rungs,.cal,.donut-wrap,.legend,.rail-nav,.tabbar,.emoji-picker,.accent-picker){-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}:where(.invite-code-display,.invite-code-char,.empty-list,.set-row-hint){-webkit-user-select:text;user-select:text}html,body,#root{height:100%;margin:0}body{font-family:Pretendard,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}html[data-theme-shift] *,html[data-theme-shift] *:before,html[data-theme-shift] *:after{transition:background-color .24s ease,color .24s ease,border-color .24s ease,outline-color .24s ease,box-shadow .24s ease,fill .24s ease,stroke .24s ease!important}.app{display:flex;min-height:100%;align-items:flex-start}.rail{width:var(--rail-w);flex:none;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;padding:24px 16px}.rail-logo{display:flex;align-items:center;gap:10px;padding:0 8px;margin-bottom:26px}.rail-logo div{width:34px;height:34px;border-radius:10px;background:var(--rail-item);display:flex;align-items:center;justify-content:center;font-size:16px}.rail-logo b{font-size:15px}.rail-nav{display:flex;flex-direction:column;gap:3px;flex:1}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:11px;font-size:13.5px;color:var(--rail-muted);font-weight:500;cursor:pointer;text-decoration:none}.nav-item .ic{flex:none;width:17px;height:17px}.nav-item{transition:background-color var(--t-state) ease,color var(--t-state) ease}.nav-item:focus-visible{background:color-mix(in srgb,var(--rail-item) 60%,transparent);color:var(--rail-text)}@media (hover: hover){.nav-item:hover{background:color-mix(in srgb,var(--rail-item) 60%,transparent);color:var(--rail-text);outline:none}}.nav-item.on{background:var(--rail-item);color:#fff;font-weight:600}.theme-btn{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--rail-item);color:var(--rail-text);border:none;border-radius:11px;padding:11px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.theme-btn .theme-ic{flex:none;transform:translateY(.5px)}.rail-resizer{width:10px;height:100vh;flex:none;position:sticky;top:0;z-index:2;border:none;padding:0;background:transparent;cursor:col-resize}.rail-resizer:after{content:"";display:block;width:2px;height:100%;margin:0 auto;background:transparent;transition:background-color .12s}.rail-resizer:focus-visible:after{background:var(--accent)}@media (hover: hover){.rail-resizer:hover:after{background:var(--accent)}}.rail-resizer:focus-visible{outline:none}.main{flex:1;min-width:0;padding:24px 32px;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:10px;margin-bottom:20px}.month{display:flex;align-items:center;gap:14px;background:var(--panel);border-radius:999px;padding:9px 16px;font-weight:600;font-size:14px;box-shadow:var(--shadow)}.month .arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;margin:-4px 0;border:none;border-radius:8px;padding:0;background:transparent;color:var(--muted);font:inherit;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--t-tap) ease,color var(--t-tap) ease,transform var(--t-tap) ease}.arrow-ic{flex:none}.arrow-ic.prev{transform:rotate(90deg)}.arrow-ic.next{transform:rotate(-90deg)}.month .arrow:focus-visible{background:var(--panel2);color:var(--text)}@media (hover: hover){.month .arrow:hover{background:var(--panel2);color:var(--text);outline:none}}.month .arrow:active{transform:scale(.88)}.month b{min-width:5.5em;text-align:center}.modeseg{display:flex;background:var(--panel);border-radius:999px;padding:4px;box-shadow:var(--shadow);margin-left:auto;margin-right:12px}.modeseg button{border:none;background:transparent;color:var(--muted);font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer;font-family:inherit;transition:background-color var(--t-state) ease,color var(--t-state) ease}.modeseg button:focus-visible:not(.on){color:var(--text)}@media (hover: hover){.modeseg button:hover:not(.on){color:var(--text);outline:none}}.modeseg button.on{background:var(--accent-fill);color:var(--accent-on)}.theme-btn.sm{display:none;margin-left:auto;background:var(--panel);color:var(--text);padding:9px 13px;box-shadow:var(--shadow)}.content{flex:1;width:100%;max-width:880px;margin:0 auto}.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 16px}.month-caption{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.01em}.book-divider{height:1px;background:var(--line);margin:28px 0}.privacy-badge{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;padding:2px 8px 2px 6px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.01em;line-height:1;white-space:nowrap}.privacy-badge.compact{padding:3px;gap:0}.privacy-badge .pb-lock{color:var(--accent);flex:none}.type-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:700;vertical-align:middle}.type-tag.fixed{background:color-mix(in srgb,var(--accent2) 22%,transparent);color:var(--accent2)}.type-tag.variable{background:color-mix(in srgb,#7897be 20%,transparent);color:#6b88ad}.type-tag.leak{background:color-mix(in srgb,#d0685e 20%,transparent);color:#d0685e}.card{background:var(--panel);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow)}.lbl{font-size:12px;color:var(--muted);font-weight:600;margin:0 0 6px}.rail-foot{margin-top:12px;background:var(--rail-item);border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.rail-me{font-size:12.5px;font-weight:600;color:var(--rail-text)}.rail-signout{background:none;border:none;color:var(--rail-muted);font-size:11.5px;cursor:pointer;font-family:inherit}.offline-banner{background:var(--accent-fill);color:var(--accent-on);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:600;margin-bottom:14px;animation:banner-in var(--t-enter) var(--ease-out)}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.auth-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;gap:14px;background:var(--bg);color:var(--text)}.auth-logo{font-size:44px}.auth-mark{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:20px;background:var(--panel2);color:var(--accent)}.auth-title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0}.auth-sub{font-size:14px;color:var(--muted);line-height:1.7;max-width:420px;margin:0}.auth-sub code{background:var(--panel2);padding:1px 6px;border-radius:6px;font-size:12.5px}.auth-btn{margin-top:8px;background:var(--accent-fill);color:var(--accent-on);border:none;border-radius:14px;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}.auth-btn.ghost{background:var(--panel2);color:var(--text)}.auth-divider{display:flex;align-items:center;gap:12px;width:100%;max-width:300px;margin:6px auto 0;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-form{width:100%;max-width:300px;display:flex;flex-direction:column;gap:8px;margin:0 auto}.auth-form .auth-btn{width:100%}.auth-fineprint{font-size:11.5px;color:var(--muted);margin:2px 0 0;line-height:1.5}.auth-password-reset{align-self:flex-end;margin:-2px 0 2px;border:none;padding:2px 0;background:transparent;color:var(--accent);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}.auth-password-reset:focus-visible{color:var(--text);text-decoration:underline}@media (hover: hover){.auth-password-reset:hover{color:var(--text);outline:none;text-decoration:underline}}.auth-password-reset:disabled{cursor:wait;opacity:.6}.auth-reset-sent{margin:0;padding:8px 10px;border-radius:9px;background:#74b58524;color:var(--text);font-size:12px;font-weight:600;line-height:1.45}.onboard-mascots{display:flex;align-items:flex-end;justify-content:center;height:56px;margin-bottom:4px}.onboard-mascot{font-size:44px;line-height:1;display:inline-block}.onboard-mascots .lead{transform:rotate(-7deg);margin-right:-6px;animation:mascot-lead .5s cubic-bezier(.22,1,.36,1)}.onboard-mascots .trail{transform:rotate(7deg);margin-left:-6px;animation:mascot-trail .55s cubic-bezier(.22,1,.36,1)}.onboard-mascots.solo .lead{transform:none;margin:0;animation:mascot-solo .5s cubic-bezier(.22,1,.36,1)}.auth-linkbtn{margin-top:4px;background:none;border:none;color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:6px}.auth-linkbtn:focus-visible{color:var(--text);text-decoration:underline}@media (hover: hover){.auth-linkbtn:hover:not(:disabled){color:var(--text);text-decoration:underline;outline:none}}.auth-linkbtn:disabled{opacity:.6;cursor:default}.invite-code-in{text-align:center;font-size:20px;font-weight:800;letter-spacing:.28em;text-transform:uppercase}@media (prefers-reduced-motion: reduce){.onboard-mascots .lead,.onboard-mascots .trail,.onboard-mascots.solo .lead{animation:none}}.couple-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 18px 24px}.couple-mascots{display:flex;align-items:flex-end;justify-content:center;height:60px;margin-bottom:14px}.couple-mascot{font-size:46px;line-height:1;display:inline-block}.couple-mascots .lead{transform:rotate(-7deg);margin-right:-6px;animation:mascot-lead .5s cubic-bezier(.22,1,.36,1)}.couple-mascots .trail{transform:rotate(7deg);margin-left:-6px;animation:mascot-trail .55s cubic-bezier(.22,1,.36,1)}.couple-hero.waiting .couple-mascots .lead{transform:rotate(9deg);margin-right:2px;animation:mascot-lean-in .5s cubic-bezier(.22,1,.36,1)}.couple-seat{width:44px;height:44px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--muted) 75%,transparent);animation:couple-seat-in .55s cubic-bezier(.22,1,.36,1)}.couple-hero-name{margin:0 0 7px;font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--text);word-break:keep-all;text-wrap:balance}.couple-hero-pair{margin:0;font-size:13px;font-weight:600;color:var(--muted);line-height:1.5;word-break:keep-all}.couple-rename{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-14px 0 -14px 2px;vertical-align:middle;padding:0;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:10px;transition:color var(--t-tap) ease,background-color var(--t-tap) ease}@media (hover: hover){.couple-rename:hover{color:var(--text);background:var(--panel2)}}.couple-rename:focus-visible{color:var(--text);outline:2px solid var(--accent-fill);outline-offset:-4px}.couple-rename-glyph{display:block}.couple-name-in{width:100%;max-width:100%;text-align:center;background:var(--panel2);border:none;border-radius:10px;padding:2px 8px;font-family:inherit;outline:none;box-shadow:0 0 0 2px var(--accent-fill)}.couple-name-in:disabled{opacity:.6}.couple-join{margin:0 7px;font-weight:500;opacity:.75}.couple-hero .invite-panel{align-self:stretch;margin-top:20px}@keyframes mascot-lean-in{0%{opacity:0;transform:translateY(6px) rotate(0)}to{opacity:1;transform:translateY(0) rotate(9deg)}}@keyframes couple-seat-in{0%{opacity:0;transform:scale(.8)}30%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.couple-mascots .lead,.couple-mascots .trail,.couple-hero.waiting .couple-mascots .lead,.couple-seat{animation:none}}.invite-panel{margin-top:12px;padding-top:14px;border-top:1px solid var(--line2)}.invite-lead{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.5}.invite-code-display{display:flex;gap:6px;justify-content:center;margin-bottom:12px}.invite-code-char{width:34px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--panel2);border:1.5px solid var(--line);font-size:20px;font-weight:800;color:var(--text)}.invite-actions{display:flex;gap:8px}.invite-btn{flex:1;padding:11px;border-radius:12px;border:1.5px solid var(--line);background:var(--panel2);color:var(--text);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}.invite-btn.primary{background:var(--accent-fill);color:var(--accent-on);border-color:transparent}.invite-btn:disabled{opacity:.6;cursor:default}.invite-manage{display:flex;justify-content:center;gap:18px;margin-top:12px}.invite-linkbtn{background:none;border:none;color:var(--muted);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:4px}.invite-linkbtn:focus-visible{color:var(--text);text-decoration:underline}@media (hover: hover){.invite-linkbtn:hover:not(:disabled){color:var(--text);text-decoration:underline;outline:none}}.invite-linkbtn.danger{color:#d0685e}@media (hover: hover){.invite-linkbtn.danger:hover:not(:disabled){color:#d0685e}}.invite-linkbtn:disabled{opacity:.6;cursor:default}.couple-leave{margin-top:14px;background:none;border:none;color:#d0685e;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px 0}@media (hover: hover){.couple-leave:hover{text-decoration:underline}}.setup-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:8px;text-align:left;margin-top:8px}.setup-form>label{font-size:12px;font-weight:700;color:var(--muted);margin-top:6px}.setup-row{display:flex;gap:8px}.setup-row .modal-in.emoji{width:56px;flex:none;text-align:center}.emoji-picker{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}.emoji-chip{width:42px;height:42px;padding:0;border-radius:12px;border:1.5px solid var(--line);background:var(--panel2);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .12s,box-shadow .12s}.emoji-chip.selected{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent) inset}.setup-slug-picker{display:flex;gap:8px;margin:2px 0}.setup-slug-chip{flex:1;padding:10px;border-radius:12px;border:1.5px solid var(--line);background:var(--panel2);font-size:14px;font-weight:700;cursor:pointer;transition:border-color .12s,box-shadow .12s}.setup-slug-chip.selected{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent) inset}.setup-hint{font-size:11.5px;color:var(--muted);margin:0 0 4px}.setup-err{font-size:12.5px;color:#e0735c;margin:4px 0 0}.setup-form .auth-btn{margin-top:12px;width:100%}.addbtn,.auth-btn,.empty-cta,.modal-btn,.invite-btn,.cat-addbtn,.theme-btn,.recur-prompt button,.recur-actions button,.cat-arch,.cat-delete,.modal-del.solid{transition:filter var(--t-tap) ease,background-color var(--t-tap) ease,color var(--t-tap) ease,transform var(--t-tap) ease}@media (hover: hover){.addbtn:hover,.auth-btn:hover:not(:disabled),.empty-cta:hover,.modal-btn:hover,.invite-btn:hover:not(:disabled),.cat-addbtn:hover,.theme-btn:hover,.recur-prompt button:hover,.recur-actions button:hover,.cat-arch:hover,.cat-delete:hover,.modal-del.solid:hover{filter:brightness(1.06)}}.addbtn:active,.auth-btn:active:not(:disabled),.empty-cta:active,.modal-btn:active,.invite-btn:active:not(:disabled),.cat-addbtn:active,.theme-btn:active,.recur-prompt button:active,.recur-actions button:active,.cat-arch:active,.cat-delete:active,.modal-del.solid:active{transform:scale(.97);filter:brightness(.98)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-head .page-title{margin:0}.addbtn{background:var(--accent-fill);color:var(--accent-on);border:none;border-radius:12px;padding:11px 16px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap}.card+.card{margin-top:14px}.card.stat .big{font-size:32px;font-weight:700;letter-spacing:-.02em;margin:6px 0 0}.card.stat .sub{font-size:12.5px;color:var(--muted);margin:4px 0 0}.sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sec-h h3{font-size:14.5px;font-weight:700;margin:0}.sec-title{display:flex;align-items:baseline;gap:6px}.sec-h .meta{font-size:12px;color:var(--muted)}.sec-meta{display:flex;align-items:center;gap:10px}.link-add{background:none;border:none;color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;word-break:keep-all}.link-add.with-ic{display:inline-flex;align-items:center;gap:6px}.link-add .link-ic{flex:none}.link-add .link-ic.spinning{animation:glyph-spin 1.1s linear infinite}@keyframes glyph-spin{to{transform:rotate(360deg)}}.filter-swap{animation:list-swap .14s ease}@keyframes list-swap{0%{opacity:.32}to{opacity:1}}@media (prefers-reduced-motion: reduce){.filter-swap{animation:none}}.list{display:flex;flex-direction:column}.expense-day+.expense-day{margin-top:16px}.expense-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 12px;border-radius:8px;background:var(--panel2);color:var(--text);font-size:14px;font-weight:800;letter-spacing:-.01em}.expense-day-total{font-size:13.5px;font-weight:800;white-space:nowrap}.row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line2)}.row:last-child{border-bottom:none}.row.clickable{cursor:pointer;border-radius:10px;transition:background-color var(--t-state) ease,transform var(--t-tap) ease}.row.clickable:focus-visible{background:var(--panel2);outline:none}@media (hover: hover){.row.clickable:hover{background:var(--panel2);outline:none}}.row.clickable:focus-visible{box-shadow:0 0 0 2px var(--accent)}.row.clickable:active{transform:scale(.995)}.cdot{width:9px;height:9px;border-radius:50%;flex:none}.rplace{flex:1;min-width:0}.rplace b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rplace span{font-size:11px;color:var(--muted)}.ramt{font-weight:700;font-size:14px;white-space:nowrap}.empty-list{text-align:center;color:var(--muted);font-size:13px;padding:32px 0}.empty-book{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 16px 22px}.empty-mascots{display:flex;align-items:flex-end;justify-content:center;height:52px;margin-bottom:14px}.empty-mascot{font-size:38px;line-height:1;display:inline-block}.empty-mascots .lead{transform:rotate(-7deg);margin-right:-6px;animation:mascot-lead .5s cubic-bezier(.22,1,.36,1)}.empty-mascots .trail{transform:rotate(7deg);margin-left:-6px;animation:mascot-trail .55s cubic-bezier(.22,1,.36,1)}.empty-mascots.solo .lead{transform:none;margin:0;animation:mascot-solo .5s cubic-bezier(.22,1,.36,1)}.empty-head{margin:0 0 5px;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--text)}.empty-sub{margin:0 0 18px;font-size:12.5px;line-height:1.5;color:var(--muted);max-width:260px}.empty-cta{background:var(--accent-fill);color:var(--accent-on);border:none;border-radius:12px;padding:11px 18px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}@keyframes mascot-lead{0%{opacity:0;transform:translateY(6px) rotate(-16deg)}to{opacity:1;transform:translateY(0) rotate(-7deg)}}@keyframes mascot-trail{0%{opacity:0;transform:translateY(6px) rotate(16deg)}20%{opacity:0;transform:translateY(6px) rotate(16deg)}to{opacity:1;transform:translateY(0) rotate(7deg)}}@keyframes mascot-solo{0%{opacity:0;transform:translateY(6px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.empty-mascots .lead,.empty-mascots .trail,.empty-mascots.solo .lead{animation:none}}.modal-ov{position:fixed;top:0;right:0;bottom:0;left:0;background:#1412186b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:overlay-in var(--t-enter) ease}.modal{width:520px;max-width:100%;background:var(--panel);border-radius:22px;padding:28px;box-shadow:0 24px 60px #00000047;max-height:90vh;overflow-y:auto;animation:dialog-in var(--t-enter) var(--ease-out);transition:transform var(--t-enter) var(--ease-out),filter var(--t-enter) ease}.modal.stacked{transform:scale(.985);filter:brightness(.94)}.modal-ov.closing{animation:overlay-out .14s ease forwards;pointer-events:none}.modal-ov.closing .modal{animation:dialog-out .14s ease forwards}@keyframes overlay-in{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}@keyframes overlay-out{0%{opacity:1}to{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dialog-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(4px) scale(.99)}}.modal h3{margin:0 0 3px;font-size:18px;font-weight:700}.modal-sub{margin:0 0 18px;font-size:12.5px;color:var(--muted)}.modal-field{margin-bottom:14px}.modal-field>label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:7px}.modal-in{width:100%;background:var(--panel2);border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;font-size:14px;color:var(--text);font-family:inherit;outline:none}.modal-in,.bcat-in,.date-picker-trigger{transition:border-color var(--t-state) ease,box-shadow var(--t-state) ease}.modal-in:focus,.bcat-in:focus,.date-picker-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.modal-in.bad,.date-picker.bad .date-picker-trigger{border-color:#e0735c}.modal-in.bad:focus{box-shadow:0 0 0 3px color-mix(in srgb,#e0735c 20%,transparent)}.date-picker{position:relative}.date-picker-trigger{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel2);color:var(--text);font:inherit;font-size:12.5px;font-weight:600;text-align:left;cursor:pointer}.date-picker-trigger:focus-visible{border-color:var(--accent);outline:none}@media (hover: hover){.date-picker-trigger:hover{border-color:var(--accent);outline:none}}.date-picker.bad .date-picker-trigger{border-color:#e0735c}.date-picker-icon{flex:none;color:var(--accent)}.date-picker-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:20;width:248px;max-width:calc(100vw - 48px);padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 12px 32px #1814102e;transform-origin:top right;animation:pop-down var(--t-state) var(--ease-out)}.date-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.date-picker-head strong{font-size:12px}.date-picker-head button{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border:none;border-radius:7px;padding:0;background:transparent;color:var(--muted);font:inherit;line-height:1;cursor:pointer}.date-picker-head button:focus-visible{background:var(--panel2);color:var(--text)}@media (hover: hover){.date-picker-head button:hover{background:var(--panel2);color:var(--text);outline:none}}.date-picker-weekdays,.date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.date-picker-weekdays{margin-bottom:3px;color:var(--muted);font-size:9px;font-weight:700}.date-picker-weekdays span:first-child{color:#e0735c}.date-picker-weekdays span:last-child{color:var(--accent2)}.date-picker-days{gap:1px}.date-picker-day{height:28px;border:none;border-radius:7px;padding:0;background:transparent;color:var(--text);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;transition:background-color var(--t-tap) ease,color var(--t-tap) ease,box-shadow var(--t-tap) ease,transform var(--t-tap) ease}.date-picker-day:active{transform:scale(.9)}.date-picker-day:focus-visible{background:var(--panel2)}@media (hover: hover){.date-picker-day:hover{background:var(--panel2);outline:none}}.date-picker-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.date-picker-day.selected{background:var(--accent-fill);color:var(--accent-on);box-shadow:none}.date-picker-today{width:100%;margin-top:8px;border:none;border-top:1px solid var(--line2);padding:8px 0 0;background:transparent;color:var(--accent);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}.date-picker-today:focus-visible{color:var(--text)}@media (hover: hover){.date-picker-today:hover{color:var(--text);outline:none}}.autocomplete{position:relative}.ac-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;margin:0;padding:4px;list-style:none;background:var(--panel);border:1.5px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #00000024;max-height:208px;overflow-y:auto;transform-origin:top center;animation:pop-down var(--t-state) var(--ease-out)}@keyframes pop-down{0%{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ac-item{display:block;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:9px 11px;font-size:13.5px;font-weight:500;color:var(--text);font-family:inherit;cursor:pointer}@media (hover: hover){.ac-item:hover{background:var(--panel2)}}.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-cats{display:flex;flex-wrap:wrap;gap:6px}.modal-cat{padding:7px 11px;border-radius:99px;border:1.5px solid var(--line);background:var(--panel2);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px;font-family:inherit}.modal-cat i{width:8px;height:8px;border-radius:50%;transition:transform var(--t-state) var(--ease-out)}.modal-cat{transition:border-color var(--t-state) ease,color var(--t-state) ease,background-color var(--t-state) ease,transform var(--t-tap) ease}.modal-cat:focus-visible{color:var(--text)}@media (hover: hover){.modal-cat:hover{color:var(--text);outline:none}}.modal-cat:active{transform:scale(.96)}.modal-cat.on{background:var(--panel);border-color:var(--text);color:var(--text)}.modal-cat.on i{transform:scale(1.25)}.modal-foot{display:flex;gap:10px;margin-top:20px;align-items:center}.modal-btn{flex:1;padding:13px;border-radius:13px;border:none;font-size:14.5px;font-weight:700;cursor:pointer;font-family:inherit}.modal-btn.save{background:var(--accent-fill);color:var(--accent-on)}.modal-btn.cancel{background:var(--panel2);color:var(--muted);flex:none;padding:13px 18px}.modal-del{background:transparent;color:#d0685e;border:none;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;flex:none;padding:13px 6px}.recurring-confirm-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#14121857;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlay-in var(--t-state) ease}.recurring-confirm{width:360px;max-width:100%;border-radius:16px;padding:22px;background:var(--panel);box-shadow:0 20px 48px #00000042;animation:dialog-in var(--t-state) var(--ease-out)}.recurring-confirm h3{margin:0;font-size:17px}.recurring-confirm p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:6px}.cal-dow span{text-align:center;font-size:11px;color:var(--muted);font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-cell{aspect-ratio:1;min-width:0;border:none;background:var(--panel2);border-radius:10px;padding:5px 6px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-family:inherit;color:var(--text);position:relative;outline:2px solid transparent;transition:background-color var(--t-state) ease,outline-color var(--t-state) ease,transform var(--t-tap) ease}.cal-cell.empty{background:transparent}.cal-cell.clickable{cursor:pointer}.cal-cell.clickable:focus-visible{background:var(--line2);outline-color:color-mix(in srgb,var(--accent) 45%,transparent)}@media (hover: hover){.cal-cell.clickable:hover{background:var(--line2);outline-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.cal-cell.clickable:active{transform:scale(.94)}.cal-cell.on{outline-color:var(--accent)}@media (hover: hover){.cal-cell.on:hover{outline-color:var(--accent)}}.cal-day{font-size:11px;line-height:1.15;color:var(--muted)}.cal-amt{font-size:10.5px;line-height:1.15;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-detail{transform-origin:top center;animation:detail-in var(--t-enter) var(--ease-out)}@keyframes detail-in{0%{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.cal-ev{margin-top:auto;align-self:flex-end;display:flex;gap:1px;font-size:12px;line-height:1}.cal-ev i{font-style:normal}@media (max-width: 520px){.cal-cell{aspect-ratio:1 / 1.3;gap:1px;padding:5px 2px}.cal-amt{font-size:10px}.cal-ev{font-size:11px}}.modal-confirm{display:flex;gap:10px;margin-top:20px;align-items:center}.modal-confirm>span{flex:1;font-size:14px;font-weight:600}.modal-del.solid{background:#d0685e;color:#fff;border-radius:13px;padding:13px 18px;font-size:14.5px;font-weight:700}.ac-item,.date-picker-head button,.date-picker-today,.cat-drag-handle,.link-add,.toast-action,.invite-linkbtn,.auth-linkbtn,.rail-signout,.auth-password-reset,.couple-leave,.tab{transition:background-color var(--t-tap) ease,color var(--t-tap) ease,opacity var(--t-tap) ease,transform var(--t-tap) ease}.link-add:focus-visible:not(:disabled),.rail-signout:focus-visible{color:var(--text)}@media (hover: hover){.link-add:hover:not(:disabled),.toast-action:hover,.rail-signout:hover{color:var(--text);outline:none}}.tab:active .ic,.link-add:active{transform:scale(.94)}.tab .ic{transition:transform var(--t-state) var(--ease-out)}.toast-host{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;width:max-content;max-width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;background:var(--text);color:var(--panel);padding:11px 16px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:0 8px 24px #00000038;animation:toast-in .18s var(--ease-out)}.toast.leaving{animation:toast-out .15s ease forwards}.toast-action{background:none;border:none;color:var(--accent2);font-family:inherit;font-size:13.5px;font-weight:800;cursor:pointer;padding:0}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(6px) scale(.98)}}@media (min-width: 761px){.toast-host{bottom:28px}}.seg{display:flex;background:var(--panel2);border-radius:12px;padding:4px;gap:4px}.seg button{flex:1;padding:9px;border-radius:9px;border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background-color var(--t-state) ease,color var(--t-state) ease,transform var(--t-tap) ease}.seg button:focus-visible:not(.on){color:var(--text);background:color-mix(in srgb,var(--line) 55%,transparent)}@media (hover: hover){.seg button:hover:not(.on){color:var(--text);background:color-mix(in srgb,var(--line) 55%,transparent);outline:none}}.seg button:active{transform:scale(.97)}.seg button.on{background:var(--accent-fill);color:var(--accent-on)}.seg-iconic button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.seg-iconic button svg{flex:none}.seg.sm{flex:none;padding:3px;border-radius:10px;gap:3px}.seg.sm button{flex:none;padding:6px 12px;border-radius:7px;font-size:12px}.cat-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2)}.cat-row:last-of-type{border-bottom:none}.cat-row.dragging{opacity:.45}.cat-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.cat-row.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.cat-drag-handle{width:24px;height:28px;flex:none;border:none;border-radius:7px;padding:0;background:transparent;color:var(--muted);font-family:inherit;font-size:18px;line-height:1;cursor:grab;touch-action:none}.cat-drag-handle:focus-visible{background:var(--panel2);color:var(--text)}@media (hover: hover){.cat-drag-handle:hover{background:var(--panel2);color:var(--text);outline:none}}.cat-drag-handle:active{cursor:grabbing}.cat-row input[type=color]{width:28px;height:28px;border:none;border-radius:40%;corner-shape:squircle;background:none;padding:0;cursor:pointer;flex:none}.cat-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.cat-row input[type=color]::-webkit-color-swatch{border:none;border-radius:40%;corner-shape:squircle}.cat-row input[type=color]::-moz-color-swatch{border:none;border-radius:40%;corner-shape:squircle}.cat-name{flex:1;border:none;background:transparent;font-size:13.5px;font-weight:600;color:var(--text);font-family:inherit;outline:none}.cat-name:focus-visible{background:var(--panel2);box-shadow:0 0 0 2px var(--accent-fill);border-radius:8px}.cat-name.muted{color:var(--muted)}.cat-arch,.cat-addbtn,.cat-delete{background:var(--panel2);border:none;border-radius:9px;padding:7px 12px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit;flex:none}.cat-addbtn{background:var(--accent-fill);color:var(--accent-on)}.cat-delete{color:#d0685e}.confirm-modal{width:360px;max-width:100%;border-radius:16px;padding:22px;background:var(--panel);box-shadow:0 24px 60px #00000047}.confirm-modal h3{margin:0;font-size:17px}.confirm-modal p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.confirm-modal button:disabled{cursor:wait;opacity:.65}.bar{height:9px;border-radius:99px;background:var(--track);overflow:hidden}.bar i{display:block;height:100%;width:100%;transform-origin:left center;transition:transform var(--t-measure) var(--ease-out),background-color .3s ease}.bcat{padding:12px 0;border-bottom:1px solid var(--line2)}.bcat:last-child{border-bottom:none}.bcat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.bcat-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.bcat-amt{font-size:12.5px;color:var(--muted);font-weight:600}.bcat-amt.over{color:#e0735c}.bcat-in{margin-top:8px;width:100%;background:var(--panel2);border:1.5px solid var(--line);border-radius:10px;padding:8px 11px;font-size:13px;color:var(--text);font-family:inherit;outline:none}.bcat-in:focus{border-color:var(--accent)}.overview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ovcard{background:var(--panel2);border-radius:14px;padding:14px}.ovcard .who{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted)}.ovcard .amt{font-size:18px;font-weight:800;margin:6px 0 2px}.ovcard .lk{font-size:10.5px;color:var(--muted)}.recur-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:14px;font-size:13px;font-weight:600}.recur-prompt button{background:var(--accent-fill);color:var(--accent-on);border:none;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;flex:none}.recur-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line2)}.recur-info b{display:block;font-size:13.5px;font-weight:600}.recur-info span{font-size:11.5px;color:var(--muted)}.recur-actions{display:flex;gap:6px;flex:none}.recur-actions button{background:var(--panel2);border:none;border-radius:9px;padding:7px 11px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit}.recur-confirm{align-self:center;font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}.recur-actions button.danger{background:var(--over);color:#fff}.recur-add{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}.donut-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.donut{flex:none}.donut.pickable .donut-seg{cursor:pointer}.donut-seg{transition:stroke-dasharray var(--t-measure) var(--ease-out),stroke-dashoffset var(--t-measure) var(--ease-out),stroke .3s ease,opacity var(--t-state) ease}.donut-seg.off{opacity:.32}.donut-center{fill:var(--text);font-size:15px;font-weight:800}.legend{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2px 6px;min-width:180px}.leg{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.4;padding:5px 8px;border:1.5px solid transparent;border-radius:9px}button.leg{background:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:border-color var(--t-state) ease,background-color var(--t-state) ease,transform var(--t-tap) ease}@media (hover: hover){button.leg:hover{background:var(--panel2)}}button.leg:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}button.leg:active{transform:scale(.985)}.leg.on{border-color:color-mix(in srgb,var(--chip) 65%,var(--text));background:color-mix(in srgb,var(--chip) 14%,var(--panel))}.leg i{width:9px;height:9px;border-radius:3px;flex:none}.leg .nm{flex:1;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leg.on .nm{opacity:1;font-weight:600}@media (max-width: 520px){.legend{grid-template-columns:1fr}.leg{padding:7px 8px}}.leg .vl{font-weight:700;font-size:11.5px}.insights{display:flex;flex-direction:column;gap:8px}.insight{display:flex;gap:12px;align-items:baseline;font-size:13px;line-height:1.5;padding:10px 12px;border-radius:11px;background:var(--panel2)}.insight-label{flex:none;width:7em;color:#796e65;font-size:11.5px;font-weight:700;letter-spacing:.01em;word-break:keep-all}.insight-text{min-width:0}.insight.warn .insight-label{color:#ac5139}.insight.good .insight-label{color:#3e7951}html[data-theme=dark] .insight.warn .insight-label{color:#f0a58d}html[data-theme=dark] .insight.good .insight-label{color:#8fd0a4}@media (max-width: 400px){.insight{display:block}.insight-label{display:block;width:auto;margin-bottom:2px}}.insight.warn{background:#e0735c1f}.insight.good{background:#74b58524}.detail-tabs{margin-bottom:12px}.event-list{display:flex;flex-direction:column}.event-row{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line2)}.event-row:last-child{border-bottom:none}.event-when{flex:none;width:80px;padding-top:1px;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.event-body{min-width:0;display:flex;flex-direction:column;gap:2px}.event-body b{font-size:13.5px;font-weight:700;overflow-wrap:anywhere}.event-body span{font-size:11.5px;color:var(--muted)}.tabbar{display:none}@media (prefers-reduced-motion: reduce){.modal,.recurring-confirm,.date-picker-popover,.ac-list,.day-detail,.offline-banner,.toast{animation-name:fade-in;animation-duration:var(--t-state)}.modal-ov.closing .modal,.toast.leaving{animation-name:fade-out;animation-duration:.12s}.modal-ov{animation-name:fade-in}.bar i,.donut-seg{transition-duration:.01ms;transition-delay:0ms}.month .arrow:active,.row.clickable:active,.cal-cell.clickable:active,.seg button:active,.modal-cat:active,.date-picker-day:active,.tab:active .ic,.link-add:active,.addbtn:active,.auth-btn:active:not(:disabled),.empty-cta:active,.modal-btn:active,.invite-btn:active:not(:disabled),.cat-addbtn:active,.theme-btn:active,.recur-prompt button:active,.recur-actions button:active,.cat-arch:active,.cat-delete:active,.modal-del.solid:active,.modal-cat.on i{transform:none}.modal.stacked{transform:none}.link-add .link-ic.spinning{animation:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@media (max-width: 760px){.rail,.rail-resizer{display:none}.main{padding:18px 16px calc(var(--tabbar-h) + 18px)}.theme-btn.sm{display:inline-flex;align-items:center}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--tabbar-h);background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0);z-index:30}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:10px;font-weight:700}.tab .ic{width:20px;height:20px}.tab.on{color:var(--accent)}}.settings-page .set-sec+.set-sec{margin-top:30px}.set-sec-title{display:flex;align-items:center;gap:12px;margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted)}.set-sec-title:after{content:"";flex:1;height:1px;background:var(--line)}.set-row-hint,.set-row-label,.rung-text span,.preview-note,.set-exp-value{word-break:keep-all;overflow-wrap:break-word}.set-sec-title+.card,.set-sec-title+.couple-hero{margin-top:12px}.set-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line2)}.set-row:last-child{border-bottom:none;padding-bottom:0}.set-row:first-child{padding-top:0}.set-row-label{font-size:13.5px;font-weight:600;color:var(--text)}.set-row-hint{font-size:12px;line-height:1.5;color:var(--muted);max-width:42ch}.set-row-control{flex:none;display:flex;align-items:center;gap:8px}.set-stack{padding:12px 0 0;border-top:1px solid var(--line2);margin-top:11px}.set-sub-h{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--muted)}.set-name-in{width:190px;max-width:46vw}.set-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color var(--t-state) ease,background-color var(--t-state) ease,transform var(--t-tap) ease}@media (hover: hover){.set-btn:hover:not(:disabled){border-color:var(--accent)}}.set-btn:active:not(:disabled){transform:scale(.97)}.set-btn:disabled{opacity:.5;cursor:default}.set-btn.danger{color:var(--over);border-color:color-mix(in srgb,var(--over) 35%,var(--line))}@media (hover: hover){.set-btn.danger:hover:not(:disabled){border-color:var(--over);background:color-mix(in srgb,var(--over) 10%,transparent)}}.set-exp+.set-exp{border-top:1px solid var(--line2)}.set-exp-head{display:flex;align-items:center;gap:10px;width:100%;padding:13px 0;border:none;background:none;font-family:inherit;text-align:left;cursor:pointer;color:var(--text)}.set-exp:first-child .set-exp-head{padding-top:0}@media (hover: hover){.set-exp-head:hover .set-row-label{color:var(--accent)}}.set-exp-value{margin-left:auto;font-size:12.5px;color:var(--muted)}.set-exp-chev{flex:none;color:var(--muted);transition:transform var(--t-state) ease}.set-exp.open .set-exp-chev{transform:rotate(180deg)}.set-exp-body{padding:2px 0 16px;animation:set-open var(--t-enter) var(--ease-out) both}@keyframes set-open{0%{opacity:0;transform:translateY(-4px)}}.cat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.cat-archived{margin-top:16px;padding-top:12px;border-top:1px solid var(--line2)}.recur-book{margin-bottom:12px}.recur-addbtn{width:100%}.set-switch{position:relative;width:44px;height:26px;flex:none;padding:0;border-radius:999px;border:1px solid var(--line);background:var(--track);cursor:pointer;transition:background-color var(--t-state) ease,border-color var(--t-state) ease}.set-switch.on{background:var(--accent-fill);border-color:var(--accent-fill)}.set-switch:disabled{opacity:.45;cursor:default}.set-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--panel);box-shadow:0 1px 3px #00000047;transition:transform var(--t-state) var(--ease-out)}.set-switch.on .set-switch-knob{transform:translate(18px);background:var(--accent-on)}.rungs{display:flex;flex-direction:column;gap:6px}.rung{display:flex;align-items:flex-start;gap:11px;width:100%;padding:11px 13px;border-radius:12px;border:1px solid transparent;background:var(--panel2);font-family:inherit;text-align:left;cursor:pointer;color:var(--text);transition:background-color var(--t-state) ease,border-color var(--t-state) ease,transform var(--t-tap) ease}@media (hover: hover){.rung:hover:not(.on):not(:disabled){border-color:var(--line)}}.rung:active:not(:disabled){transform:scale(.995)}.rung:disabled{opacity:.6;cursor:default}.rung.on{background:color-mix(in srgb,var(--accent-fill) 11%,var(--panel));border-color:color-mix(in srgb,var(--accent-fill) 45%,transparent)}.rung-mark{flex:none;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border-radius:50%;border:1.5px solid var(--line);background:var(--panel);color:var(--accent-on);transition:background-color var(--t-state) ease,border-color var(--t-state) ease}.rung.on .rung-mark{background:var(--accent-fill);border-color:var(--accent-fill)}.rung-text{display:flex;flex-direction:column;gap:2px;min-width:0}.rung-text b{font-size:13.5px;font-weight:700}.rung-text span{font-size:12px;line-height:1.45;color:var(--muted)}.rung.on .rung-text span{color:color-mix(in srgb,var(--text) 62%,var(--accent-fill))}.rungs+.set-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}.cal-share{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}.rung:focus-visible,.set-exp-head:focus-visible,.set-btn:focus-visible,.set-switch:focus-visible,.accent-chip:focus-visible,.disc-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.set-exp-head:focus-visible{outline-offset:-2px;border-radius:8px}.preview-card{border:1px solid color-mix(in srgb,var(--accent-fill) 28%,var(--line))}.preview-body{display:flex;flex-direction:column;gap:12px}.preview-note{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}.preview-event{display:flex;align-items:baseline;gap:12px;padding:12px 14px;border-radius:12px;background:var(--panel2);font-size:13px}.preview-event b{display:inline-flex;align-items:center;gap:6px;font-weight:700}.preview-event.withheld{color:var(--muted);align-items:center}.event-redacted{color:var(--muted);font-weight:600}.ovcard.hidden .amt{color:var(--muted);letter-spacing:.08em}.disc-more{display:inline-flex;align-items:center;gap:5px;margin-top:10px;padding:0;border:none;background:none;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--accent);cursor:pointer}.disc-chev{transition:transform var(--t-state) ease}.disc-more.open .disc-chev{transform:rotate(180deg)}.disc-open{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);animation:set-open var(--t-enter) var(--ease-out) both}.disc-cat{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}.disc-cat-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disc-cat-amt{margin-left:auto;font-weight:700}.disc-items{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}.disc-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px}.disc-item-day{flex:none;width:30px;color:var(--muted);font-size:11px}.disc-item-body{display:flex;flex-direction:column;gap:1px;min-width:0}.disc-item-body b{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disc-item-body span{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.disc-item-amt{margin-left:auto;flex:none;font-weight:700}.accent-picker{display:flex;flex-wrap:wrap;gap:8px}.accent-chip{width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1.5px solid var(--line);background:var(--panel2);cursor:pointer;transition:border-color var(--t-state) ease,box-shadow var(--t-state) ease}.accent-chip.selected{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent) inset}.accent-swatch{width:20px;height:20px;border-radius:50%}@media (max-width: 560px){.overview{grid-template-columns:1fr}.set-name-in{width:150px}}@media (prefers-reduced-motion: reduce){.set-exp-body,.disc-open{animation:none}.set-switch-knob,.set-exp-chev,.disc-chev{transition:none}}::selection{background:color-mix(in srgb,var(--accent) 32%,transparent);color:var(--text)}input,textarea{caret-color:var(--accent-fill)}*{scrollbar-color:var(--line) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border:3px solid var(--bg);border-radius:999px}@media (hover: hover){::-webkit-scrollbar-thumb:hover{background:var(--muted)}}@media (max-width: 560px){input,select,textarea,.modal-in,.bcat-in,.cat-name{font-size:16px}}.modal-ov{overscroll-behavior:contain}
