@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f6f5f2;--surface:#fff;--ink:#1d1d1f;--muted:#6b6b70;--line:#e3e1dc;--pen:#2f5d50;--pen-soft:#e5efeb;--owed:#a6402b;--owed-soft:#fbece8;--settled:#2f5d50;--settled-soft:#e5efeb;--display:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--body:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--body);color:var(--ink);background:var(--paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#141517;--surface:#1d1e21;--ink:#ecebe8;--muted:#9b9a97;--line:#2f3034;--pen:#7fc4ad;--pen-soft:#1f2f2a;--owed:#f0937e;--owed-soft:#3a221d;--settled:#7fc4ad;--settled-soft:#1f2f2a}}*{box-sizing:border-box}body{margin:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{flex-direction:column;gap:18px;max-width:880px;margin:0 auto;padding:20px 20px 72px;display:flex}h1,h2{color:var(--ink);margin:0}h2{font-size:1.05rem;font-weight:650;display:inline}.brand{font-family:var(--display);letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.month-nav{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:3px;display:flex}.month-nav>button:not(.link){width:34px;height:34px;color:var(--ink);background:0 0;border:none;border-radius:999px;padding:0;font-size:1.25rem;line-height:1}.month-nav>button:not(.link):hover{background:var(--pen-soft)}.month-label{text-align:center;min-width:8.5em;font-weight:600}.month-nav .link{padding-right:10px}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:2px;display:flex}button.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 12px;font-weight:550}button.tab:hover{color:var(--ink)}button.tab.active{color:var(--ink);border-bottom-color:var(--ink)}.tabs-spacer{flex:1}button.signed-in{color:var(--muted);font-size:.85rem}.hero{padding:8px 2px 4px}.hero-line{font-family:var(--display);letter-spacing:-.025em;max-width:22ch;margin:0 0 10px;font-size:clamp(1.9rem,5.5vw,3rem);font-weight:650;line-height:1.08}.hero-amount{white-space:nowrap}.hero.incoming .hero-amount,.hero.outgoing .hero-amount{color:var(--owed)}.hero.settled .hero-line{color:var(--settled)}.hero-sub{color:var(--muted);max-width:62ch;margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px}.card>h2,.card-head{margin-bottom:10px}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}details.card{background:0 0}details.card>summary{cursor:pointer;color:var(--muted)}details.card>summary h2{color:var(--muted);font-weight:600}details.card[open]{background:var(--surface)}details.card[open]>summary{margin-bottom:10px}details.card[open]>summary h2{color:var(--ink)}.hint,.empty{color:var(--muted);margin:10px 0;font-size:.875rem}.footnote{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.table-scroll{overflow-x:auto}table.bills{border-collapse:collapse;width:100%}.bills th,.bills td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 6px}.bills thead th{color:var(--muted);padding-top:0;font-size:.8rem;font-weight:500}.bills tfoot th{border-bottom:none;padding-top:12px;font-weight:700}.bills .num,.bills .actions,.payments .actions{text-align:right;white-space:nowrap}.bill-name{font-weight:600}.bill-meta{color:var(--muted);font-size:.8rem}tr.skipped .bill-name{color:var(--muted);text-decoration:line-through}@media (width<=640px){.bills:not(.regular) thead{display:none}.bills:not(.regular) tbody tr,.bills:not(.regular) tfoot tr{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;column-gap:10px;padding:10px 0;display:grid}.bills:not(.regular) td,.bills:not(.regular) th{border:none;padding:2px 0}.bills:not(.regular) td:nth-child(3):before{content:"Share ";color:var(--muted)}.bills:not(.regular) td:nth-child(3){text-align:left;font-size:.85rem}.bills:not(.regular) tfoot th:nth-child(3):before{content:"Share ";color:var(--muted);font-weight:400}.bills:not(.regular) tfoot th:nth-child(3){text-align:left}.app{padding-inline:14px}.card{padding:16px}}.bills.regular th,.bills.regular td{padding-inline:3px}.bills.regular input:not([type=month]):not([inputmode]){width:100%;min-width:6em}.bills.regular input[type=month]{width:10.5em}.bills.regular .money-input input{width:6em}.pct-cell input{text-align:right;width:3.8em}input,select{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 9px}select{padding-inline:6px}input:hover,select:hover{border-color:color-mix(in srgb, var(--line), var(--ink) 25%)}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--pen);outline-offset:1px}.money-input{color:var(--muted);align-items:center;gap:3px;display:inline-flex}.money-input input{text-align:right;width:7.5em;color:var(--ink)}.bills .money-input input,.payments .money-input input,.budget-edit .money-input input{background:0 0;border-color:#0000;font-weight:600}.bills .money-input input:hover,.payments .money-input input:hover,.budget-edit .money-input input:hover{border-color:var(--line)}.bills .money-input input:focus,.payments .money-input input:focus,.budget-edit .money-input input:focus{background:var(--surface);border-color:var(--pen)}.money-input.invalid input{border-color:var(--owed)}button{font:inherit;border:1px solid var(--pen);background:var(--pen);color:var(--surface);cursor:pointer;border-radius:8px;padding:8px 14px;font-weight:600}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{color:var(--pen);background:0 0}button.secondary:hover:not(:disabled){background:var(--pen-soft)}button.link{color:var(--pen);background:0 0;border:none;padding:4px 6px;font-weight:500}button.link:hover{text-decoration:underline}button.link.danger{color:var(--owed)}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.inline-form>input:not([type=date]):not([type=month]){flex:10em}.add-expense{margin:0 0 14px}label.until{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.payments{margin:0;padding:0;list-style:none}.payments li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 0;display:flex}.payments li:last-child{border-bottom:none}.payments .note{color:var(--muted);flex:12em}.payments li .note input{max-width:14em;color:var(--ink);font-weight:600}.payments strong{font-weight:650}.expenses .date{min-width:4.5em;color:var(--muted)}.pill{background:var(--pen-soft);color:var(--pen);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:550;display:inline-block}.categories{margin:0;padding:0;list-style:none}.category{border-bottom:1px solid var(--line);padding:12px 0}.category-head{justify-content:space-between;gap:12px;display:flex}.bar{background:var(--line);border-radius:3px;height:6px;margin:8px 0 6px;overflow:hidden}.bar-fill{background:var(--settled);border-radius:3px;height:100%}.category.over .bar-fill{background:var(--owed)}.category.over .category-foot{color:var(--owed)}.category-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.budget-edit{align-items:center;gap:4px;display:inline-flex}.budget-edit .money-input input{width:6em;padding:3px 6px}.error{background:var(--owed-soft);color:var(--owed);border-radius:10px;margin:0;padding:10px 14px}.toast{background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;border-radius:999px;margin:0;padding:8px 16px;font-size:.9rem;font-weight:600;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.toast.show{opacity:1;transform:translate(-50%)}.app.centered{text-align:center;justify-content:center;align-items:center;max-width:440px;min-height:80svh}.app.centered .brand{font-size:2.4rem}code{font-size:.9em}
