:root{--paper:#fff;--grid-dot:#e3e6ea;--stamp:#c43d2b;--stamp-blue:#2f5d8a;--ink:#333;--ink-soft:#62666c;--line:#e4e6ea;--line-strong:#cfd3d9;--sun:#c8312b;--sat:#2463a8;--focus:#1f2937;--warn-bg:#fff6d8;--warn-ink:#6b4e00;--error-ink:#a1261e;--error-bg:#fdecea;--dharma:#9a4215;--dharma-tint:#fbece2;--travel:#1f5f8e;--travel-tint:#e6f1f9;--dining:#3f6a2c;--dining-tint:#eaf4e3;--spend:#7a5800;--spend-tint:#f8f0da;--news:#4a5561;--news-tint:#eceff2;--other:#635648;--other-tint:#f0ebe4;--pink:#a3285a;--pink-tint:#fbe8ef;--violet:#5b3e96;--violet-tint:#efeaf8;--red:#b02a2a;--red-tint:#fbe7e6;--orange:#9a4a0b;--orange-tint:#fcecdf;--olive:#56661f;--olive-tint:#eff3df;--teal:#17696b;--teal-tint:#e1f2f1;--cyan:#0f6a85;--cyan-tint:#e0f2f7;--navy:#2c3f94;--navy-tint:#e7eaf8;--plum:#86307c;--plum-tint:#f7e7f5;--wine:#8a2336;--wine-tint:#f8e5e9;--num:ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", "Arial Rounded MT Bold", "Bahnschrift", system-ui, sans-serif;--sans:-apple-system, "PingFang TC", "Heiti TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--tap:48px;--r-lg:20px;--r-md:14px;--r-sm:8px}:root,[data-theme=sora]{--accent:#7ec3ea;--accent-ink:#1d6699;--accent-tint:#e8f4fc;--accent-strong:#256fa6}[data-theme=sakura]{--accent:#f2a7b8;--accent-ink:#a8324f;--accent-tint:#fdeef2;--accent-strong:#b23b59}[data-theme=wakakusa]{--accent:#a8d08d;--accent-ink:#3e6a27;--accent-tint:#eef6e8;--accent-strong:#497a31}[data-theme=fuji]{--accent:#b9a7db;--accent-ink:#5b4491;--accent-tint:#f2eefa;--accent-strong:#684fa2}[data-theme=mikan]{--accent:#f6b26b;--accent-ink:#8d4809;--accent-tint:#fdf2e5;--accent-strong:#9d530d}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{color:var(--ink);font-family:var(--sans);background-color:var(--paper);background-image:radial-gradient(var(--grid-dot) 1.2px, transparent 1.3px);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-size:22px 22px;margin:0;font-size:19px;line-height:1.65}h1,h2,h3{margin:0;font-weight:700}p{margin:0}button{font:inherit;min-height:var(--tap);border:2px solid var(--line-strong);border-radius:var(--r-md);background:var(--paper);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 18px;transition:background-color .16s,border-color .16s;display:inline-flex}button:hover:not(:disabled){background:var(--accent-tint)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;font-weight:700}button.primary:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}button.ghost{color:var(--ink-soft);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--accent-tint)}button.danger{color:var(--error-ink)}button.big{border-radius:var(--r-lg);width:100%;min-height:64px;font-size:21px}.icon-btn{min-width:var(--tap);color:var(--accent-ink);background:0 0;border-color:#0000;border-radius:50%;padding:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}input,select,textarea{font:inherit;min-height:var(--tap);border:2px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);padding:8px 12px}textarea{resize:vertical;border-radius:var(--r-md);width:100%;line-height:1.7}.icon{flex:none;width:24px;height:24px}.spinning{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinning{animation:none}*{transition:none!important}}.accent{color:var(--accent)}.muted{color:var(--ink-soft)}.error{color:var(--error-ink);background:var(--error-bg);border-radius:var(--r-md);margin:12px 0;padding:10px 14px}.warn-text{color:var(--warn-ink);margin-top:4px}.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--r-lg)}.heart-rule{display:block}.login{text-align:center;max-width:440px;margin:0 auto;padding:18vh 20px 40px}.login .brand{margin-bottom:40px}.login h1{letter-spacing:.1em;font-size:30px}.brand-rule{width:176px;margin:12px auto 0}.email-login{text-align:left;border-top:2px dotted var(--line-strong);margin-top:36px;padding-top:12px}.email-login summary{cursor:pointer;color:var(--ink-soft);min-height:var(--tap);align-items:center;display:flex}.email-login form{flex-direction:column;gap:12px;margin-top:8px;display:flex}.email-login label{flex-direction:column;gap:4px;display:flex}.masthead{z-index:10;background:var(--paper);position:sticky;top:0}.masthead-row{justify-content:space-between;align-items:center;max-width:780px;margin:0 auto;padding:6px 12px 2px;display:flex}.month-heading{align-items:baseline;gap:2px;display:flex}.month-heading .month{font-family:var(--num);color:var(--accent-ink);font-size:44px;line-height:1}.month-heading .month-unit{color:var(--accent-ink);font-size:22px}.month-heading .year{font-family:var(--num);color:var(--ink-soft);margin-right:8px;font-size:18px}.month-heading{position:relative;overflow:hidden}.month-jump{opacity:0;cursor:pointer;appearance:none;border:0;width:100%;min-width:0;max-width:100%;height:100%;padding:0;position:absolute;inset:0}.today-pill{z-index:1;position:relative}.jump-hint{color:var(--accent-ink);opacity:.7;margin-left:4px;font-size:16px}.masthead-rule{max-width:780px;margin:0 auto}.masthead-center{align-items:center;gap:10px;min-width:0;display:flex}.today-pill{min-height:var(--tap);white-space:nowrap;border:2px solid var(--accent);background:var(--paper);color:var(--accent-ink);border-radius:999px;padding:0 14px;font-size:16px;font-weight:700}.page{max-width:780px;margin:0 auto;padding:12px 16px 56px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.toolbar-right{align-items:center;gap:4px;display:flex}.segmented{background:var(--accent-tint);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--accent-ink);background:0 0;border:none;border-radius:999px;min-height:44px;padding:6px 18px}.segmented button.on{background:var(--paper);color:var(--ink);font-weight:700}.notice{align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.notice>.icon{color:var(--accent-ink)}.notice p{flex:1}.notice-text{margin-bottom:12px;padding:12px 14px}.add-btn{border:2px dashed var(--accent);border-radius:var(--r-lg);width:100%;min-height:52px;color:var(--accent-ink);background:var(--paper);margin-bottom:10px;font-size:20px;font-weight:700}.input-box{border-color:var(--accent);margin-bottom:16px;padding:14px 16px 16px}.input-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.input-head h2{color:var(--accent-ink);font-size:21px}.actions{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.status{margin-top:10px}.preview{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.preview li{border:2px solid var(--line);border-radius:var(--r-md);background:var(--paper);padding:10px 12px}.preview li.flagged{background:var(--warn-bg);border-color:#ecd48a}.preview li.invalid{border-color:var(--error-ink)}.preview .row{flex-wrap:wrap;gap:4px 14px;display:flex}.preview label{align-items:center;gap:6px;margin:4px 0;display:inline-flex}.preview label.wide{display:flex}.preview label.wide input{flex:1;min-width:0}.preview .raw{color:var(--ink-soft);word-break:break-all;margin-top:6px;font-size:16px}.cat-dharma{--c:var(--dharma);--t:var(--dharma-tint)}.cat-travel{--c:var(--travel);--t:var(--travel-tint)}.cat-dining{--c:var(--dining);--t:var(--dining-tint)}.cat-spend{--c:var(--spend);--t:var(--spend-tint)}.cat-news{--c:var(--news);--t:var(--news-tint)}.cat-other{--c:var(--other);--t:var(--other-tint)}.cat-pink{--c:var(--pink);--t:var(--pink-tint)}.cat-violet{--c:var(--violet);--t:var(--violet-tint)}.cat-red{--c:var(--red);--t:var(--red-tint)}.cat-orange{--c:var(--orange);--t:var(--orange-tint)}.cat-olive{--c:var(--olive);--t:var(--olive-tint)}.cat-teal{--c:var(--teal);--t:var(--teal-tint)}.cat-cyan{--c:var(--cyan);--t:var(--cyan-tint)}.cat-navy{--c:var(--navy);--t:var(--navy-tint)}.cat-plum{--c:var(--plum);--t:var(--plum-tint)}.cat-wine{--c:var(--wine);--t:var(--wine-tint)}.tag{color:var(--c);background:var(--t);border-radius:999px;margin-right:6px;padding:1px 10px;font-size:16px;font-weight:700;display:inline-block}.weekdays,.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.weekdays{color:var(--ink-soft);text-align:center;margin-bottom:4px;font-size:16px;font-weight:700}.weekdays .sun{color:var(--sun)}.weekdays .sat{color:var(--sat)}.grid{flex-direction:column;gap:4px;display:flex}.cell{border-radius:var(--r-md);background:var(--paper);border:2px solid #0000;flex-direction:column;justify-content:flex-start;align-items:center;gap:1px;min-height:64px;padding:3px 2px 4px;display:flex}.cell:hover:not(:disabled){background:var(--accent-tint)}.cell .num{font-family:var(--num);border-radius:50%;place-items:center;min-width:32px;height:32px;font-size:21px;font-weight:600;line-height:1.35;display:grid}.cell.red .num,.cell.red .holiday{color:var(--sun)}.cell.sat .num{color:var(--sat)}.cell .sub{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;line-height:1.3;overflow:hidden}.cell .holiday{color:var(--accent-ink);font-weight:700}.cell.outside{background:0 0}.cell.outside .num,.cell.outside .sub{color:#9aa0a6}.cell.today .num{background:var(--accent-strong);color:#fff}.cell.selected{border-color:var(--accent-strong);background:var(--accent-tint)}.marks{flex-wrap:nowrap;justify-content:center;gap:2px;max-width:100%;margin-top:2px;display:flex;overflow:hidden}.mark-n{font-size:10px;font-weight:700;font-family:var(--num);margin-left:1px}.marks .mark{white-space:nowrap;padding:2px 4px}.marks .more{font-size:12px;line-height:1.5}.mark{color:var(--c);background:var(--t);border-radius:999px;padding:3px 5px;font-size:13px;font-weight:700;line-height:1}.more{color:var(--ink-soft);font-size:13px;line-height:1.6}.counter-strip{border-radius:var(--r-md);background:var(--dharma-tint);color:var(--dharma);margin-top:8px;padding:8px 14px 6px;display:block}.counter-strip .label{font-weight:700;display:block}.count-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));column-gap:24px;display:grid}.count-item{border-bottom:1px dotted;justify-content:space-between;align-items:baseline;gap:8px;min-height:40px;padding:6px 0;display:flex}.count-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.count-item>span:last-child{white-space:nowrap}.count-num{font-family:var(--num);font-size:1.1em}.sheet{background:var(--paper);border:2px solid var(--line);border-radius:var(--r-lg);margin:20px 4px 0;padding:22px 18px 16px;position:relative}.washi{background:repeating-linear-gradient(-45deg, var(--accent) 0 8px, var(--accent-tint) 8px 16px);opacity:.9;border-radius:3px;width:124px;height:28px;position:absolute;top:-14px;left:50%;transform:translate(-50%)rotate(-2deg)}[data-festive=spring] .washi,[data-festive=lantern] .washi{background:radial-gradient(#f5c451 2.5px,#0000 3px) 0 0/12px 12px,#d9443a}[data-festive=birthday] .washi{background:radial-gradient(#fff 2.5px,#0000 3px) 0 0/11px 11px,repeating-linear-gradient(90deg,#f6a9c0 0 12px,#ffd98a 12px 24px,#a9d8f0 24px 36px)}[data-festive=mother] .washi{background:radial-gradient(#fff 3px,#0000 3.5px) 0 0/13px 13px,#ef8fae}[data-festive=buddha] .washi{background:radial-gradient(#fbe3ea 3px,#0000 3.5px) 0 0/14px 14px,#e9a3b8}[data-festive=duanwu] .washi{background:repeating-linear-gradient(-45deg,#7fb86b 0 8px,#d7ecc8 8px 16px)}[data-festive=midautumn] .washi{background:radial-gradient(#f7d56a 3px,#0000 3.5px) 0 0/14px 14px,#3c4f7a}[data-festive=chongyang] .washi{background:radial-gradient(#fff3c4 2.5px,#0000 3px) 0 0/12px 12px,#f0b638}[data-festive=dongzhi] .washi{background:radial-gradient(#fff 3px,#0000 3.5px) 0 0/12px 12px,#f3b7c4}[data-festive=christmas] .washi{background:repeating-linear-gradient(-45deg,#c8392f 0 8px,#fff 8px 12px,#3f7d4a 12px 20px,#fff 20px 24px)}[data-festive=national] .washi{background:repeating-linear-gradient(-45deg,#fe0000 0 8px,#fff 8px 11px,#000095 11px 19px,#fff 19px 22px)}[data-festive=newyear] .washi{background:repeating-linear-gradient(-45deg,#f5b942 0 8px,#fff4d6 8px 16px)}.festive-rain{z-index:35;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fr-item{width:30px;height:30px;animation:4.2s linear both fr-fall;position:absolute;top:-40px}.fr-item .holiday-doodle{width:100%;height:100%;animation:none;position:static;transform:none}@keyframes fr-fall{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{opacity:.9;transform:translate(24px,110vh)rotate(200deg)}}.fr-item:first-child{animation-delay:0s;left:4%}.fr-item:nth-child(2){width:24px;height:24px;animation-delay:.7s;left:12%}.fr-item:nth-child(3){animation-delay:.3s;left:20%}.fr-item:nth-child(4){width:22px;height:22px;animation-delay:1.1s;left:28%}.fr-item:nth-child(5){animation-delay:.5s;left:36%}.fr-item:nth-child(6){width:26px;height:26px;animation-delay:1.4s;left:44%}.fr-item:nth-child(7){animation-delay:.2s;left:52%}.fr-item:nth-child(8){width:22px;height:22px;animation-delay:.9s;left:60%}.fr-item:nth-child(9){animation-delay:.4s;left:68%}.fr-item:nth-child(10){width:26px;height:26px;animation-delay:1.2s;left:76%}.fr-item:nth-child(11){animation-delay:.6s;left:84%}.fr-item:nth-child(12){width:24px;height:24px;animation-delay:1s;left:92%}.fr-item:nth-child(13){animation-delay:1.6s;left:16%}.fr-item:nth-child(14){width:22px;height:22px;animation-delay:1.8s;left:72%}.fr-item:nth-child(2n){animation-duration:3.6s}@media (prefers-reduced-motion:reduce){.festive-rain{display:none}}.sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:6px;display:flex}.sheet-date{align-items:baseline;gap:8px;display:flex}.sheet-month,.sheet-day{font-family:var(--num);font-size:52px;font-weight:700;line-height:.95}.sheet-month{margin-right:-4px}.sheet-weekday{font-size:18px;font-weight:700}.sheet-date.red .sheet-month,.sheet-date.red .sheet-day,.sheet-date.red .sheet-weekday{color:var(--sun)}.sheet-date.blue .sheet-month,.sheet-date.blue .sheet-day,.sheet-date.blue .sheet-weekday{color:var(--sat)}.sheet-meta{color:var(--ink-soft);flex-direction:column;align-items:flex-end;gap:2px;font-size:17px;display:flex}.holiday-name{color:var(--accent-ink);font-weight:700}.cell .sub.buddha{color:var(--dharma);font-weight:700}.cell .sub.term{color:var(--dining);font-weight:700}.cell.outside .sub.buddha,.cell.outside .sub.term{color:#9aa0a6}.cell .sub.long{letter-spacing:-.6px;font-size:10.5px}html[data-font=xl] .cell .sub.long{font-size:9px}.buddha-name{color:var(--dharma);font-weight:700}.wellness{border-radius:var(--r-md);background:#f3f9ee;border:1.5px solid #cfe3c4;margin:4px 0 10px}.wellness-head{width:100%;min-height:48px;color:var(--dining);font:inherit;text-align:left;background:0 0;border:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:flex}.wellness-head small{color:var(--ink-soft);font-size:15px;font-weight:400}.wellness-more{white-space:nowrap;margin-left:auto;font-size:15px}.wellness-list{flex-direction:column;gap:6px;margin:0;padding:0 12px 10px;list-style:none;display:flex}.wellness-list li{align-items:baseline;gap:6px;line-height:1.5;display:flex}.wellness-list li b{min-width:2.6em;color:var(--dining);flex:none}.wellness-note{border-top:1px dashed #cfe3c4;padding-top:4px;font-size:14px}.anniv{flex-direction:column;gap:6px;margin:4px 0 10px;display:flex}.anniv-row{border-radius:var(--r-md);width:100%;min-height:48px;color:var(--ink);font:inherit;text-align:left;background:#fdf0f4;border:1.5px solid #f3c6d3;align-items:center;gap:8px;padding:8px 12px;display:flex}.anniv-row.soon{background:var(--paper);border-style:dashed}.anniv-heart{flex:none;font-size:20px}.anniv-title{flex:1;min-width:0;font-weight:700}.anniv-when{color:var(--ink-soft);font-size:15px;font-weight:400;display:block}.anniv-years{color:#a3285a;flex:none;font-weight:700}.anniv-years b{font-family:var(--num);font-size:1.25em}.anniv-years small{color:var(--ink-soft);font-size:14px;font-weight:400}.term-name{color:var(--dining);font-weight:700}.empty-day{align-items:center;gap:12px;margin:12px 0 4px;display:flex}.empty-day p{margin:0}.empty-doodle{flex:none;width:64px;height:48px}.ed-page{fill:var(--paper);stroke:var(--line-strong);stroke-width:2px;stroke-linejoin:round}.ed-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:.7}.ed-pencil-body{fill:#f3c14b;stroke:#8a5a3c;stroke-width:1.5px}.ed-pencil-tip{fill:#8a5a3c}.ed-pencil{transform-box:fill-box;transform-origin:20% 90%;animation:.9s ease-in-out .3s both ed-wiggle}@keyframes ed-wiggle{0%,to{transform:none}30%{transform:rotate(-10deg)}60%{transform:rotate(6deg)}}.memories{border-top:2px dotted var(--line-strong);margin-top:14px;padding-top:10px}.memories-title{color:var(--accent-ink);margin:0 0 4px;font-size:18px}.memory-when{margin:6px 0 0;font-weight:700}.memory-when .muted{font-size:16px;font-weight:400}.add-on{border-radius:var(--r-lg);width:100%;margin-top:10px}.hint{text-align:center;margin-top:20px}.undated{background:var(--paper);border:2px dotted var(--line-strong);border-radius:var(--r-lg);margin-top:18px;padding:14px 16px}.undated h3{margin-bottom:4px;font-size:18px}.entry-list{margin:10px 0 0;padding:0;list-style:none}.entry-list li{border-top:2px dotted var(--line);padding:10px 0}.entry-list li:first-child{border-top:none}.entry-list .range{color:var(--ink-soft);font-size:17px;font-family:var(--num);margin-right:6px}.entry-list .amount{float:right;color:var(--ink-soft);font-family:var(--num);margin-left:8px}.entry-list .note{color:var(--ink-soft);white-space:pre-line;margin-top:2px;font-size:17px;display:block}.summary{text-align:right;color:var(--ink-soft);margin-top:8px}.spend-strip{border-radius:var(--r-md);background:var(--spend-tint);color:var(--spend);margin-top:10px;padding:8px 14px;font-weight:700}.month-spend{font-family:var(--sans);color:var(--spend);vertical-align:middle;margin-left:12px;font-size:17px;font-weight:700}.footer{border-top:2px dotted var(--line-strong);margin-top:36px;padding-top:16px}.footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.check{min-height:var(--tap);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:22px;height:22px;min-height:0;accent-color:var(--accent-strong)}.theme-picker{border:none;margin:0;padding:0}.theme-picker legend{margin-bottom:8px;padding:0;font-weight:700}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border-radius:var(--r-md);background:0 0;border-color:#0000;flex-direction:column;gap:4px;min-width:64px;padding:6px 8px;font-size:16px}.swatch .dot{border:2px solid #00000014;border-radius:50%;width:32px;height:32px}.swatch.on{border-color:var(--ink)}.swatch-sora .dot{background:#7ec3ea}.swatch-sakura .dot{background:#f2a7b8}.swatch-wakakusa .dot{background:#a8d08d}.swatch-fuji .dot{background:#b9a7db}.swatch-mikan .dot{background:#f6b26b}.sheet-enter-active{animation:.34s cubic-bezier(.2,.8,.3,1.15) sheet-in}.sheet-leave-active{animation:.14s ease-in forwards sheet-out}@keyframes sheet-in{0%{opacity:0;transform:translateY(-16px)rotate(-1.5deg)}55%{opacity:1}to{opacity:1;transform:none}}@keyframes sheet-out{to{opacity:0;transform:translateY(8px)rotate(1deg)}}.sheet-enter-active .washi{animation:.38s cubic-bezier(.3,1.5,.5,1) .14s both washi-stick}@keyframes washi-stick{0%{opacity:0;transform:translate(-50%)rotate(-9deg)scaleX(.4)}to{opacity:.9;transform:translate(-50%)rotate(-2deg)scaleX(1)}}.month-next-enter-active,.month-prev-enter-active{transition:opacity .2s,transform .24s cubic-bezier(.2,.8,.3,1)}.month-next-leave-active,.month-prev-leave-active{transition:opacity .12s,transform .12s ease-in}.month-next-enter-from{opacity:0;transform:translate(28px)}.month-next-leave-to,.month-prev-enter-from{opacity:0;transform:translate(-28px)}.month-prev-leave-to{opacity:0;transform:translate(28px)}.cell{transition:background-color .16s,border-color .16s,transform .12s}.cell:active{transform:scale(.94)}.open-enter-active{transition:opacity .18s,transform .24s cubic-bezier(.2,.8,.3,1)}.open-leave-active{transition:opacity .1s}.open-enter-from{opacity:0;transform:translateY(-8px)scale(.98)}.open-leave-to{opacity:0}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:20;background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-weight:700;display:flex;position:fixed;transform:translate(-50%)}.toast-heart{color:var(--accent);animation:.52s cubic-bezier(.3,1.6,.5,1) .15s both heart-pop}.toast-stamp{background:var(--stamp);color:#fff;border-radius:5px;place-items:center;width:30px;height:30px;margin-left:4px;font-family:Noto Serif TC,PMingLiU,Songti TC,serif;font-size:19px;font-weight:700;line-height:1;animation:.48s cubic-bezier(.2,.8,.3,1) .16s both toast-stamp;display:inline-grid;transform:rotate(-8deg);box-shadow:inset 0 0 0 2px #ffffff59}@keyframes toast-stamp{0%{opacity:0;transform:translateY(-14px)scale(1.6)rotate(-2deg)}55%{opacity:1;transform:scale(.9)rotate(-8deg)}75%{transform:scale(1.05)rotate(-8deg)}to{opacity:.95;transform:rotate(-8deg)}}@keyframes heart-pop{0%{transform:scale(0)}70%{transform:scale(1.35)}to{transform:scale(1)}}.toast-enter-active{transition:opacity .2s,transform .28s cubic-bezier(.2,.8,.3,1.3)}.toast-leave-active{transition:opacity .3s,transform .3s}.toast-enter-from{opacity:0;transform:translate(-50%,24px)}.toast-leave-to{opacity:0;transform:translate(-50%,12px)}@property --accent{syntax:"<color>";inherits:true;initial-value:#7ec3ea}@property --accent-ink{syntax:"<color>";inherits:true;initial-value:#1d6699}@property --accent-tint{syntax:"<color>";inherits:true;initial-value:#e8f4fc}@property --accent-strong{syntax:"<color>";inherits:true;initial-value:#256fa6}html{transition:--accent .36s,--accent-ink .36s,--accent-tint .36s,--accent-strong .36s}.screen-enter-active{transition:opacity .26s,transform .36s cubic-bezier(.2,.8,.3,1)}.screen-leave-active{transition:opacity .18s,transform .2s ease-in}.screen-enter-from{opacity:0;transform:translateY(28px)}.screen-leave-to{opacity:0;transform:scale(.96)}.page-forward-enter-active,.page-back-enter-active{transition:opacity .24s,transform .34s cubic-bezier(.2,.8,.3,1)}.page-forward-leave-active,.page-back-leave-active{transition:opacity .15s,transform .17s ease-in}.page-forward-enter-from{opacity:0;transform:perspective(900px)translate(40px)rotateY(-10deg)}.page-forward-leave-to,.page-back-enter-from{opacity:0;transform:perspective(900px)translate(-40px)rotateY(10deg)}.page-back-leave-to{opacity:0;transform:perspective(900px)translate(40px)rotateY(-10deg)}.month-flip{transform-origin:50% 60%;align-items:baseline;gap:2px;display:inline-flex}.flip-next-enter-active,.flip-prev-enter-active{transition:opacity .2s,transform .3s cubic-bezier(.2,.8,.3,1.2)}.flip-next-leave-active,.flip-prev-leave-active{transition:opacity .12s,transform .14s ease-in}.flip-next-enter-from{opacity:0;transform:perspective(400px)rotateX(-80deg)}.flip-next-leave-to,.flip-prev-enter-from{opacity:0;transform:perspective(400px)rotateX(80deg)}.flip-prev-leave-to{opacity:0;transform:perspective(400px)rotateX(-80deg)}.grid .week{animation:.3s cubic-bezier(.2,.8,.3,1) both row-in}.grid .week:nth-child(2){animation-delay:40ms}.grid .week:nth-child(3){animation-delay:80ms}.grid .week:nth-child(4){animation-delay:.12s}.grid .week:nth-child(5){animation-delay:.16s}.grid .week:nth-child(6){animation-delay:.2s}@keyframes row-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.cell.today .num{animation:.56s cubic-bezier(.3,1.7,.5,1) .32s both hanamaru}@keyframes hanamaru{0%{transform:scale(0)rotate(-40deg)}70%{transform:scale(1.2)rotate(8deg)}to{transform:none}}.mark{animation:.32s cubic-bezier(.3,1.6,.5,1) both pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}@keyframes line-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}.item-enter-active{transition:opacity .22s,transform .28s cubic-bezier(.2,.8,.3,1.2)}.item-enter-active:nth-child(2){transition-delay:50ms}.item-enter-active:nth-child(3){transition-delay:.1s}.item-enter-active:nth-child(n+4){transition-delay:.15s}.item-leave-active{transition:opacity .2s,transform .22s ease-in}.item-enter-from{opacity:0;transform:translateY(-10px)scale(.96)}.item-leave-to{opacity:0;transform:translate(60px)}.brand-rule{animation:.9s cubic-bezier(.4,0,.2,1) .2s both draw-line}@keyframes draw-line{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}button:active:not(:disabled){transform:scale(.97)}button{transition:background-color .16s,border-color .16s,transform .1s}.entry-btn,.item-card,.counter-btn{width:100%;min-height:var(--tap);text-align:left;border-radius:var(--r-sm);font-weight:inherit;background:0 0;border:none;justify-content:flex-start;align-items:start}.entry-btn{padding:10px 6px;display:block}.counter-btn.count-item{width:auto;min-height:var(--tap);color:inherit;font-size:inherit;border:none;border-bottom:1px dotted;border-radius:0;justify-content:space-between;align-items:baseline;padding:6px 0}.counter-btn .count-name{text-underline-offset:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.entry-list li{padding:0}.tap-hint{text-align:center;margin-top:10px;font-size:16px}.save-btn{margin-top:10px}.input-hint{margin-top:8px;font-size:16px}.overlay{z-index:30;background:#282c346b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.editor{background:var(--paper);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:620px;max-height:92vh;padding:16px 18px calc(18px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:6px;font-weight:700;display:flex}.field textarea,.field input{font-weight:400}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--t);background:var(--t);min-height:44px;color:var(--c);border-radius:999px;padding:6px 14px;font-weight:700}.chip.on{border-color:var(--c);background:var(--paper)}.chip.on:before{content:"✓ "}.delete-btn{align-self:center}.overlay-enter-active{transition:opacity .22s}.overlay-enter-active .editor{transition:transform .32s cubic-bezier(.2,.8,.3,1.05)}.overlay-leave-active{transition:opacity .18s}.overlay-leave-active .editor{transition:transform .2s ease-in}.overlay-enter-from,.overlay-leave-to{opacity:0}.overlay-enter-from .editor,.overlay-leave-to .editor{transform:translateY(100%)}.toast-action{min-height:40px;color:inherit;background:0 0;border:2px solid;border-radius:999px;margin-left:12px;padding:4px 16px;font-weight:700}.family-setup{margin-top:24px;font-size:16px}.family-setup summary{cursor:pointer;color:var(--ink-soft);min-height:var(--tap);align-items:center;display:flex}.family-body{flex-direction:column;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.open-btn{min-height:76px;font-size:22px}.invisible{visibility:hidden}.brand-heading{letter-spacing:.1em;color:var(--accent-ink);font-size:26px}.folder-bar{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:14px;display:flex}.back-btn{border-color:var(--accent);color:var(--accent-ink);padding-left:10px;font-weight:700}.folder-title{color:var(--accent-ink);font-size:26px;font-family:var(--num)}.year-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.year-folder{border:2px solid var(--accent);border-radius:4px var(--r-lg) var(--r-lg) var(--r-lg);background:var(--accent-tint);flex-direction:column;align-items:flex-start;gap:4px;min-height:116px;margin-top:12px;padding:26px 18px 14px;position:relative}.year-folder .tab{background:var(--accent);border-radius:10px 10px 0 0;width:58%;height:16px;position:absolute;top:-14px;left:-2px}.year-num{font-family:var(--num);color:var(--accent-ink);font-size:34px;font-weight:700;line-height:1.1}.card-list{flex-direction:column;gap:12px;display:flex}.item-card{border-radius:var(--r-md);background:var(--paper);border:2px solid var(--line);border-left:8px solid var(--c);flex-direction:column;gap:4px;padding:14px 16px 14px 20px;display:flex}.item-date{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.item-date .big{font-family:var(--num);color:var(--c);font-size:24px;font-weight:700}.item-title{font-size:20px;line-height:1.5}.item-amount{font-family:var(--num);color:var(--ink-soft)}.item-card .note{color:var(--ink-soft);white-space:pre-line;font-size:17px}.card-list .add-btn{margin:8px 0 0}.year-page{flex-direction:column;display:flex}.year-month{border-bottom:2px dotted var(--line-strong);margin-bottom:18px;padding:6px 0 22px;scroll-margin-top:72px}.year-month:last-of-type{border-bottom:none}.year-month-title{z-index:5;font-family:var(--num);color:var(--accent-ink);background:var(--paper);padding:2px 0 8px;font-size:40px;line-height:1.2;position:sticky;top:72px}.year-month-title small{margin-left:2px;font-size:22px}.year-month-title.flash{border-radius:12px;animation:1.6s ease-out month-flash}@keyframes month-flash{0%,35%{background:var(--warn-bg)}to{background:var(--paper)}}@media (prefers-reduced-motion:reduce){.year-month-title.flash{outline:2px solid var(--accent-ink);animation:none}}.year-month-empty{font-size:17px}.year-end-back{align-self:flex-start;margin-top:8px}.settings{gap:18px}.settings-group{border:none;margin:0;padding:0}.settings-group legend{margin-bottom:4px;padding:0;font-weight:700}.settings .family-setup{margin-top:0}.category-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.category-row{border:2px solid var(--line);border-radius:var(--r-md);background:var(--paper);justify-content:flex-start;gap:12px;width:100%}.category-row .category-name{text-align:left;color:var(--c);flex:1;font-weight:700}.category-edit{border:2px dashed var(--line-strong);border-radius:var(--r-md);flex-direction:column;gap:10px;margin:6px 0 10px;padding:12px 14px;display:flex}.palette{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));justify-items:center;gap:10px;display:grid}.category-preview{align-items:center;gap:10px;font-size:20px;display:flex}.category-preview .category-name{color:var(--c);font-weight:700}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.icon-choice{border-radius:var(--r-md);background:var(--paper);border:2px solid #0000;min-height:52px;padding:0;font-size:28px;line-height:1}.icon-choice.none{color:var(--ink-soft);border-color:var(--line-strong);border-style:dashed;font-size:15px;font-weight:700}.icon-choice.on{border-color:var(--c);background:var(--t);border-style:solid}.mark{font-family:"Apple Color Emoji", "Segoe UI Emoji", var(--sans)}.palette-dot{border:3px solid var(--paper);background:var(--c);width:48px;height:48px;min-height:48px;box-shadow:0 0 0 2px var(--line-strong);border-radius:50%;padding:0}.palette-dot.on{box-shadow:0 0 0 3px var(--ink)}.palette-dot.on:after{content:"✓";color:#fff;font-size:20px;font-weight:700}.category-add{margin:10px 0 0}.swipe-area{touch-action:pan-y}.grabber{background:var(--line-strong);border-radius:3px;align-self:center;width:44px;height:5px;margin:-4px auto 4px;display:block}.date-pick{border:2px solid var(--accent);border-radius:var(--r-md);background:var(--accent-tint);min-height:60px;color:var(--accent-ink);cursor:pointer;align-items:center;gap:10px;padding:8px 16px;display:flex;position:relative}.date-pick .date-text{font-family:var(--num);color:var(--ink);flex:1;font-size:21px;font-weight:700}.date-pick .date-change{white-space:nowrap;font-size:16px;font-weight:700}.date-pick .date-text{min-width:0}.date-pick .date-part{display:inline-block}.date-pick .date-part+.date-part{color:var(--ink-soft);margin-left:6px;font-size:16px;font-weight:700}.date-pick input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;position:absolute;inset:0}.date-pick:focus-within{outline:3px solid var(--focus);outline-offset:2px}.overlay .input-box{border-radius:var(--r-lg) var(--r-lg) 0 0;border:none;margin:0}.depth-in-enter-active,.depth-out-enter-active{transition:opacity .22s,transform .3s cubic-bezier(.2,.8,.3,1)}.depth-in-leave-active,.depth-out-leave-active{transition:opacity .14s,transform .16s ease-in}.depth-in-enter-from{opacity:0;transform:translate(36px)scale(.98)}.depth-in-leave-to{opacity:0;transform:translate(-24px)scale(.98)}.depth-out-enter-from{opacity:0;transform:translate(-36px)scale(.98)}.depth-out-leave-to{opacity:0;transform:translate(24px)scale(.98)}.year-folder,.item-card{animation:.3s cubic-bezier(.3,1.4,.5,1) both pop-in}.item-card:nth-child(2){animation-delay:30ms}.item-card:nth-child(3){animation-delay:60ms}.item-card:nth-child(n+4){animation-delay:90ms}.year-summary{border:2px solid var(--line);border-radius:var(--r-lg);background:var(--paper);margin:0 0 18px;padding:14px 16px 16px}.summary-title{color:var(--accent-ink);margin:0 0 4px;font-size:21px}.summary-sub{color:var(--accent-ink);border-top:2px dotted var(--line-strong);margin:16px 0 2px;padding-top:10px;font-size:18px}.summary-big{margin:0}.summary-num{font-family:var(--num);font-size:34px;line-height:1.1}.summary-num-sm{font-family:var(--num);font-size:1.15em}.summary-compare{margin:0;font-size:16px}.summary-cats{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.summary-cats li{flex:calc(50% - 4px);order:1}.summary-cats li.spend{order:0}.summary-cats li.solo{flex-basis:100%;order:2}.summary-cats li.chant{order:3}.summary-pick{border:2px solid var(--line);border-radius:var(--r-md);background:var(--paper);width:100%;min-height:44px;color:inherit;font:inherit;font-weight:inherit;text-align:left;justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;transition:border-color .2s,background-color .2s;display:flex}.summary-pick.on{border-color:var(--accent-strong);background:var(--accent-tint)}.summary-cats li.wide{flex-basis:100%}.summary-pick .tag,.summary-pick>span:last-child{white-space:nowrap}.summary-pick>span:last-child{margin-left:auto}.summary-pick .tag{margin-right:0}.summary-cats li{display:flex}.summary-cats li>.summary-pick{height:100%}@media (width<=400px){.summary-cats{gap:6px}.summary-pick{gap:4px;padding:4px 6px}.summary-pick .tag{padding:1px 8px}}.chant-chips{gap:6px;margin-top:10px}.chant-chips .chip{padding:4px 12px;font-size:16px}.spend-chart{width:100%;height:auto;margin-top:8px;display:block;overflow:visible}.spend-base{stroke:var(--line-strong);stroke-width:1px}.spend-bar{fill:var(--c,var(--spend));transition:opacity .16s}.spend-slot{cursor:pointer}.spend-slot.dim .spend-bar{opacity:.35}.spend-hit{fill:#0000}.spend-peak{font-family:var(--num);fill:var(--ink);font-size:13px;font-weight:700}.spend-month{font-family:var(--num);fill:var(--ink-soft);font-size:13px}.summary-picked{margin:2px 0 0;font-weight:700}.summary-picked-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.go-month{border:1.5px solid var(--line-strong);background:var(--paper);color:var(--accent-ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;min-height:40px;padding:6px 14px;font-size:16px;font-weight:700}.go-month:active{transform:scale(.96)}.summary-hint{margin:0;font-size:15px}.summary-sub .muted{font-size:15px;font-weight:400}.summary-chart{scroll-margin-top:90px}.year-summary{animation:.32s cubic-bezier(.3,1.3,.5,1) both pop-in}.spend-bar{transform-box:fill-box;transform-origin:50% 100%;animation:.46s cubic-bezier(.2,.9,.3,1.15) both bar-grow}.spend-bar.bar-0{animation-delay:0s}.spend-bar.bar-1{animation-delay:28ms}.spend-bar.bar-2{animation-delay:56ms}.spend-bar.bar-3{animation-delay:84ms}.spend-bar.bar-4{animation-delay:.112s}.spend-bar.bar-5{animation-delay:.14s}.spend-bar.bar-6{animation-delay:.168s}.spend-bar.bar-7{animation-delay:.196s}.spend-bar.bar-8{animation-delay:.224s}.spend-bar.bar-9{animation-delay:.252s}.spend-bar.bar-10{animation-delay:.28s}.spend-bar.bar-11{animation-delay:.308s}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.spend-peak{animation:.3s ease-out .42s both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.chips-drop-enter-active{transition:opacity .22s,transform .26s cubic-bezier(.2,.9,.3,1.2)}.chips-drop-leave-active{transition:opacity .14s}.chips-drop-enter-from{opacity:0;transform:translateY(-8px)}.chips-drop-leave-to{opacity:0}.fade-swap-enter-active{transition:opacity .18s}.fade-swap-leave-active{transition:opacity 90ms}.fade-swap-enter-from,.fade-swap-leave-to{opacity:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.summary-ms{border-top:2px dotted var(--line-strong);margin-top:14px;padding-top:10px}.ms-toggle{border-radius:var(--r-md);width:calc(100% + 16px);min-height:44px;color:var(--accent-ink);font:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;margin:0 -8px;padding:4px 8px;font-weight:700;display:flex}.ms-chevron{font-size:24px;line-height:1;transition:transform .2s}.ms-chevron.open{transform:rotate(90deg)}.ms-body{padding-top:6px}.ms-badges{gap:6px}.ms-badges .chip{padding:4px 12px;font-size:16px}.ms-left{margin:6px 0 0;font-size:16px}.records-line{border-radius:var(--r-md);background:var(--accent-tint);width:100%;min-height:44px;color:inherit;font:inherit;font-weight:inherit;text-align:left;border:none;margin:0 0 12px;padding:8px 14px;display:block}.records-line b{font-family:var(--num);font-size:1.15em}.records-line .muted{font-size:16px}.story-card{border-radius:var(--r-lg);background:#fffaf1 repeating-linear-gradient(#0000 0 39px,#efe3cf 39px 40px);flex-direction:column;gap:14px;width:100%;max-width:420px;max-height:88vh;padding:30px 22px 18px;animation:.42s cubic-bezier(.3,1.4,.5,1) both pop-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 10px 30px #0000002e}.story-card .washi{top:-12px}.story-title{text-align:center;font-family:var(--num);color:var(--accent-ink);margin:0;font-size:34px}.story-title small{font-size:20px}.story-lines{flex-direction:column;gap:6px;margin:0;padding:0;font-size:19px;line-height:1.7;list-style:none;display:flex}.story-lines li{opacity:0;animation:.52s ease-out forwards story-in}.story-num{font-family:var(--num);color:var(--stamp);font-size:1.35em}.story-lines li:first-child{animation-delay:.3s}.story-lines li:nth-child(2){animation-delay:.9s}.story-lines li:nth-child(3){animation-delay:1.5s}.story-lines li:nth-child(4){animation-delay:2.1s}.story-lines li:nth-child(5){animation-delay:2.7s}.story-lines li:nth-child(6){animation-delay:3.3s}.story-lines li:nth-child(7){animation-delay:3.9s}.story-lines li:nth-child(8){animation-delay:4.5s}.story-lines li:nth-child(n+9){animation-delay:5.1s}@keyframes story-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.story-lines li{opacity:1;animation:none}.story-card{animation:none}}.story-open{margin-top:8px}.birthday-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.birthday-row select{min-height:44px;font:inherit;border-radius:var(--r-sm);border:1.5px solid var(--line-strong);background:var(--paper);color:var(--ink);padding:4px 8px}.birthday-line{color:#a3285a;font-weight:700}.celebrate-overlay{z-index:40;align-items:center;padding:16px}.celebrate-card{text-align:center;background:radial-gradient(var(--grid-dot) 1.2px, transparent 1.3px) 0 0 / 18px 18px, var(--paper);border:2px solid var(--line);border-radius:var(--r-lg);width:min(360px,100%);padding:22px 20px 20px;animation:.2s ease-out both card-in,.62s both card-thud;position:relative;overflow:hidden}@keyframes card-in{0%{opacity:0}to{opacity:1}}@keyframes card-thud{0%,50%,to{transform:none}56%{transform:translateY(2px)scale(.995)}64%{transform:translateY(-1px)}}.celebrate-title{color:var(--ink);margin:10px 0 0;font-size:23px;line-height:1.4}.celebrate-date{color:var(--ink-soft);font-size:16px;font-family:var(--num);margin:2px 0 8px}.stamp{opacity:.93;width:188px;height:auto;margin:0 auto;animation:.62s cubic-bezier(.2,.8,.3,1) both stamp-press;display:block;transform:rotate(-6deg)}@keyframes stamp-press{0%{opacity:0;transform:translateY(-36px)scale(1.45)rotate(-1deg)}50%{opacity:1;transform:translateY(0)scale(1.02)rotate(-5deg)}56%{transform:scale(.95)rotate(-6deg)}72%{transform:scale(1.01)rotate(-6deg)}to{opacity:.93;transform:rotate(-6deg)}}.stamp-frame{fill:none;stroke:var(--stamp);stroke-width:6px}.stamp-rule{fill:none;stroke:var(--stamp);stroke-width:2px}.stamp-line path,.stamp-line circle{fill:none;stroke:var(--stamp);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.stamp.ink-blue{--stamp:var(--stamp-blue)}.stamp-book{max-height:94vh}.book-year{font-family:var(--num);color:var(--stamp);border-bottom:1.5px dashed #e3cfc0;margin:0 0 8px;padding-bottom:4px;font-size:28px}.book-year small{font-size:16px}.book-grid{grid-template-columns:repeat(3,1fr);gap:6px 8px;display:grid}.book-stamp{border-radius:var(--r-md);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;min-height:0;padding:4px 2px;display:flex}.book-stamp .stamp{width:100%;max-width:116px;animation:none}.book-stamp:nth-child(3n+1) .stamp{transform:rotate(-7deg)}.book-stamp:nth-child(3n+2) .stamp{transform:rotate(4deg)}.book-stamp:nth-child(3n) .stamp{transform:rotate(-2deg)}.book-caption{color:var(--ink-soft);white-space:nowrap;font-size:14px;font-weight:700}html[data-font=xl] .book-grid{grid-template-columns:repeat(2,1fr)}.stamp-frame-thin{stroke-width:4px}.stamp-line .stamp-fill{fill:var(--paper)}.stamp-line .stamp-thick{stroke-width:5px}.stamp-line .stamp-solid{fill:var(--stamp)}.stamp-flower circle{fill:var(--stamp);stroke:none}.stamp-text.stamp-text-sm{letter-spacing:1px;font-size:13px}.stamp-text{fill:var(--stamp);letter-spacing:3px;font-family:Noto Serif TC,PMingLiU,Songti TC,serif;font-size:17px;font-weight:700}.celebrate-count{margin:0 0 6px;font-size:15px}.celebrate-ok{width:100%;margin-top:6px}.petal{opacity:0;background:#f7b6c8;border-radius:60% 60% 60% 0;width:12px;height:16px;animation:3.2s ease-in .5s 2 petal-fall;position:absolute;top:-20px}.petal:first-child{animation-delay:0s;left:12%}.petal:nth-child(2){animation-delay:.32s;left:38%}.petal:nth-child(3){animation-delay:.64s;left:64%}.petal:nth-child(4){animation-delay:.96s;left:88%}.petal:nth-child(5){animation-delay:1.28s;left:64%}.petal:nth-child(6){animation-delay:1.6s;left:78%}.petal:nth-child(7){animation-delay:1.92s;left:90%}.petal:nth-child(8){animation-delay:2.24s;left:44%}@keyframes petal-fall{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:.6}to{opacity:0;transform:translateY(300px)rotate(200deg)}}.petal-summer{background:#f39cc3;border-radius:50%/70% 70% 30% 30%;width:14px;height:18px}.petal-autumn{clip-path:polygon(50% 0,61% 32%,96% 30%,68% 52%,80% 90%,50% 68%,20% 90%,32% 52%,4% 30%,39% 32%);background:#e3743a;border-radius:0;width:16px;height:16px}.petal-autumn:nth-child(2n){background:#d4502e}.petal-winter{background:#bcdcf2;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 2px #e4f1fb}.celebrate-card{overflow:visible}.petal-box{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.celebrate-washi{opacity:.9;border-radius:2px;width:112px;height:22px;animation:.38s cubic-bezier(.3,1.5,.5,1) .52s both washi-stick;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-2deg)}.washi-spring{background:radial-gradient(#fff 2px,#0000 2.5px) 0 0/10px 10px,#f6b8c8}.washi-summer{background:repeating-linear-gradient(90deg,#9fd3ea 0 8px,#e7f5fb 8px 14px)}.washi-autumn{background:repeating-linear-gradient(-45deg,#f2a65a 0 7px,#f8d27a 7px 14px)}.washi-winter{background:radial-gradient(#fff 2px,#0000 2.5px) 0 0/10px 10px,#b9d7ea}.season-sprig{width:64px;height:64px;position:absolute;top:10px;left:10px}.sprig-branch{fill:none;stroke:#8a5a3c;stroke-width:2.5px;stroke-linecap:round}.sprig-center{fill:#f3c64f}.sprig-spring .sprig-petal{fill:#f7b6c8}.sprig-summer .sprig-petal{fill:#f39cc3}.sprig-leaf{fill:#9ccf85}.sprig-maple{fill:#e3743a}.sprig-maple-2{fill:#d4502e}.sprig-snow{fill:none;stroke:#8fbadb;stroke-width:2.5px;stroke-linecap:round}.sprig-plum{fill:#e46a7a}html[data-font=l]{zoom:1.12}html[data-font=xl]{zoom:1.25}.font-sizes button.font-l{font-size:1.12em}.font-sizes button.font-xl{font-size:1.25em}html[data-font=xl] .segmented button{padding:6px 10px}html[data-font=xl] .toolbar-right{gap:0}html[data-font=xl] .toolbar-right .icon-btn{min-width:44px}html[data-font=xl] .cell .sub{letter-spacing:-.5px;font-size:10px}.rename-all{border-radius:var(--r-md);background:var(--accent-tint);padding:8px 12px}.recently-deleted summary{cursor:pointer;min-height:var(--tap);align-items:center;font-weight:700;display:flex}.deleted-list{margin:4px 0 0;padding:0;list-style:none}.deleted-list li{border-bottom:1px dotted var(--line-strong);align-items:center;gap:8px;padding:8px 0;display:flex}.deleted-main{flex-wrap:wrap;flex:1;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.deleted-date{font-family:var(--num)}.deleted-title{overflow-wrap:anywhere}.deleted-ago{width:100%;font-size:15px}.update-bar{width:100%;min-height:var(--tap);border:2px solid var(--accent);border-radius:var(--r-md);background:var(--accent-tint);color:var(--accent-ink);font:inherit;text-align:center;margin:0 0 10px;padding:8px 14px;font-weight:700;display:block}.cell{position:relative}.holiday-doodle{width:15px;height:15px;animation:.32s cubic-bezier(.3,1.6,.5,1) .2s both pop-in;position:absolute;top:1px;right:1px;transform:rotate(8deg)}.hd-red{fill:#e0493f}.hd-red-dark{fill:none;stroke:#b3342c;stroke-width:1.5px}.hd-gold{fill:#f3c14b}.hd-gold-line{stroke:#e0a93a;stroke-width:1.5px;fill:none}.hd-orange{fill:#f09a3e}.hd-pink{fill:#f5a3bd}.hd-blue{fill:#8cc3ea}.hd-white{fill:#fff;stroke:#e5d5bd;stroke-width:1px}.hd-green{fill:#8cc97a}.hd-rope{fill:none;stroke:#c9a46a;stroke-width:1.6px}.hd-sun{fill:#f5b942}.hd-moon{fill:#f7d56a}.hd-moon-dark{fill:#e8b84a}.hd-bowl{fill:#9ecbe8}.flag-red{fill:#fe0000}.flag-blue{fill:#000095}.flag-white{fill:#fff}.hr-snow{fill:none;stroke:#6fb3e0;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.hr-snow.thick{stroke-width:2px}.hd-line{fill:none;stroke:#8a5a3c;stroke-width:1.5px;stroke-linecap:round}.hd-line-green{fill:none;stroke:#6aa84f;stroke-width:1.6px;stroke-linecap:round}.loading-beads{width:24px;height:24px;animation:1.6s linear infinite beads-turn}.loading-beads circle{fill:var(--accent-ink);opacity:.35}.loading-beads circle.lead{opacity:1}.icon-btn:disabled:has(.loading-beads){opacity:1}@keyframes beads-turn{to{transform:rotate(360deg)}}.loading-line{align-items:center;gap:8px;display:flex}.loading-hearts{gap:4px;display:inline-flex}.loading-hearts i{background:var(--accent);width:9px;height:9px;clip-path:path("M4.5 8.5C1.8 6.6.5 5.3.5 3.6.5 2.1 1.6 1 3 1c.7 0 1.2.3 1.5.8C4.8 1.3 5.3 1 6 1c1.4 0 2.5 1.1 2.5 2.6 0 1.7-1.3 3-4 4.9z");animation:.9s ease-in-out infinite heart-hop}.loading-hearts i:nth-child(2){animation-delay:.15s}.loading-hearts i:nth-child(3){animation-delay:.3s}@keyframes heart-hop{0%,60%,to{transform:none}30%{transform:translateY(-5px)}}.season-mark{width:12px;height:12px;animation:.32s cubic-bezier(.3,1.6,.5,1) .25s both pop-in;position:absolute;top:2px;left:2px;transform:rotate(-10deg)}.sm-spring circle{fill:#f5a3bd}.sm-spring .sm-center{fill:#f3c14b}.sm-summer path{fill:#8cc97a}.sm-autumn path{fill:#e3743a}.sm-winter .sm-snow{fill:none;stroke:#8fbadb;stroke-width:2.4px;stroke-linecap:round}@media (width<=500px){.segmented button{padding:6px 12px}.segmented .icon{display:none}.toolbar-right{gap:0}.today-pill{padding:0 10px;font-size:15px}}@media (width<=420px){body{font-size:18px}.page{padding:10px 10px 48px}.weekdays,.week,.grid{gap:2px}.cell{min-height:58px;padding:2px 1px 3px}.cell .num{min-width:28px;height:28px;font-size:18px}.cell .sub{font-size:11px}.mark{padding:2px 4px;font-size:12px}.sheet{padding:20px 14px 14px}.sheet-month,.sheet-day{font-size:46px}.month-heading .month{font-size:38px}}.cell-seal{z-index:45;pointer-events:none;border:2.5px solid var(--stamp);width:32px;height:32px;color:var(--stamp);opacity:0;background:radial-gradient(circle at 30% 35%,#ffffff8c,#fff4f059);border-radius:5px;place-items:center;font-size:18px;font-weight:800;line-height:1;display:grid;position:fixed;top:0;left:0}.entry-btn.written{animation:.9s cubic-bezier(.55,.1,.35,1) .25s both write-in;position:relative}@keyframes write-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.entry-btn.written:after{content:"";background:linear-gradient(90deg, transparent, var(--stamp));transform-origin:0;opacity:0;border-radius:2px;width:100%;height:2px;animation:1.5s ease-out .25s both ink-line;position:absolute;bottom:2px;left:0}@keyframes ink-line{0%{opacity:.7;transform:scaleX(0)}55%{opacity:.6;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.editor.crumple{transform-origin:8% 0;animation:.42s cubic-bezier(.5,0,.75,.3) forwards peel-off}@keyframes peel-off{0%{opacity:1;transform:none}35%{opacity:1;transform:rotate(2.5deg)translateY(4px)}to{opacity:0;transform:rotate(9deg)translate(24px,90px)}}.entry-btn.unfold{transform-origin:0%;animation:.7s cubic-bezier(.25,.9,.3,1) both stick-back}@keyframes stick-back{0%{opacity:0;transform:translate(-28px)rotate(-3deg)}55%{opacity:1;transform:translate(3px)rotate(.8deg)}78%{transform:translate(-1px)rotate(-.3deg)}to{opacity:1;transform:none}}.book-stage{perspective:1100px;perspective-origin:0 45%;height:min(64vh,600px);margin:4px 10px 0 0;position:relative}.book-edges{pointer-events:none;border-radius:6px 14px 14px 6px;position:absolute;inset:0;box-shadow:2px 2px #f3ecdd,4px 4px #e9dfca,6px 6px #f3ecdd,8px 8px #e3d8c1,10px 10px 14px #503c1e2e}.leaf{transform-style:preserve-3d;transform-origin:0%;position:absolute;inset:0}.leaf.on-cover.current{cursor:pointer}.leaf{will-change:transform}.leaf.current{z-index:3}.leaf.below{z-index:2}.leaf.stacked{z-index:1}.leaf.turned{z-index:0;visibility:hidden;transform:rotateY(-180deg)}.leaf.turning-next,.leaf.turning-prev{z-index:4;pointer-events:none}.leaf.turning-next{animation:.82s cubic-bezier(.42,.02,.25,1) forwards leaf-next}.leaf.turning-prev{animation:.82s cubic-bezier(.42,.02,.25,1) forwards leaf-prev}@keyframes leaf-next{0%{transform:rotateY(0)translateZ(0)}14%{transform:rotateY(-12deg)translateZ(6px)}50%{transform:rotateY(-95deg)translateZ(40px)}to{transform:rotateY(-180deg)translateZ(0)}}@keyframes leaf-prev{0%{transform:rotateY(-180deg)translateZ(0)}50%{transform:rotateY(-85deg)translateZ(40px)}86%{transform:rotateY(-10deg)translateZ(6px)}to{transform:rotateY(0)translateZ(0)}}.leaf-front,.leaf-back{backface-visibility:hidden;position:absolute;inset:0}.leaf.turning-next .leaf-page,.leaf.turning-prev .leaf-page{overflow:hidden}.leaf-back{background:linear-gradient(270deg,#e6dcc6,#f6f0e2 30%,#fbf7ef);border:1.5px solid #eadfcb;border-radius:14px 6px 6px 14px;transform:rotateY(180deg)}.leaf-light{pointer-events:none;opacity:0;background:linear-gradient(270deg,#00000057,#00000014 55%,#0000);border-radius:6px 14px 14px 6px;position:absolute;inset:0}.leaf.turning-next .leaf-light{animation:.82s ease-in forwards leaf-dark}.leaf.turning-prev .leaf-light{animation:.82s ease-out reverse forwards leaf-dark}@keyframes leaf-dark{0%{opacity:0}to{opacity:1}}.book-stage.flipping .leaf.current .leaf-front:after,.book-stage.flipping .leaf.below .leaf-front:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(90deg,#3c281459,#3c281414 45%,#0000 75%);border-radius:6px 14px 14px 6px;animation:.82s ease-out forwards shade-go;position:absolute;inset:0}@keyframes shade-go{0%{opacity:.2}45%{opacity:1}to{opacity:0}}.leaf-page{overscroll-behavior:contain;border-radius:6px 14px 14px 6px;position:absolute;inset:0;overflow-y:auto}.leaf-paper{background:#fbf7ef;border:1.5px solid #eadfcb;padding:14px 12px 16px;box-shadow:inset 10px 0 12px -10px #503c1e59}.leaf-empty{text-align:center;place-items:center;padding:24px;display:grid}.leaf-paper{flex-direction:column;display:flex}.leaf-paper .book-grid{flex:1;align-content:start;row-gap:2px}.leaf-paper .book-stamp .stamp{max-width:min(100%,116px,min(64vh,600px)/3 - 63.3333px)}.book-cover{background:radial-gradient(#ffffffd9 3.5px, transparent 4px) 0 0 / 26px 26px, radial-gradient(#ffffffd9 3.5px, transparent 4px) 13px 13px / 26px 26px, var(--accent-tint);box-shadow:inset 0 0 0 1.5px var(--accent), inset 12px 0 14px -10px #00000040;overflow:hidden}.book-cover:after{content:"";opacity:.92;background:url(/favicon.svg) 50%/contain no-repeat;width:40px;height:40px;position:absolute;bottom:28px;right:24px;transform:rotate(-8deg)}.cover-tape{background:repeating-linear-gradient(-45deg, var(--accent) 0 8px, #ffffffb3 8px 16px);opacity:.85;border-radius:3px;width:150px;height:26px;position:absolute;top:46px;left:-24px;transform:rotate(-18deg)}.cover-label{border:2px dashed var(--accent);color:var(--accent-ink);font-family:var(--num);white-space:nowrap;background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:16px 30px 14px;display:flex;position:absolute;top:24%;left:50%;transform:translate(-50%)rotate(-1.5deg);box-shadow:0 3px 10px #00000014}.cover-label b{letter-spacing:6px;font-size:30px}.cover-label small{letter-spacing:3px;color:var(--ink-soft);font-size:14px}.cover-hint{text-align:center;color:var(--accent-ink);font-size:16px;font-weight:700;position:absolute;bottom:24%;left:0;right:0}.book-nav{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.book-open{width:100%}.book-turn{border:1.5px solid var(--line-strong);background:var(--paper);min-height:48px;color:var(--accent-ink);font:inherit;white-space:nowrap;border-radius:999px;padding:8px 16px;font-weight:700}.book-turn:disabled{opacity:.4}.book-where{font-family:var(--num);color:var(--ink-soft);text-align:center;font-size:15px;font-weight:700}.book-stamp.newest .stamp{animation:.9s cubic-bezier(.3,.7,.4,1) .55s both seal-press}@keyframes seal-press{0%{opacity:0;filter:blur(2px);transform:translateY(-30px)scale(1.4)rotate(-2deg)}30%{opacity:1;filter:blur(1px);transform:translateY(0)scale(1.05,.95)rotate(-6deg)}45%{filter:blur(.3px);transform:scale(1)rotate(-6deg)}to{opacity:.93;filter:blur();transform:rotate(-6deg)}}.pull-indicator{z-index:20;pointer-events:none;background:var(--paper);opacity:0;border-radius:50%;width:40px;height:40px;padding:6px;transition:transform .38s cubic-bezier(.3,1.5,.5,1),opacity .26s;position:fixed;top:0;left:50%;transform:translate(-50%,-48px);box-shadow:0 3px 10px #00000026}.pull-indicator.dragging{transition:none}.pull-indicator svg{width:100%;height:100%;display:block}.pull-indicator circle{fill:var(--accent-ink);opacity:.3;transition:opacity .2s}.pull-indicator circle.lead,.pull-indicator.ready circle{opacity:1}.pull-indicator.refreshing svg{animation:1.2s linear infinite beads-turn}.pull-indicator.refreshing circle{opacity:.35}.pull-indicator.refreshing circle.lead{opacity:1}.day-splash{z-index:50;pointer-events:none;background:#fffaf1;place-items:center;animation:1.6s cubic-bezier(.6,0,.3,1) forwards paper-lift;display:grid;position:fixed;inset:0}.day-seal{width:120px;height:120px;animation:.9s cubic-bezier(.3,.7,.4,1) .12s both seal-press}@keyframes paper-lift{0%,62%{opacity:1;transform:none}to{opacity:0;transform:translateY(-40px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.cell:active{transform:none}}.import-data{border-top:2px dotted var(--line);flex-direction:column;gap:8px;width:100%;padding:10px 0;display:flex}.import-data input[type=file]{border-style:dashed;width:100%;min-height:0;padding:6px}.import-plan{border-radius:var(--r-md);background:var(--accent-tint);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.import-problems{color:var(--warn-ink);margin:0;padding-left:1.2em;font-size:16px}.search-box{border:2px solid var(--accent);border-radius:var(--r-md);background:var(--paper);min-height:56px;color:var(--accent-ink);align-items:center;gap:8px;padding:0 6px 0 14px;display:flex}.search-box input{background:0 0;border:none;flex:1;min-width:0;padding:8px 0;font-size:20px}.search-box input:focus{outline:none}.search-box:focus-within{outline:3px solid var(--focus);outline-offset:2px}.search-box input::-webkit-search-cancel-button{display:none}.search-tip{font-size:16px}.search-count{font-weight:700}.search-date{font-size:20px}mark{background:var(--warn-bg);color:var(--ink);border-radius:3px;padding:0 1px;box-shadow:inset 0 -3px #e8c75a}.palette-custom{cursor:pointer;background:conic-gradient(#e85d5d,#f2b14f,#e8e25a,#6cc36b,#58b7e0,#7b74e0,#d86bc4,#e85d5d);place-items:center;font-size:22px;display:grid;position:relative;overflow:hidden}.palette-custom.on{background:var(--c)}.palette-custom input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.palette-custom:focus-within{outline:3px solid var(--focus);outline-offset:2px}.palette-note{font-size:16px}.editor:focus{outline:none}.count-field,.amount-field{flex-wrap:wrap;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.count-field input,.amount-field input{width:9em;min-height:56px;font-size:26px;font-family:var(--num);text-align:right}.count-field .muted{width:100%;font-size:16px;font-weight:400}.mode-list{flex-direction:column;gap:6px;display:flex}.mode-choice{text-align:left;border-radius:var(--r-md);flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px}.mode-choice .mode-label{font-weight:700}.mode-choice .muted{font-size:15px;font-weight:400}.mode-choice.on{border-color:var(--c);background:var(--t)}.mode-choice.on .mode-label:before{content:"✓ "}.mode-tabs{border-radius:var(--r-md);background:var(--accent-tint);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid}.mode-tabs button{border-radius:var(--r-sm);min-height:52px;color:var(--accent-ink);background:0 0;border:none;padding:4px 6px;font-size:18px;font-weight:700}.mode-tabs button.on{background:var(--paper);color:var(--ink);box-shadow:0 0 0 2px var(--accent-strong)}.count-box{border-radius:var(--r-md);background:var(--accent-tint);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.count-box .muted{font-size:16px}.past-names{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.past-names .chip{--c:var(--accent-ink);--t:var(--paper)}.whats-new{border-radius:var(--r-lg);background:var(--paper);flex-direction:column;gap:12px;width:100%;max-width:420px;max-height:86vh;padding:28px 20px 18px;animation:.36s cubic-bezier(.3,1.4,.5,1) both pop-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 10px 30px #0000002e}.whats-new .washi{top:-12px}.whats-new-title{text-align:center;color:var(--accent-ink);margin:0;font-size:24px}.whats-new-list{flex-direction:column;gap:14px;display:flex}.release{border-top:2px dotted var(--line-strong);padding-top:10px}.release:first-child{border-top:none;padding-top:0}.release-head{align-items:baseline;gap:10px;margin:0 0 6px;font-size:18px;display:flex}.release-head b{font-family:var(--num);color:var(--accent-ink)}.release-head .muted{font-size:15px;font-weight:400}.release ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.release li{line-height:1.5}.release-type{color:var(--ink-soft);white-space:nowrap;margin-right:6px;font-size:14px;font-weight:700;display:inline-block}.release-type.new{color:var(--dharma)}.release-type.fix{color:var(--travel)}.version-line{color:var(--ink-soft);font:inherit;background:0 0;border:none;align-self:center;min-height:44px;font-size:15px}.wellness-share{justify-content:center}.share-open{color:var(--dining);font:inherit;background:#fff;border:1.5px dashed #b9d6aa;border-radius:999px;min-height:44px;margin:4px auto 0;padding:8px 18px;font-weight:700;display:block}.share-card{border-radius:var(--r-lg);background:var(--paper);flex-direction:column;gap:10px;width:100%;max-width:420px;max-height:90vh;padding:16px 18px 18px;display:flex;overflow-y:auto;box-shadow:0 10px 30px #0000002e}.share-preview{border-radius:var(--r-md);border:1.5px solid var(--line);width:100%;height:auto;display:block}.share-hint{text-align:center;margin:0;font-size:14px}a.share-save{background:var(--accent-strong);color:#fff;border-radius:var(--r-md);justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:flex}@media (width<=380px){.masthead-row{padding:4px 8px 0}.month-heading .month{font-size:36px}.month-heading .month-unit{font-size:19px}.add-btn{min-height:46px;margin-bottom:8px;font-size:18px}.cell{min-height:54px}.cell .num{min-width:26px;height:26px;font-size:17px}.sheet{margin:16px 2px 0;padding:18px 12px 12px}.sheet-month,.sheet-day{font-size:40px}.year-month-title{font-size:34px}.editor{padding:14px 14px calc(14px + env(safe-area-inset-bottom));gap:10px}.celebrate-card{padding:18px 14px 16px}.stamp{width:160px}.whats-new,.share-card,.story-card{padding-left:14px;padding-right:14px}.book-turn{padding:8px 12px}}@media (height<=700px){.celebrate-card .stamp{width:140px}.story-lines{font-size:17px;line-height:1.6}.story-title{font-size:28px}.cover-label b{font-size:26px}}
