@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D_Q6m-an.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-OnFqUBEL.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-5PZORFv8.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f4f1ea;--ink: #16123a;--muted: #6b668a;--line: #e4dfd3;--card: #fff;--violet: #5b3df5;--lilac: #e4defd;--red: #d93a26;--redsoft: #ffe1dc;--green: #0f8a5f;--greensoft: #d4f5e7;--unsure: #a35f00;color-scheme:light;font-family:Space Grotesk Variable,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:15px;line-height:1.5}button,input,select{font:inherit;color:inherit}h1{font-size:32px;font-weight:700;letter-spacing:-.03em;margin:0 0 6px}h2{font-size:16px;font-weight:700;margin:0}p{margin:0}:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:6px}.page{max-width:1240px;margin:0 auto;padding:0 40px 96px}.muted{color:var(--muted)}.neg,.negative{color:var(--red)}.pos,.positive{color:var(--green)}.num{text-align:right;font-variant-numeric:tabular-nums}.empty{color:var(--muted);padding:24px 0}.link{border:0;background:none;padding:0;cursor:pointer;color:var(--violet);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#5b3df559;font-size:inherit}.link:hover{text-decoration-color:currentColor}.splash{min-height:100vh;display:grid;place-items:center;font-weight:700;font-size:20px;color:var(--muted)}.login{max-width:760px;margin:0 auto;padding:12vh 24px 64px}.login .headline{margin-top:28px}.login-btn{margin-top:32px;border:0;background:var(--ink);color:#fff;font-weight:700;font-size:17px;padding:16px 26px;border-radius:99px;cursor:pointer;transition:transform .15s}.login-btn:hover{transform:translateY(-1px)}.login-form{display:flex;flex-direction:column;gap:14px;max-width:380px;margin-top:36px}.login-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.login-form input{border:2px solid var(--line);background:var(--card);border-radius:14px;padding:12px 14px;font-size:16px;font-weight:400}.login-form input:focus{outline:none;border-color:var(--violet)}.login-form .login-btn{margin-top:6px;align-self:flex-start}.login-btn:disabled,.login-google:disabled{opacity:.6;cursor:default}.login-links{display:flex;gap:20px;flex-wrap:wrap;font-size:14px}.login-or{max-width:380px;margin:28px 0 16px;color:var(--muted);font-size:14px}.login-google{border:2px solid var(--line);background:var(--card);font-weight:600;padding:12px 20px;border-radius:99px;cursor:pointer}.login-google:hover{border-color:var(--ink)}.login-msg{margin-top:16px}.logout{border:0;background:none;color:var(--muted);font-weight:500;cursor:pointer;padding:8px 0;white-space:nowrap}.logout:hover{color:var(--ink)}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0}.logo{font-weight:700;font-size:18px;letter-spacing:-.02em}.header .nav{margin-left:auto}.nav{display:flex;gap:4px;background:var(--card);border-radius:99px;padding:4px}.nav button{border:0;background:none;padding:8px 16px;border-radius:99px;cursor:pointer;color:var(--muted);font-weight:500;white-space:nowrap}.nav button:hover{color:var(--ink)}.nav button.active{color:#fff;background:var(--ink)}.hero{padding:28px 0 8px}.kicker{color:var(--violet);font-weight:600;font-size:15px}.kicker:first-letter{text-transform:uppercase}.headline{font-size:clamp(36px,5.6vw,72px);line-height:1.02;letter-spacing:-.045em;font-weight:700;max-width:1000px;margin:10px 0 0}.headline em{font-style:normal;color:var(--green);white-space:nowrap}.headline em.neg{color:var(--red)}.hero-sub{margin-top:16px;font-size:18px;color:var(--muted)}.hero-sub strong{color:var(--ink)}.dash{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:32px;margin-top:40px;align-items:start}.envelopes{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr auto;gap:12px;min-height:420px}.env{border-radius:28px;padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-width:0}.env-head{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:500}.env-amount{font-size:clamp(36px,4.4vw,60px);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.reserved{background:var(--lilac);grid-row:1 / 3}.chips{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;flex:1}.chip{background:#ffffffb3;border-radius:99px;padding:4px 12px;font-size:14px;font-variant-numeric:tabular-nums}.chip small{color:var(--muted);font-size:12.5px}.unsure-chip{box-shadow:inset 0 0 0 1.5px #a35f0073}.env-empty{color:var(--muted)}.free{background:var(--green);color:#fff}.free.is-neg{background:var(--red)}.free .env-head span:last-child{opacity:.85}.meal{background:var(--card)}.meal .env-head{flex-direction:column;gap:2px}.meal .env-amount{font-size:clamp(30px,3vw,40px)}.side{display:flex;flex-direction:column;gap:12px;min-width:0}.missions{display:flex;flex-direction:column;gap:12px}.mission{background:var(--violet);color:#fff;border-radius:24px;padding:22px 24px}.mission.ok{background:var(--ink)}.mission-k{font-size:12px;font-weight:700;letter-spacing:.06em;opacity:.8}.mission-t{font-size:24px;font-weight:700;line-height:1.2;letter-spacing:-.02em;margin-top:6px}.mission-s{font-size:14px;opacity:.85;margin-top:8px}.mission-btn{margin-top:16px;border:0;background:#fff;color:var(--violet);font-weight:700;padding:10px 18px;border-radius:99px;cursor:pointer;transition:transform .15s}.mission-btn:hover{transform:translateY(-1px)}.mission-btn:active{transform:scale(.97)}.checks{background:var(--card);border-radius:24px;padding:6px 8px}.check-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border:0;background:none;padding:12px 14px;border-radius:16px;cursor:pointer}.check-row+.check-row{border-top:1px solid var(--line);border-radius:0 0 16px 16px}.check-row:hover{background:var(--bg)}.check-row strong{display:block;font-weight:600}.check-row small{display:block;color:var(--muted);font-size:13.5px}.label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}.accounts{display:grid;grid-template-columns:1fr;gap:10px}.acc{display:flex;flex-direction:column;text-align:left;border:0;background:var(--card);border-radius:22px;padding:18px 22px;cursor:pointer;transition:transform .15s}.acc:hover{transform:translateY(-1px)}.acc-name{color:var(--muted);font-size:14px}.acc-value{font-size:38px;font-weight:700;letter-spacing:-.04em;line-height:1.15;font-variant-numeric:tabular-nums}.acc-note{font-size:13.5px;color:var(--muted)}.block{margin-top:56px}.block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.title{font-size:26px;letter-spacing:-.03em}.toggle{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);cursor:pointer}.toggle input{accent-color:var(--violet);width:16px;height:16px;margin:0}.cal-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:32px;align-items:start}.streak{background:var(--ink);color:var(--bg);border-radius:99px;padding:6px 14px;font-size:13px;font-weight:600;white-space:nowrap}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.cal-week{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:8px;padding-left:4px}.cal-day{position:relative;aspect-ratio:1 / .92;border:2px solid transparent;background:var(--card);border-radius:18px;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;cursor:pointer;min-width:0;transition:transform .15s,background .2s}.cal-day:hover{transform:translateY(-2px)}.cal-day:active{transform:scale(.96)}.cal-n{font-size:24px;font-weight:700;line-height:1}.cal-bottom{display:flex;flex-direction:column;min-width:0;width:100%}.cal-amt{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.cal-tag{font-size:12px;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-dot{display:none}.cal-day.past:not(.held){opacity:.55}.cal-day.debit{background:var(--redsoft)}.cal-day.debit .cal-amt{color:var(--red)}.cal-day.debit .cal-tag{color:#8a3a2e}.cal-day.over{box-shadow:inset 0 0 0 2px var(--red)}.cal-day.held{background:var(--greensoft)}.cal-day.held .cal-tag{color:var(--green)}.cal-day.pay{background:var(--ink);color:var(--bg)}.cal-day.today .cal-tag{color:var(--violet)}.cal-day.today:after{content:"";position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--violet)}.cal-day.selected{border-color:var(--violet)}.cal-detail{background:var(--card);border-radius:28px;padding:26px;position:sticky;top:20px}.detail-date{font-size:24px;font-weight:700;letter-spacing:-.02em}.detail-date:first-letter{text-transform:uppercase}.detail-badge{display:inline-block;margin-top:6px;background:var(--lilac);color:var(--violet);font-size:12.5px;font-weight:600;padding:2px 10px;border-radius:99px}.detail-empty{color:var(--muted);margin-top:14px}.detail-empty strong{color:var(--ink)}.detail-ops{margin-top:10px}.detail-op{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.hold-btn{margin-top:20px;width:100%;border:2px dashed #c9c2b3;background:none;border-radius:16px;padding:14px;font-weight:600;cursor:pointer}.hold-btn:hover{background:var(--bg)}.hold-btn.on{border-style:solid;border-color:var(--green);color:var(--green);background:var(--greensoft)}.statement{background:var(--card);border-radius:28px;padding:8px 28px}.st-day{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;border-bottom:1px solid var(--line)}.st-day:last-child{border-bottom:0}.st-date{padding:16px 0;font-weight:600}.st-date:first-letter{text-transform:uppercase}.op{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0}.op+.op{border-top:1px solid var(--line)}.op-text{min-width:0}.op-name{font-weight:600}.op-meta{font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}.op-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.unsure{color:var(--unsure);font-size:13px;font-weight:500;white-space:nowrap}.unsure .link{color:var(--unsure);text-decoration-color:#a35f0066}.note{color:var(--muted);font-size:14px;max-width:640px;margin-top:10px}.note.next{margin-top:20px}.section{margin-top:20px;background:var(--card);border-radius:28px;padding:24px 28px}.section.first{background:none;padding:28px 0 8px;margin-top:0}.section.first h1{font-size:clamp(36px,5vw,56px);letter-spacing:-.045em;line-height:1.05}.section>h2,.section-head{margin-bottom:12px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.section-head h2{font-size:20px;letter-spacing:-.02em}.section .note{margin-top:0;margin-bottom:12px}.section.first .note{margin-top:8px}.bare{border:1px solid transparent;background:transparent;border-radius:8px;padding:6px 8px;min-width:0;width:100%}.bare:hover{border-color:var(--line);background:var(--bg)}.bare:focus{border-color:var(--violet);outline:none;background:#fff}select.bare{cursor:pointer;width:auto}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field-inline{display:flex;align-items:center;gap:12px;margin:20px 0 8px;flex-wrap:wrap}.field-inline input{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:8px 10px}.grid{display:flex;flex-direction:column}.grid-head,.grid-row{display:grid;gap:8px;align-items:center}.grid-head{font-size:13px;color:var(--muted);font-weight:500;padding:0 0 8px;border-bottom:1px solid var(--line)}.grid-head>span:not(.num){padding-left:9px}.grid-head>span:first-child{padding-left:0}.grid-row{padding:6px 0;border-bottom:1px solid var(--line)}.grid-row:last-child{border-bottom:0}.grid-accounts .grid-head,.grid-accounts .grid-row{grid-template-columns:minmax(140px,1fr) 160px 120px 150px 76px}.grid-ops .grid-head,.grid-ops .grid-row{grid-template-columns:minmax(0,1fr) 130px 150px 110px 80px}.grid-row .bare:first-child{margin-left:-9px}.cell-label{display:flex;flex-direction:column;min-width:0;font-weight:600}.cell-label .bare{margin-left:-9px;font-weight:600}.cell-label .unsure,.hint{font-size:12.5px;padding-bottom:2px}.hint{color:var(--muted);font-weight:400}.cell-day{display:flex;align-items:center;gap:2px}.cell-day .day{width:52px}.cell-amount-flow{display:flex;align-items:center}.sign{width:auto;padding:6px 2px}.amount-input{display:flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}.amount-input input{text-align:right}.amount-cap{display:none}.remove{border:0;background:none;color:var(--muted);font-size:13px;cursor:pointer;padding:6px 0;text-align:right;opacity:0;transition:opacity .15s}.grid-row:hover .remove,.remove:focus-visible{opacity:1}.remove:hover{color:var(--red)}.add{margin-top:14px;border:2px dashed #d6cfc0;background:none;padding:10px 16px;border-radius:99px;cursor:pointer;font-weight:600}.add:before{content:"+";margin-right:8px;color:var(--violet)}.add:hover{border-color:var(--violet)}.past{margin-top:20px;color:var(--muted);font-size:14px}.past summary{cursor:pointer;margin-bottom:8px}.past .grid{color:var(--ink)}.share-list{list-style:none;margin:0;padding:0}.share-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-weight:600}.share-list li .muted{font-weight:400;font-size:14px}.share-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.share-form input{flex:1;min-width:200px;border:2px solid var(--line);border-radius:99px;padding:9px 16px;background:var(--card)}.share-form input:focus{outline:none;border-color:var(--violet)}.share-form .add{margin-top:0}.share-form .add:before{content:none}.banner{background:var(--redsoft);color:var(--red);border-radius:16px;padding:12px 16px;margin:0 0 16px;font-weight:500}.footer{margin-top:40px;color:var(--muted);font-size:13px}@media(max-width:1000px){.page{padding:0 24px 80px}.dash{grid-template-columns:1fr}.accounts{grid-template-columns:1fr 1fr}.cal-wrap{grid-template-columns:1fr}.cal-detail{position:static}}@media(max-width:860px){.grid-accounts .grid-head{display:none}.grid-accounts .grid-row{grid-template-columns:1fr 1fr 1fr;row-gap:0;column-gap:12px;padding:10px 0}.grid-accounts .cell-label{grid-column:1 / -2}.grid-accounts .grid-row>select.bare{margin-left:-9px;justify-self:start}.grid-accounts .amount-input{flex-wrap:wrap}.grid-accounts .amount-cap{display:block;width:100%;font-size:12px;color:var(--muted);font-weight:500}.grid-accounts .amount-input input{text-align:left;width:80px;margin-left:-9px}.grid-accounts .remove{opacity:1;justify-self:end;grid-column:3;grid-row:1}}@media(max-width:640px){.page{padding:0 16px 64px}.header{flex-direction:column;align-items:stretch;gap:12px;padding:16px 0 8px}.nav button{flex:1;padding:8px 6px;font-size:14px}.hero{padding-top:16px}.hero-sub{font-size:16px}.dash{margin-top:28px;gap:12px}.envelopes{grid-template-columns:1fr;grid-template-rows:none;min-height:0;gap:8px}.reserved{grid-row:auto}.env{border-radius:22px;padding:18px 20px}.env-amount{font-size:38px}.mission-t{font-size:21px}.accounts{grid-template-columns:1fr 1fr;gap:8px}.acc{padding:14px 16px;border-radius:18px}.acc-value{font-size:28px}.block{margin-top:40px}.title{font-size:22px}.cal-grid{gap:5px}.cal-week{font-size:12px;padding-left:0;text-align:center}.cal-day{aspect-ratio:1;border-radius:12px;padding:6px;align-items:center;justify-content:center}.cal-n{font-size:17px}.cal-bottom{display:none}.cal-dot{display:block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.6;margin-top:4px}.cal-day.debit .cal-dot{background:var(--red);opacity:1}.cal-day.today:after{top:5px;right:5px;width:6px;height:6px}.cal-detail{border-radius:22px;padding:20px}.statement{border-radius:22px;padding:4px 18px}.st-day{grid-template-columns:1fr;gap:0}.st-date{padding:14px 0 0;font-size:13.5px;color:var(--muted)}.op{padding:8px 0 12px}.section{border-radius:22px;padding:18px}.grid-ops .grid-head{display:none}.grid-ops .grid-row{grid-template-columns:1fr 1fr;row-gap:0;column-gap:12px;padding:10px 0}.grid-ops .cell-label{grid-column:1 / -1}.grid-ops .amount-input input{text-align:left;width:96px}.grid-ops .grid-row>select.bare{margin-left:-9px;justify-self:start}.grid-ops .remove{opacity:1;justify-self:end}}
