:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#faf7f2;--card:#fff;--card-sunk:#f4f0e9;--ink:#211d19;--ink-soft:#6d655b;--ink-faint:#9a9086;--line:#e8e1d6;--line-strong:#d6cdbf;--accent:#8c3a2b;--accent-soft:#f6ebe7;--overdue:#9d2235;--overdue-soft:#fbeaec;--due:#a2620b;--due-soft:#fbf0dd;--clear:#3d6b50;--clear-soft:#eaf2ec;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:8px;--radius:14px;--radius-lg:20px;--tap:48px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:19px;--text-xl:24px;--text-2xl:32px;--text-3xl:40px;--shadow:0 1px 2px #211d190f, 0 4px 16px #211d190d;--shadow-lift:0 2px 6px #211d191a, 0 12px 32px #211d191f;--font:ui-sans-serif, -apple-system, "SF Pro Text", "Segoe UI", Roboto, system-ui, sans-serif;--max:560px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#17150f;--card:#201d17;--card-sunk:#2a261e;--ink:#f2ece2;--ink-soft:#b0a696;--ink-faint:#7d7466;--line:#322d24;--line-strong:#453e32;--accent:#e08975;--accent-soft:#34211b;--overdue:#f08897;--overdue-soft:#3a1d22;--due:#e0a94e;--due-soft:#382b16;--clear:#82c096;--clear-soft:#1d2f23;--shadow:0 1px 2px #0006, 0 4px 16px #0000004d;--shadow-lift:0 2px 6px #00000080, 0 12px 32px #00000073}}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;margin:0;padding:0;line-height:1.45}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}*{-webkit-tap-highlight-color:transparent}button,.card,.chip,.day,label,h1,h2{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}.num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.shell{max-width:var(--max);padding:0 var(--space-4) calc(var(--space-7) + env(safe-area-inset-bottom));margin:0 auto}.topbar{z-index:20;align-items:center;gap:var(--space-3);min-height:56px;padding-top:env(safe-area-inset-top);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(150%)blur(12px);backdrop-filter:saturate(150%)blur(12px);border-bottom:1px solid #0000;display:flex;position:sticky;top:0}.topbar.scrolled{border-bottom-color:var(--line)}.topbar h1{font-size:var(--text-lg);letter-spacing:-.015em;margin:0;font-weight:650}.topbar .grow{flex:1}.iconbtn{width:var(--tap);height:var(--tap);border-radius:var(--radius);color:var(--ink-soft);background:0 0;border:0;place-items:center;margin-inline-start:calc(var(--space-3) * -1);display:inline-grid}.iconbtn:active{background:var(--card-sunk)}.iconbtn.trailing{margin-inline:0 calc(var(--space-3) * -1)}.hero{padding:var(--space-5) 0 var(--space-5)}.hero .label{color:var(--ink-soft);font-size:var(--text-sm);letter-spacing:.02em;text-transform:uppercase;font-weight:550}.hero .amount{margin-top:var(--space-2);font-size:var(--text-3xl);letter-spacing:-.03em;font-weight:700;line-height:1.05}.hero .amount.none{color:var(--ink-faint);font-weight:600;font-size:var(--text-xl);letter-spacing:-.02em}.hero .sub{margin-top:var(--space-2);color:var(--ink-soft);font-size:var(--text-sm)}.section-label{margin:var(--space-5) 0 var(--space-2);color:var(--ink-faint);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:650}.stack{gap:var(--space-2);display:grid}.card{width:100%;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);text-align:start;color:inherit;text-decoration:none;display:block}.card:active{transform:scale(.995)}.person{align-items:center;gap:var(--space-4);display:flex}.person .body{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.person .name,.person .role{max-width:100%;display:block}.person .name{font-size:var(--text-base);letter-spacing:-.01em;font-weight:620}.person .role{color:var(--ink-soft);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person .right{text-align:end}.person .money{font-size:var(--text-lg);letter-spacing:-.02em;font-weight:650}.person .money.zero{color:var(--ink-faint);font-weight:550}.person .money.owes{color:var(--accent)}.person .note-line{margin-top:var(--space-1);color:var(--ink-faint);font-size:var(--text-xs)}.chip{margin-top:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);letter-spacing:.01em;white-space:nowrap;border-radius:999px;font-weight:620;display:inline-block}.chip.overdue{background:var(--overdue-soft);color:var(--overdue)}.chip.due{background:var(--due-soft);color:var(--due)}.chip.clear{background:var(--clear-soft);color:var(--clear)}.chip.owes{background:var(--accent-soft);color:var(--accent)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);color:var(--ink);font-size:var(--text-base);font-weight:600;text-decoration:none;display:inline-flex}.btn:active{background:var(--card-sunk)}.btn.primary{background:var(--accent);color:var(--paper);border-color:#0000}.btn.primary:active{filter:brightness(.94)}.btn.danger{color:var(--overdue);background:0 0;border-color:#0000}.btn.wide{width:100%}.btn:disabled{opacity:.5}.btnrow{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(0,1fr));display:grid}.btnrow .btn{padding:0 var(--space-3);text-align:center}.ledger{gap:var(--space-3);display:grid}.ledger .row{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.ledger .row .k{color:var(--ink-soft);font-size:var(--text-sm)}.ledger .row .k .hint{color:var(--ink-faint);font-size:var(--text-xs);display:block}.ledger .row .v{white-space:nowrap;font-weight:600}.ledger .row.minus .v{color:var(--accent)}.ledger .rule{background:var(--line);height:1px}.ledger .row.total .k{color:var(--ink);font-size:var(--text-base);font-weight:620}.ledger .row.total .v{font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.monthnav{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.monthnav .title{font-size:var(--text-base);font-weight:620}.disclosure{width:100%;min-height:var(--tap);margin:var(--space-2) 0 var(--space-4);color:var(--accent);font-size:var(--text-sm);text-align:start;background:0 0;border:0;padding:0;font-weight:620}.disclosure:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.advanced{padding:var(--space-4) var(--space-4) var(--space-1);margin-bottom:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--card-sunk)}.field{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.field>label{color:var(--ink-soft);font-size:var(--text-sm);font-weight:580}.field .aside{color:var(--ink-faint);font-size:var(--text-xs)}.input,.select{width:100%;min-height:var(--tap);padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);font-size:var(--text-base)}.input:focus-visible,.select:focus-visible,.btn:focus-visible,.card:focus-visible,.iconbtn:focus-visible,.day:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input.amount{font-size:var(--text-2xl);letter-spacing:-.02em;min-height:64px;font-weight:650}.segmented{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card-sunk);grid-auto-flow:column;display:grid}.segmented.vertical{grid-auto-flow:row}.segmented button{border-radius:calc(var(--radius) - 5px);min-height:40px;color:var(--ink-soft);font-size:var(--text-sm);background:0 0;border:0;font-weight:600}.segmented button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.sheet-backdrop{z-index:40;background:#100d0a73;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--max);max-height:92dvh;padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--paper);box-shadow:var(--shadow-lift);overflow-y:auto}.sheet h2{margin:0 0 var(--space-4);font-size:var(--text-lg);letter-spacing:-.015em;font-weight:650}@media (min-width:600px){.sheet-backdrop{padding:var(--space-4);align-items:center}.sheet{border-radius:var(--radius-lg)}}.calendar{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.calendar .dow{padding-bottom:var(--space-1);color:var(--ink-faint);font-size:var(--text-xs);text-align:center;font-weight:620}.day{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--card-sunk);color:var(--ink);font-size:var(--text-sm);font-variant-numeric:tabular-nums;border:1px solid #0000;place-items:center;display:grid;position:relative}.day.blank{background:0 0}.day:disabled{color:var(--ink-faint);opacity:.45}.day.today{border-color:var(--line-strong);font-weight:700}.day.absent_unpaid{background:var(--overdue);color:var(--paper);font-weight:620}.day.absent_half{background:var(--due);color:var(--paper);font-weight:620}.day.absent_paid{background:var(--clear-soft);color:var(--clear);font-weight:620}.day.present{background:var(--clear);color:var(--paper);font-weight:620}.day.half{background:var(--due);color:var(--paper);font-weight:620}.legend{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.legend span{align-items:center;gap:var(--space-2);color:var(--ink-soft);font-size:var(--text-xs);display:inline-flex}.legend i{border-radius:3px;width:12px;height:12px}.chiprow{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.empty{padding:var(--space-6) var(--space-4);border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-soft);text-align:center}.note{color:var(--ink-soft);font-size:var(--text-sm)}.entrylist{gap:0;display:grid}.entrylist .item{justify-content:space-between;align-items:baseline;gap:var(--space-3);width:100%;padding:var(--space-3) 0;border:0;border-bottom:1px solid var(--line);text-align:start;background:0 0;display:flex}.entrylist .item:last-child{border-bottom:0}.entrylist .item.voided{color:var(--ink-faint)}.entrylist .item.voided .num{text-decoration:line-through}.entrylist .when{color:var(--ink-faint);font-size:var(--text-xs);display:block}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--line-strong);color:var(--ink-soft);font-size:var(--text-xs);letter-spacing:.04em;text-align:end;text-transform:uppercase;font-weight:620}.table th:first-child,.table td:first-child{text-align:start;white-space:nowrap}.table td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--line);text-align:end;font-variant-numeric:tabular-nums}.table tfoot td{border-bottom:0;border-top:1px solid var(--line-strong);font-weight:650}.scroller{overflow-x:auto}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--overdue-soft);color:var(--overdue);font-size:var(--text-sm);font-weight:580}.banner.info{background:var(--accent-soft);color:var(--accent)}.lock{min-height:100dvh;padding:var(--space-5);place-items:center;display:grid}.lock .inner{text-align:center;width:100%;max-width:320px}.lock h1{margin:0 0 var(--space-2);font-size:var(--text-2xl);letter-spacing:-.03em;font-weight:700}.lock p{margin:0 0 var(--space-6);color:var(--ink-soft);font-size:var(--text-sm)}.pips{justify-content:center;align-items:center;gap:var(--space-3);min-height:24px;margin-bottom:var(--space-5);display:flex}.pip{background:var(--accent);border-radius:50%;width:12px;height:12px}.pip .chiprow{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.chiprow::-webkit-scrollbar{display:none}.filter{min-height:36px;padding:0 var(--space-4);border:1px solid var(--line-strong);background:var(--card);color:var(--ink-soft);font-size:var(--text-sm);white-space:nowrap;border-radius:999px;flex:none;font-weight:600}.filter.on{background:var(--accent);color:var(--paper);border-color:#0000}.empty{border:2px solid var(--line-strong);background:0 0}.keypad{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.key{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);min-height:64px;font-size:var(--text-xl);font-variant-numeric:tabular-nums;place-items:center;font-weight:600;display:grid}.key:active{background:var(--card-sunk)}.key.quiet{color:var(--ink-soft);font-size:var(--text-sm);background:0 0;border-color:#0000;font-weight:580}.key.quiet:disabled{opacity:.35}.key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media print{.topbar,.btn,.iconbtn,.btnrow,.legend{display:none!important}body{color:#000;background:#fff}.card{box-shadow:none;border-color:#ccc}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
