@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2) format("woff2"),url(/assets/source-sans-3-latin-400-normal-RR2C27NP.woff) format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2) format("woff2"),url(/assets/source-sans-3-latin-600-normal-Ck0n4g8U.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff")}:root{--paper: #f3f0e8;--paper-2: #e7e1d4;--card: #fffcf8;--ink: #1c1916;--muted: #6f675e;--line: #e4dccb;--line-strong: #d4cbb8;--green: #146b45;--green-soft: #e5f2eb;--blue: #1e4f86;--red: #9d3b34;--sans: "Source Sans 3", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--serif: "Fraunces", "Source Sans 3", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--nav-h: calc(48px + env(safe-area-inset-bottom)) ;--bar-h: 48px;--edge: clamp(10px, 3.4vw, 16px);color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:clamp(.9rem,.84rem + .35vw,1.05rem);line-height:1.35}*{box-sizing:border-box}html{scroll-padding-bottom:calc(var(--nav-h) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:clip}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--paper);overscroll-behavior-y:none;overflow-x:clip}button,a,.switch,.tabs{touch-action:manipulation}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,.brand strong{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;margin:0}h1{font-size:1.35rem;line-height:1.15}h2{font-size:.95rem;line-height:1.2;font-family:var(--sans);font-weight:600;letter-spacing:0}::selection{background:#d7ecdf}.shell{min-height:100vh;min-height:100dvh;max-width:100%}.top{position:sticky;top:0;z-index:6;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--card);border-bottom:1px solid var(--line)}.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--bar-h);padding:0 14px}.brand{display:flex;gap:8px;align-items:center;min-width:0}.brand div{display:flex;align-items:baseline;gap:8px;min-width:0}.brand strong{font-size:1.05rem;line-height:1}.brand em{color:var(--muted);font-style:normal;font-family:var(--sans);font-size:.75rem;white-space:nowrap}.mark{width:22px;height:22px;display:block;flex:none}.tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.chip,.primary,.ghost,.danger{border-radius:7px;border:1px solid var(--line-strong);background:var(--card);padding:5px 9px;line-height:1.2;font-size:.86rem}.chip{color:var(--blue);font-variant-numeric:tabular-nums;font-weight:600}.switch{display:flex;padding:2px;background:var(--paper-2);border-radius:8px}.switch button{border:0;background:transparent;border-radius:6px;padding:4px 8px;color:var(--muted);font-weight:600;font-size:.82rem}.switch button.on{background:var(--card);color:var(--ink)}.switch button:disabled{opacity:.4;cursor:default}.main{width:min(920px,100%);margin:0 auto;padding:14px var(--edge) calc(var(--nav-h) + 20px)}.stack{display:grid;gap:10px}.page-head{display:flex;align-items:center;justify-content:flex-start;gap:12px 16px;min-height:36px}.date-line{font-size:1.2rem}.banner,.form-error{color:var(--red);margin:0}.banner{padding:6px 14px 8px;border-top:1px solid var(--line);background:#fbf3f1;font-size:.86rem}.muted,.help,.formula{color:var(--muted)}.formula,.help{margin:4px 0 0;font-size:.82rem}.ledger-card,.form-card,.sheet,.note-card{background:var(--card);border:1px solid var(--line);border-radius:8px}.ledger-card,.note-card{padding:12px 14px 2px}.note-card{padding-bottom:12px}.form-card{display:grid;gap:10px;padding:12px 14px}.hero-block{padding-bottom:2px}.eyebrow{margin:0 0 2px;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}:lang(zh) .eyebrow{letter-spacing:.04em;text-transform:none;font-size:.78rem}.money{display:flex;flex-direction:row;align-items:baseline;justify-content:flex-end;gap:6px;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.money strong{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em;line-height:1.1}.money small{color:var(--muted);font-size:.75rem;font-weight:500}.money.hero{justify-content:flex-start;gap:10px;flex-wrap:wrap}.money.hero strong{font-family:var(--serif);font-weight:600;font-size:clamp(1.55rem,7.2vw,2.35rem);letter-spacing:-.03em}.money.hero small{font-size:.95rem}.is-short .money.hero strong{color:var(--red)}.missing{color:var(--muted)}.stat-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px -14px 0;border-top:1px solid var(--line)}.stat-strip>div{padding:8px 12px 10px 14px;min-width:0}.stat-strip>div+div{border-left:1px solid var(--line)}.stat-strip dt{font-size:.75rem;font-weight:600}.stat-strip dd{margin:2px 0 0}.stat-strip .money{justify-content:flex-start;flex-wrap:wrap;white-space:normal}.stat-strip .money strong{font-size:clamp(.82rem,3.3vw,1.02rem)}.cash-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:8px 10px;background:var(--card);border:1px solid var(--line);border-radius:8px}.cash-strip div{display:grid;gap:2px;min-width:0}.cash-strip dt{font-size:.72rem;font-weight:600}.cash-strip dd{margin:0;min-width:0}.cash-strip .money{flex-direction:column;align-items:flex-start;gap:0;white-space:normal}.cash-strip .money strong{font-size:clamp(.78rem,3.1vw,.95rem)}button.text{border:0;background:none;padding:0;color:var(--green);font-weight:600;font-size:.86rem}.blue{color:var(--blue)}.red{color:var(--red)}.green,.gain{color:var(--green)}.row-actions,.actions,.section-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-head{justify-content:space-between;min-height:32px}.section-head a{color:var(--green);font-weight:600;font-size:.86rem}.count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600;font-size:.82rem}.primary,a.primary{background:var(--green);color:#f6f3ea;border-color:var(--green);font-weight:600}.ghost{background:transparent}.danger{color:var(--red);background:transparent;border-color:transparent;padding-inline:6px}.linkish{display:inline-flex;align-items:center;min-height:32px;padding-inline:12px}.sheet{padding:0 12px}.sheet .section-head{padding-top:8px}.ledger,.day-list,.product-list{list-style:none;margin:0;padding:0}.ledger li,.day-list li,.product-list li{border-top:1px solid var(--line)}.ledger li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:16px}.ledger a,.ledger button.line-name{display:flex;align-items:baseline;gap:8px;min-width:0;padding:7px 0;color:inherit;text-align:left;background:none;border:0}.ledger strong,.day-list strong,.product-list strong{font-weight:600;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger em,.day-list em,.product-list em{color:var(--muted);font-style:normal;font-size:.78rem;line-height:1.2}.day-list a{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;column-gap:clamp(8px,2vw,16px);min-height:34px;padding:4px 0;width:100%}.sheet:has(>.day-list),ul.day-list.sheet{width:fit-content;max-width:100%}.day-list a>span{display:flex;align-items:baseline;gap:8px;min-width:0}.register{width:max-content;max-width:100%;padding:2px 10px}.register .product-list li:first-child{border-top:0}.register .row{display:grid;grid-template-columns:15rem 3.1rem 44px 11rem;align-items:center;column-gap:10px;min-height:32px;margin:0 -4px;padding:0 4px;border-radius:4px}.register .row:hover{background:#f6f1e6}.register .row>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.register .when{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.78rem}.register .money{display:grid;grid-template-columns:7rem 3.5rem;justify-content:end;column-gap:6px}.register .money strong,.register .money small{text-align:right}.register .spark-slot{display:flex;justify-content:flex-end;width:44px;height:18px}.suggest{display:flex;flex-wrap:wrap;gap:6px}.suggest button{border:1px solid var(--line-strong);background:var(--paper);border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:600}label{display:grid;gap:4px;font-size:.78rem;font-weight:600;color:var(--muted)}label em{font-weight:500;font-style:normal}input,select,textarea{width:100%;max-width:100%;scroll-margin-top:72px;scroll-margin-bottom:28px;border:1px solid var(--line-strong);background:#fff;border-radius:7px;padding:8px 10px;font-size:max(16px,1em);font-weight:500;color:var(--ink)}.search{width:min(240px,46vw);padding:5px 10px;font-size:.88rem;background:var(--paper)}input:focus,select:focus{outline:2px solid #c5e0d1;outline-offset:1px;border-color:var(--green)}.figure{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(5.25rem,32%);gap:8px;align-items:end}.split button{min-height:36px}.preview{display:grid;gap:4px;padding:8px 0 0;border-top:1px solid var(--line)}.preview p{display:flex;justify-content:space-between;gap:12px;margin:0;align-items:baseline}.preview p>span{color:var(--muted);font-size:.82rem}.rate-line{font-variant-numeric:tabular-nums;font-weight:600;font-size:1.25rem;letter-spacing:-.02em;margin:0;display:flex;gap:8px;align-items:baseline}.rate-line em{font-size:.82rem;font-style:normal;font-weight:500;color:var(--muted)}.total-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;min-height:36px;border-top:1px solid var(--line);font-weight:600}.chart-wrap{container-type:inline-size;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 4px 0;max-width:100%}.chart-wrap svg{width:100%;height:auto;display:block}.tick{font-size:clamp(9px,3.1cqw,12px);fill:var(--muted);font-family:var(--sans)}.chart-tip{display:flex;gap:8px;align-items:baseline;margin:0;padding:2px 8px 8px;font-variant-numeric:tabular-nums}.chart-tip em{color:var(--muted);font-style:normal}.spark{width:44px;height:18px;display:block}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--card);border-top:1px solid var(--line);padding:2px max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left))}.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.day-pick{width:auto;max-width:16rem;padding:4px 8px;font-size:.82rem;background:var(--paper)}.saved-note{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 12px;background:var(--green-soft);color:var(--green);border-radius:8px;font-weight:600}@media(max-width:879px){.pin-save .actions{position:fixed;left:0;right:0;bottom:var(--nav-h);z-index:4;margin:0;padding:8px max(var(--edge),env(safe-area-inset-right)) 8px max(var(--edge),env(safe-area-inset-left));background:#fffcf8f5;border-top:1px solid var(--line)}.pin-save{margin-bottom:52px}html.keyboard-open .tabbar{display:none}html.keyboard-open .main{padding-bottom:20px}html.keyboard-open .pin-save{margin-bottom:0}html.keyboard-open .pin-save .actions{position:static;padding:0;background:transparent;border-top:0}.sheet:has(>.day-list),ul.day-list.sheet{width:100%}.register{width:100%}.register .spark-slot,.register .when{display:none}.register .row{grid-template-columns:minmax(0,1fr) auto}.register .money{grid-template-columns:auto auto}}.tabs a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0;text-align:center;color:var(--muted);font-weight:600;font-size:clamp(10px,2.7vw,13px);line-height:1.15;padding:4px 1px;border-radius:7px;-webkit-user-select:none;user-select:none}.tabs a.active{color:var(--green);background:var(--green-soft)}.stack>a{color:var(--green);font-weight:600;width:fit-content;font-size:.86rem}.empty h1{margin-bottom:4px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;margin:0;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:8px}.stats>div{display:grid;gap:2px;align-content:start;min-width:0}.stats span,.stats em{color:var(--muted);font-size:.75rem;font-style:normal;font-weight:600}.stats .money{justify-content:flex-start}.stats strong{font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}@media(max-width:879px){.brand em{display:none}.bar{flex-wrap:wrap;row-gap:6px;padding:8px var(--edge)}.tools{flex:1 1 auto;flex-wrap:wrap;justify-content:flex-end;min-width:0;max-width:100%}.chip{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.switch{flex:none}.switch button{padding:6px clamp(6px,2vw,10px)}.search,.day-pick{width:min(100%,16rem);font-size:max(16px,1em)}.page-head{flex-wrap:wrap;align-items:center}}@media(max-width:520px){.tools{flex:1 1 100%;flex-wrap:nowrap;justify-content:flex-start}.page-head{align-items:stretch}.search,.day-pick{width:100%}.stats{grid-template-columns:1fr}}@media(max-width:360px){.split,.stat-strip{grid-template-columns:1fr}.stat-strip>div+div{border-left:0;border-top:1px solid var(--line)}.cash-strip{gap:4px;padding-inline:8px}}@media(max-height:480px)and (max-width:879px){.main{padding-top:8px}.money.hero strong{font-size:1.45rem}}@media(min-width:880px){.shell{display:grid;grid-template-columns:148px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100vh;overflow:hidden}.top{grid-column:1 / -1}.tabbar{position:static;grid-column:1;grid-row:2;height:auto;align-self:stretch;display:flex;flex-direction:column;padding:8px;border-top:0;border-right:1px solid var(--line);background:transparent}.tabs{display:flex;flex-direction:column;gap:2px}.tabs a{justify-content:flex-start;min-height:36px;text-align:left;padding:6px 10px;font-size:.86rem}.day-list a{grid-template-columns:14rem max-content;width:auto}.stack{max-width:720px}.main{grid-column:2;grid-row:2;width:100%;max-width:none;margin:0;overflow:auto;padding:16px 28px 32px}}
