:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--bg-soft:#f9f8f8;--hover:#f5f3f3;--selected:#fdeceb;--border:#edeae9;--border-strong:#d5d1d0;--text:#1e1f21;--muted:#6d6e6f;--faint:#9a9b9c;--coral:#f06a6a;--coral-strong:#e35757;--coral-ink:#fff;--exact:#3a66c4;--paid:#1f8a55;--neg:#c92f54;--pos:#1f8a55;--late:#c92f54;--today:#1f8a55;--warn-bg:#fdf3e7;--warn-ink:#8a4a00;--info-bg:#eef3fd;--info-ink:#2c4f9c;--over:#c92f540f;--sidebar:#1e1f21;--sidebar-text:#f5f4f3;--sidebar-muted:#a2a0a2;--sidebar-hover:#2d2e30;--sidebar-active:#3a3b3d;--shadow:0 1px 3px #1e1f2114, 0 8px 24px #1e1f2114;--radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1e1f21;--bg-soft:#232426;--hover:#2a2b2d;--selected:#3a2a2b;--border:#353638;--border-strong:#4a4b4d;--text:#f5f4f3;--muted:#a2a0a2;--faint:#7a797b;--coral-ink:#fff;--exact:#7ea6f2;--paid:#5dbb8a;--neg:#f2708d;--pos:#5dbb8a;--late:#f2708d;--today:#5dbb8a;--warn-bg:#3a2c18;--warn-ink:#f6c98a;--info-bg:#1f2a40;--info-ink:#a9c2f2;--over:#f2708d14;--sidebar:#2a2b2d;--sidebar-hover:#333436;--sidebar-active:#424345;--shadow:0 1px 3px #0006, 0 8px 24px #00000059}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0}a{color:var(--exact);text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}button:disabled{opacity:.5;cursor:default}input,select{border:1px solid var(--border-strong);background:var(--bg);border-radius:6px;width:100%;padding:8px 10px;font-size:16px}input:focus,select:focus{outline:2px solid color-mix(in srgb, var(--coral) 45%, transparent);outline-offset:0;border-color:var(--coral)}h1{letter-spacing:-.01em;margin:0;font-size:1.45rem;font-weight:500}.muted{color:var(--muted)}.error,.neg{color:var(--neg)}.pos{color:var(--pos)}.grow{flex:1}.right{text-align:right}.boot{text-align:center;padding-top:30vh}.btn-coral,.primary{background:var(--coral);color:var(--coral-ink);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-weight:500;display:inline-flex}.btn-coral:hover:not(:disabled),.primary:hover:not(:disabled){background:var(--coral-strong)}.btn-outline{border:1px solid var(--border-strong);border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:.9rem;display:inline-flex}.btn-outline:hover:not(:disabled){border-color:var(--paid);color:var(--paid)}.panel-actions .btn-outline{color:var(--muted)}.panel-actions .btn-outline:hover:not(:disabled){border-color:var(--text);color:var(--text)}.btn-outline.btn-danger,.panel-actions .btn-outline.btn-danger{border-color:color-mix(in srgb, var(--neg) 45%, transparent);color:var(--neg)}.btn-outline.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--neg) 10%, transparent);border-color:var(--neg);color:var(--neg)}.btn-outline.done{background:color-mix(in srgb, var(--paid) 12%, transparent);border-color:var(--paid);color:var(--paid)}.btn-add{color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:.9rem;display:inline-flex}.btn-add:hover:not(:disabled){background:var(--hover);color:var(--text)}.btn-text{text-align:left;color:var(--muted);padding:8px 0}.btn-text:hover:not(:disabled){color:var(--text)}.danger{color:var(--neg)!important}.icon-btn{width:32px;height:32px;color:var(--muted);border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--text)}.shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);width:248px;color:var(--sidebar-text);padding:max(14px, env(safe-area-inset-top)) 10px 20px;flex:none;height:100vh;position:sticky;top:0;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;padding:0 8px 14px;display:flex}.logo{letter-spacing:-.01em;align-items:center;gap:8px;font-size:1.15rem;font-weight:600;display:inline-flex}.sidebar-close{color:var(--sidebar-muted);display:none}.sidebar .icon-btn:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.side-link{color:var(--sidebar-text);border-radius:6px;align-items:center;gap:10px;padding:7px 10px;font-size:.92rem;display:flex}.side-link:hover{background:var(--sidebar-hover)}.side-link.active{background:var(--sidebar-active)}.side-name{flex:1}.side-value{color:var(--sidebar-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.side-title{color:var(--sidebar-muted);margin:18px 10px 6px;font-size:.8rem}.side-legend{color:var(--sidebar-muted);margin:16px 10px 0;font-size:.75rem;line-height:1.6}.side-signout{color:var(--sidebar-muted);font:inherit;cursor:pointer;background:0 0;border:0;margin:20px 10px 0;padding:0;font-size:.8125rem}.side-signout:hover{color:var(--sidebar-text)}.dot{border-radius:3px;flex:none;width:9px;height:9px;display:inline-block}.dot-green{background:#5dbb8a}.dot-amber{background:#f1bd6c}.dot-red{background:var(--coral)}.scrim{display:none}.main{min-width:0;padding-bottom:calc(40px + env(safe-area-inset-bottom));flex:1}.menu-btn{display:none}.page-head{z-index:3;background:var(--bg);border-bottom:1px solid var(--border);padding:max(14px, env(safe-area-inset-top)) 24px 0;position:sticky;top:0}.title-row{align-items:center;gap:8px;min-height:40px;display:flex}.month-nav{display:inline-flex}.today-link{border:1px solid var(--border-strong);color:var(--text);border-radius:6px;padding:4px 8px;font-size:.85rem}.status{color:var(--faint);font-size:.8rem}.tabs{gap:20px;margin-top:8px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:8px 0 10px}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--text)}.content{max-width:980px;margin:0 auto;padding:20px 24px}.toast{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--radius);cursor:pointer;margin:12px 24px 0;padding:10px 12px}.summary{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.stat{text-align:left;background:var(--bg);flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:12px 14px;display:flex}.stat strong{white-space:nowrap;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.05rem;font-weight:600}.stat-main strong{font-size:1.25rem}.stat-label{color:var(--muted);align-items:center;gap:4px;font-size:.78rem;display:inline-flex}.stat-sub{color:var(--faint);font-size:.75rem}.stat.editable:hover:not(:disabled){background:var(--hover)}.stat.editable .stat-label svg{opacity:.6}.stat-alert strong{color:var(--neg)}.notices{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.notices li{border-radius:6px;align-items:flex-start;gap:8px;padding:8px 12px;font-size:.88rem;display:flex}.notices li svg{flex:none;margin-top:2px}.notices .warn{background:var(--warn-bg);color:var(--warn-ink)}.notices .info{background:var(--info-bg);color:var(--info-ink)}.block{margin-top:16px}.section-head{border-radius:6px;align-items:center;gap:6px;width:100%;padding:8px 4px;font-size:.95rem;font-weight:600;display:flex}.section-head:hover{background:var(--hover)}.section-head svg{color:var(--muted)}.count{color:var(--faint);font-size:.8rem;font-weight:400}.section-total{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:400}.chart{margin:4px 0 0;padding:12px 4px 0}.chart-plot{grid-template-columns:auto 1fr;column-gap:8px;display:grid}.chart-y{min-width:64px;height:140px;position:relative}.chart-y span,.chart-x span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.72rem;position:absolute}.chart-y span{right:0;transform:translateY(-50%)}.chart-x{border-top:1px solid var(--border-strong);height:20px;position:relative}.chart-x span{top:4px;transform:translate(-50%)}.chart svg{border-left:1px solid var(--border-strong);width:100%;height:140px;display:block}.chart-canvas{touch-action:pan-y;cursor:crosshair;position:relative}.chart-hover{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-dot{background:var(--coral);border:2px solid var(--bg);pointer-events:none;border-radius:50%;width:9px;height:9px;position:absolute;transform:translate(-50%,-50%)}.chart-tip{background:var(--bg);border:1px solid var(--border-strong);white-space:nowrap;pointer-events:none;z-index:1;border-radius:6px;gap:1px;padding:6px 10px;font-size:.8rem;display:grid;position:absolute;transform:translate(10px,-50%);box-shadow:0 4px 12px #0000001f}.chart-tip.left{transform:translate(calc(-100% - 10px),-50%)}.chart-grid{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-line{fill:none;stroke:var(--coral);stroke-width:2px;vector-effect:non-scaling-stroke}.chart-zero{stroke:var(--border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-limit{stroke:var(--neg);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.chart-over{fill:var(--over)}.chart-today{stroke:var(--faint);stroke-width:1px;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.chart figcaption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px;font-size:.82rem;display:flex}.legend .key-limit{border-top:1px dashed var(--neg);vertical-align:middle;width:14px;margin-right:4px;display:inline-block}.table{margin-top:20px}.table-toolbar{margin-bottom:6px}.table-head,.row-main{grid-template-columns:minmax(0,1fr) 96px 130px;align-items:center;gap:12px;display:grid}.table-head{border-bottom:1px solid var(--border);color:var(--muted);padding:6px 12px 6px 44px;font-size:.78rem}.table-head.adj{padding-left:12px}.table .section-head{margin-top:10px}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--border);align-items:center;min-height:42px;display:flex}.row:hover{background:var(--hover)}.row.selected{background:var(--selected)}.row .check{width:32px;height:32px;color:var(--faint);border-radius:50%;flex:none;place-items:center;margin-left:6px;display:grid}.row .check:hover:not(:disabled),.row.paid .check{color:var(--paid)}.row.paid .check svg circle{fill:var(--paid)}.row.paid .check svg path{stroke:var(--bg)}.row-main{text-align:left;flex:1;min-width:0;padding:9px 12px 9px 6px}.row.removed .row-main{padding-left:44px}.row-main.cal{grid-template-columns:64px minmax(0,1fr) 130px;padding-left:12px}.row-main.adj{padding-left:12px}.row-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row.paid .row-name{color:var(--paid)}.row.removed .row-name{color:var(--faint);text-decoration:line-through}.due{color:var(--muted);font-size:.85rem}.due.late{color:var(--late)}.due.today{color:var(--today);font-weight:500}.amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.amount.exact{color:var(--exact)}.row.paid .amount{color:var(--paid)}.table-foot{text-align:right;color:var(--muted);margin:10px 12px;font-size:.88rem}.empty{text-align:center;color:var(--muted);padding:32px 0}.kind-tag{background:var(--bg-soft);border:1px solid var(--border);color:var(--muted);border-radius:999px;justify-self:start;padding:1px 8px;font-size:.72rem}.kind-tag.income{background:color-mix(in srgb, var(--paid) 12%, transparent);color:var(--paid);border-color:#0000}.calendar{margin-top:20px}.cal-day h3{color:var(--muted);align-items:center;gap:6px;margin:18px 0 4px;padding:0 12px;font-size:.85rem;font-weight:500;display:flex}.cal-date{color:var(--text);font-weight:600}.cal-day .rows{border-top:1px solid var(--border)}.pill{background:color-mix(in srgb, var(--today) 14%, transparent);color:var(--today);border-radius:999px;padding:1px 8px;font-size:.72rem}.panel{z-index:6;background:var(--bg);border-left:1px solid var(--border);width:min(440px,100vw);box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.panel-bar{padding:max(12px, env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--border);align-items:center;gap:8px;display:flex}.panel-banner{background:color-mix(in srgb, var(--paid) 10%, transparent);color:var(--paid);margin:0;padding:8px 20px;font-size:.85rem}.panel-body{padding:18px 20px calc(24px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.panel-body h2{overflow-wrap:anywhere;margin:0;font-size:1.35rem;font-weight:600}.panel-body>.muted{margin:4px 0 18px;font-size:.88rem}.fields{gap:12px;display:grid}.field{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;font-size:.9rem;display:grid}.field>span:first-child{color:var(--muted)}.field .btn-coral{justify-self:start}.inline{align-items:center;gap:8px;display:inline-flex}.inline input[type=number]{width:80px}.inline input[type=checkbox],.form label.check input{width:18px;height:18px;accent-color:var(--coral)}.hint{color:var(--faint);margin:-4px 0 0 108px;font-size:.8rem}.panel-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:12px;font-size:.9rem;display:flex}.overlay{z-index:10;background:#0f101273;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:480px;max-height:92vh;padding:16px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:12px 12px 0 0;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.sheet-head h2{overflow-wrap:anywhere;margin:0;font-size:1.15rem;font-weight:600}.form{gap:14px;display:grid}.form label{color:var(--muted);gap:4px;font-size:.85rem;display:grid}.form label input,.form label select{color:var(--text)}.form label.check{color:var(--text);align-items:center;gap:8px;font-size:.92rem;display:flex}.form .form-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.form .form-row.two{grid-template-columns:1fr 1fr}.form p{margin:0}.form .primary{padding:10px 14px}.small{font-size:.85rem}.segmented{background:var(--bg-soft);border:1px solid var(--border);border-radius:7px;gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);white-space:nowrap;border-radius:5px;flex:1;padding:6px 10px;font-size:.88rem}.segmented button[aria-pressed=true]{background:var(--bg);color:var(--text);font-weight:500;box-shadow:0 1px 2px #0000001f}.actions{border-top:1px solid var(--border);justify-items:start;margin-top:16px;padding-top:12px;display:grid}.actions button{padding:8px 0}.setup{max-width:420px;margin:0 auto;padding:18vh 20px 40px}.setup h1{margin-bottom:8px}.signin{flex-direction:column;align-items:stretch;gap:14px;display:flex}.signin .logo{align-self:flex-start;font-size:1.5rem}@media (width>=640px){.overlay{align-items:center}.sheet{border-radius:12px}}@media (width>=861px) and (width<=1180px){.summary{grid-template-columns:repeat(3,minmax(0,1fr))}.stat:last-child{grid-column:span 2}}@media (width>=1200px){.main.with-panel{margin-right:440px}}@media (width>=1200px) and (width<=1620px){.main.with-panel .summary{grid-template-columns:repeat(3,minmax(0,1fr))}.main.with-panel .stat:last-child{grid-column:span 2}}@media (width<=860px){.sidebar{z-index:20;box-shadow:var(--shadow);transition:transform .2s;position:fixed;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-close{display:inline-grid}.scrim{z-index:15;background:#0f101273;display:block;position:fixed;inset:0}.menu-btn{margin-left:-6px;display:inline-grid}.page-head{padding-left:16px;padding-right:16px}.content{padding:16px}.toast{margin:12px 16px 0}h1{font-size:1.2rem}.status{display:none}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-main{grid-column:1/-1}.table-head,.row-main{grid-template-columns:minmax(0,1fr) 62px auto;gap:8px}.row-main.cal{grid-template-columns:58px minmax(0,1fr) auto}.row-name{white-space:normal;overflow-wrap:anywhere}.panel{border-left:none;width:100vw}}@media (width<=380px){.btn-coral{padding:7px 10px}.today-link{display:none}}.content.wide{max-width:1280px}.grp{margin-top:24px}.grp-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.grp-actions{white-space:nowrap;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.grp-sub{flex-basis:100%;margin:-4px 0 0}.grp-head h2{margin:0;font-size:1.05rem;font-weight:600}.matrix-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.matrix{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%;font-size:.88rem}.matrix th,.matrix td{border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg);padding:7px 12px}.matrix td{text-align:right;min-width:96px}.matrix th:first-child{z-index:1;text-align:left;border-right:1px solid var(--border);font-weight:400;position:sticky;left:0}.matrix thead th{color:var(--muted);text-align:right;background:var(--bg-soft);font-size:.78rem;font-weight:500}.matrix thead th:first-child{background:var(--bg-soft)}.matrix tr.recurring th,.matrix tr.recurring td{background:color-mix(in srgb, var(--text) 5%, var(--bg))}.matrix tr.clickable{cursor:pointer}.matrix tr.clickable:hover th,.matrix tr.clickable:hover td{background:var(--hover)}.matrix-name{max-width:calc(var(--name-w,200px) - 64px);text-overflow:ellipsis;vertical-align:bottom;text-align:left;display:inline-block;overflow:hidden}.matrix-tag{color:var(--faint);margin-left:6px;font-size:.75rem}.matrix tfoot th,.matrix tfoot td,.matrix .count-row th,.matrix .count-row td{color:var(--muted);font-size:.8rem}.matrix tr.total th,.matrix tr.total td{color:var(--text);font-size:.88rem;font-weight:600}.matrix tr:last-child th,.matrix tr:last-child td{border-bottom:none}.matrix td.pos{color:var(--pos)}.notices li .small-btn{flex:none;padding:2px 10px;font-size:.8rem}.empty.small{text-align:left;padding:12px 0}.pick{border:1px solid var(--border);border-radius:var(--radius);gap:6px;max-height:260px;margin:0;padding:8px 12px 10px;display:grid;overflow-y:auto}.pick legend{color:var(--muted);padding:0 4px;font-size:.85rem}.panel-info{background:var(--info-bg);color:var(--info-ink);border-radius:6px;margin:12px 0 0;padding:8px 12px;font-size:.88rem}.grp.colored{--grp-ink:var(--grp)}@media (prefers-color-scheme:dark){.grp.colored{--grp-ink:color-mix(in srgb, var(--grp) 70%, #fff)}}.grp.colored .matrix-wrap{border-left:4px solid var(--grp-ink)}.grp.colored .matrix thead th{background:color-mix(in srgb, var(--grp-ink) 16%, var(--bg))}.grp.colored .matrix tr.recurring th,.grp.colored .matrix tr.recurring td{background:color-mix(in srgb, var(--grp-ink) 7%, var(--bg))}.grp.colored .matrix tr.total th,.grp.colored .matrix tr.total td{background:color-mix(in srgb, var(--grp-ink) 10%, var(--bg))}.grp-dot{background:var(--grp-ink);border-radius:3px;flex:none;width:12px;height:12px}.field-colors{color:var(--muted);gap:6px;font-size:.85rem;display:grid}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:1px solid color-mix(in srgb, var(--text) 15%, transparent);cursor:pointer;border-radius:50%;width:28px;height:28px;position:relative}.swatch[aria-pressed=true],.swatch-custom.on{outline:2px solid var(--text);outline-offset:2px}.swatch-custom{background:conic-gradient(#e35757,#e8a33d,#548135,#2a9d8f,#39f,#7030a0,#e35757);overflow:hidden}.swatch-custom input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.swatch-none{background:linear-gradient(135deg, transparent 46%, var(--faint) 46%, var(--faint) 54%, transparent 54%), var(--bg)}.matrix th.name-col{position:sticky}.col-resize{cursor:col-resize;touch-action:none;z-index:2;width:12px;height:100%;position:absolute;top:0;right:-6px}@media (width<=720px){.long-title{font-size:1.1rem}}.turn{border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-ink);justify-items:start;gap:8px;margin-top:12px;padding:14px 16px;display:grid}.turn p{margin:0}.turn .muted{color:inherit;opacity:.75}.turn ul{margin:0;padding-left:18px;font-size:.9rem}.ended-head{color:var(--muted);justify-content:space-between;align-items:center;margin-top:16px;font-size:.85rem;display:flex}.ended-head .small-btn{padding:2px 10px;font-size:.8rem}.ended-head+.notices{margin-top:6px}
