.bill-app{--label:#1d1d1f;--secondary:#6e6e73;--tertiary:#86868b;--bg:#fff;--bg-alt:#f5f5f7;--separator:#00000014;--fill:#0000000a;--blue:#06c;--blue-hover:#0077ed;--nav-h:48px;--wide:1080px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;--ease:cubic-bezier(.28, .11, .32, 1);--f-me:#1d1d1f;--f-me-bg:#f5f5f7;--f-me-soft:#1d1d1f14;--f-henry:#0071e3;--f-henry-bg:#e8f2ff;--f-henry-soft:#0071e31f;--f-peter:#bf4800;--f-peter-bg:#fff1e6;--f-peter-soft:#bf48001f;--f-enzo:#7c3aed;--f-enzo-bg:#f3e8ff;--f-enzo-soft:#7c3aed1f;--ok:#1d8348;--warn:#b25000}.bill-app *{box-sizing:border-box}.bill-app{scroll-behavior:smooth;background:var(--bg);color:var(--label);letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;touch-action:manipulation;-webkit-tap-highlight-color:transparent;margin:0;font-family:inherit;font-size:17px;line-height:1.47}.bill-app a{color:inherit;text-decoration:none}.bill-app button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.bill-app input{font:inherit}.bill-app .due-card,.bill-app .chip{-webkit-user-select:none;user-select:none}.bill-app .globalnav{z-index:100;height:var(--nav-h);-webkit-backdrop-filter:saturate(180%)blur(20px);background:#161617b8;position:sticky;top:0}.bill-app .wrap{width:min(var(--wide), calc(100vw - 40px));margin:0 auto}.bill-app .globalnav .wrap{justify-content:space-between;align-items:center;gap:16px;height:100%;display:flex}.bill-app .brand{color:#f5f5f7;opacity:.92;font-size:12px;font-weight:600}.bill-app .nav-links{gap:2px;display:flex;overflow-x:auto}.bill-app .nav-link{color:#f5f5f7;opacity:.8;height:var(--nav-h);white-space:nowrap;align-items:center;padding:0 11px;font-size:12px;display:inline-flex}.bill-app .nav-link:hover{opacity:1}.bill-app .hero{text-align:center;padding:56px 0 28px}.bill-app .eyebrow{color:var(--secondary);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:13px;font-weight:600}.bill-app .display{letter-spacing:0;margin:0;font-size:clamp(40px,8vw,64px);font-weight:600;line-height:1.05}.bill-app .hero-sub{max-width:28em;color:var(--secondary);margin:12px auto 0;font-size:17px}.bill-app .legend{flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:22px auto 0;display:flex}.bill-app .legend-item{color:var(--secondary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.bill-app .swatch{border-radius:50%;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0000000f}.bill-app .family-swatch{background:var(--family-color)}.bill-app .due-board{background:var(--bg-alt);border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);padding:36px 0 40px}.bill-app .due-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.bill-app .due-card{border:1px solid var(--separator);background:#fff;border-radius:20px;min-height:168px;padding:22px 20px 18px;position:relative;overflow:hidden}.bill-app .due-card:before{content:"";width:5px;position:absolute;top:0;bottom:0;left:0}.bill-app .due-card.henry:before{background:var(--f-henry)}.bill-app .due-card.peter:before{background:var(--f-peter)}.bill-app .due-card.enzo:before{background:var(--f-enzo)}.bill-app .due-card.family-card:before{background:var(--family-color)}.bill-app .due-card.me,.bill-app .due-card.owner{background:var(--family-soft,var(--f-me-bg));border:0;grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:auto;padding:18px 20px;display:grid}.bill-app .due-card.me:before,.bill-app .due-card.owner:before{display:none}.bill-app .due-name{align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.bill-app .due-name .dot{border-radius:50%;width:9px;height:9px}.bill-app .due-name.henry .dot,.bill-app .swatch.henry,.bill-app .pill.henry{background:var(--f-henry)}.bill-app .due-name.peter .dot,.bill-app .swatch.peter,.bill-app .pill.peter{background:var(--f-peter)}.bill-app .due-name.enzo .dot,.bill-app .swatch.enzo,.bill-app .pill.enzo{background:var(--f-enzo)}.bill-app .due-name.me .dot,.bill-app .swatch.me,.bill-app .pill.me{background:var(--f-me)}.bill-app .due-card.family-card .due-name .dot{background:var(--family-color)}.bill-app .due-label{color:var(--tertiary);margin:6px 0 0;font-size:12px}.bill-app .due-amount{letter-spacing:0;font-variant-numeric:tabular-nums;margin:18px 0 4px;font-size:clamp(30px,4vw,40px);font-weight:600;line-height:1.05}.bill-app .due-card.henry .due-amount{color:var(--f-henry)}.bill-app .due-card.peter .due-amount{color:var(--f-peter)}.bill-app .due-card.enzo .due-amount{color:var(--f-enzo)}.bill-app .due-card.family-card .due-amount{color:var(--family-color)}.bill-app .due-card.me .due-amount,.bill-app .due-card.owner .due-amount{color:var(--family-color,var(--label));text-align:right;margin:0;font-size:clamp(24px,3vw,32px)}.bill-app .due-note{color:var(--tertiary);font-variant-numeric:tabular-nums;font-size:12px}.bill-app .due-bars{flex-direction:column;gap:6px;margin-top:14px;display:flex}.bill-app .bar-row{color:var(--secondary);font-variant-numeric:tabular-nums;grid-template-columns:42px 1fr 64px;align-items:center;gap:8px;font-size:11px;display:grid}.bill-app .bar-track{background:var(--fill);border-radius:99px;height:6px;overflow:hidden}.bill-app .bar-fill{opacity:.85;background:currentColor;border-radius:99px;height:100%}.bill-app .due-card.henry .bar-fill{background:var(--f-henry)}.bill-app .due-card.peter .bar-fill{background:var(--f-peter)}.bill-app .due-card.enzo .bar-fill{background:var(--f-enzo)}.bill-app .due-card.family-card .bar-fill{background:var(--family-color)}.bill-app .totals{border-bottom:1px solid var(--separator);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.bill-app .totals>div{text-align:center;border-right:1px solid var(--separator);padding:22px 12px}.bill-app .totals>div:last-child{border-right:0}.bill-app .totals .k{color:var(--tertiary);margin-bottom:6px;font-size:12px}.bill-app .totals .v{letter-spacing:0;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.bill-app .section{padding:56px 0 64px}.bill-app .section.alt{background:var(--bg-alt)}.bill-app .section-head{margin-bottom:22px}.bill-app .section-head h2{letter-spacing:0;margin:0;font-size:clamp(28px,4vw,36px);font-weight:600}.bill-app .section-head p{color:var(--secondary);margin:8px 0 0;font-size:15px}.bill-app .filter-panel{top:calc(var(--nav-h) + 8px);z-index:40;border:1px solid var(--separator);background:#fff;border-radius:16px;margin:0 0 14px;position:sticky;overflow:hidden;box-shadow:0 6px 20px #0000000d}.bill-app .filter-panel-head{align-items:center;gap:8px;padding:10px 10px 10px 12px;display:flex}.bill-app .filter-toggle{text-align:left;border-radius:12px;flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:6px 8px;display:flex}.bill-app .filter-toggle:hover{background:var(--bg-alt)}.bill-app .filter-toggle-main{flex-direction:column;gap:2px;min-width:0;display:flex}.bill-app .filter-panel-title{letter-spacing:0;font-size:13px;font-weight:700}.bill-app .filter-summary{color:var(--secondary);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;overflow:hidden}.bill-app .filter-summary.has-filter{color:var(--blue);font-weight:600}.bill-app .filter-toggle-action{color:var(--blue);background:#0066cc14;border-radius:980px;flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:600}.bill-app .filter-body{border-top:1px solid var(--separator);padding:0 14px 14px;display:none}.bill-app .filter-panel.is-open .filter-body{padding-top:12px;display:block}.bill-app .filter-panel.is-open .filter-panel-head{padding-bottom:8px}.bill-app .filter-block+.filter-block{margin-top:12px}.bill-app .filter-block-label{letter-spacing:0;text-transform:uppercase;color:var(--tertiary);margin:0 0 8px;font-size:11px;font-weight:700}.bill-app .toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bill-app .toolbar-search{flex:1;width:100%;min-width:0}.bill-app .chip{border:1px solid var(--separator);color:var(--secondary);transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);background:#fff;border-radius:980px;padding:8px 13px;font-size:13px;font-weight:600}.bill-app .chip:hover{color:var(--label);border-color:#00000029}.bill-app .chip.active{background:var(--label);border-color:var(--label);color:#fff;box-shadow:0 1px 2px #0000001f}.bill-app .chip-family.henry{color:var(--f-henry);background:var(--f-henry-bg);border-color:#0071e347}.bill-app .chip-family.peter{color:var(--f-peter);background:var(--f-peter-bg);border-color:#bf480047}.bill-app .chip-family.enzo{color:var(--f-enzo);background:var(--f-enzo-bg);border-color:#7c3aed47}.bill-app .chip-family.me{color:var(--f-me);background:var(--f-me-bg);border-color:#1d1d1f2e}.bill-app .chip-family.dynamic{color:var(--family-color);border-color:var(--family-soft);background:var(--family-soft)}.bill-app .chip-family.henry.active{background:var(--f-henry);border-color:var(--f-henry);color:#fff}.bill-app .chip-family.peter.active{background:var(--f-peter);border-color:var(--f-peter);color:#fff}.bill-app .chip-family.enzo.active{background:var(--f-enzo);border-color:var(--f-enzo);color:#fff}.bill-app .chip-family.me.active{background:var(--f-me);border-color:var(--f-me);color:#fff}.bill-app .chip-family.dynamic.active{background:var(--family-color);border-color:var(--family-color);color:#fff}.bill-app .chip-reset{background:var(--bg-alt);flex-shrink:0;padding:7px 12px;font-size:12px}.bill-app .search{border:1px solid var(--separator);background:var(--bg-alt);border-radius:12px;outline:none;flex:1;width:100%;min-width:140px;padding:10px 14px;font-size:14px}.bill-app .search:focus{background:#fff;border-color:#0000;box-shadow:0 0 0 3px #0066cc26}.bill-app .due-card{cursor:pointer;transition:transform .15s var(--ease), box-shadow .15s var(--ease)}.bill-app .due-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0000000f}.bill-app .due-card:focus-visible{outline-offset:2px;outline:3px solid #0066cc59}.bill-app .due-card.is-filter-active{box-shadow:0 0 0 2px,0 10px 24px #0000000f}.bill-app .due-card.henry.is-filter-active{color:var(--f-henry)}.bill-app .due-card.peter.is-filter-active{color:var(--f-peter)}.bill-app .due-card.enzo.is-filter-active{color:var(--f-enzo)}.bill-app .due-card.me.is-filter-active{color:var(--f-me);box-shadow:0 0 0 2px var(--f-me)}.bill-app .due-card.family-card.is-filter-active{color:var(--family-color);box-shadow:0 0 0 2px var(--family-color), 0 10px 24px #0000000f}.bill-app .due-hint{color:var(--tertiary);margin-top:10px;font-size:11px}.bill-app .ledger{border:1px solid var(--separator);background:#fff;border-radius:18px;overflow:hidden}.bill-app .ledger-day{border-top:1px solid var(--separator);background:var(--bg-alt);color:var(--secondary);letter-spacing:0;padding:10px 18px 8px;font-size:11px;font-weight:600;line-height:1.3}.bill-app .ledger-day:first-child{border-top:0}.bill-app .entry{border-bottom:1px solid var(--separator);grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:14px;padding:16px 18px;display:grid}.bill-app .entry:last-child{border-bottom:0}.bill-app .entry:hover{background:#00000004}.bill-app .entry{padding-left:22px;position:relative}.bill-app .entry:before{content:"";background:var(--entry-rail,#c7c7cc);width:4px;position:absolute;top:0;bottom:0;left:0}.bill-app .entry.tone-henry{border-left-color:var(--f-henry);background:linear-gradient(90deg, var(--f-henry-soft), transparent 42%)}.bill-app .entry.tone-peter{border-left-color:var(--f-peter);background:linear-gradient(90deg, var(--f-peter-soft), transparent 42%)}.bill-app .entry.tone-enzo{border-left-color:var(--f-enzo);background:linear-gradient(90deg, var(--f-enzo-soft), transparent 42%)}.bill-app .entry.tone-me{border-left-color:#c7c7cc}.bill-app .entry.tone-multi{border-left-color:#a1a1a6}.bill-app .entry.tone-family{border-left-color:var(--entry-color);background:linear-gradient(90deg, var(--entry-soft), transparent 42%)}.bill-app .date .d{letter-spacing:0;font-size:16px;font-weight:600}.bill-app .date .m{color:var(--tertiary);margin-top:2px;font-size:11px}.bill-app .entry h3{letter-spacing:0;margin:0 0 3px;font-size:16px;font-weight:600}.bill-app .entry .desc{color:var(--secondary);margin:0;font-size:13px;line-height:1.4}.bill-app .pills{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.bill-app .pill{font-variant-numeric:tabular-nums;color:var(--label);background:var(--fill);border-radius:980px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.bill-app .pill.henry{background:var(--f-henry-bg);color:#004a99}.bill-app .pill.peter{background:var(--f-peter-bg);color:#8a3a00}.bill-app .pill.enzo{background:var(--f-enzo-bg);color:#5b21b6}.bill-app .pill.me{background:var(--f-me-soft);color:var(--label)}.bill-app .pill.cat{color:var(--secondary);background:var(--fill);font-weight:500}.bill-app .pill.cat.dynamic{background:var(--category-color);color:var(--label)}.bill-app .pill.status-ok{color:var(--ok);background:#e7f7ee}.bill-app .pill.status-pending{color:var(--warn);background:#fff1e0}.bill-app .amt{text-align:right;font-variant-numeric:tabular-nums;min-width:110px}.bill-app .amt .total{letter-spacing:0;font-size:17px;font-weight:600}.bill-app .entry.is-settled .amt .total{color:var(--ok)}.bill-app .amt-splits{flex-direction:column;align-items:flex-end;gap:2px;margin-top:5px;display:flex}.bill-app .amt-split{color:var(--secondary);white-space:nowrap;justify-content:flex-end;align-items:center;gap:5px;font-size:11px;font-weight:600;line-height:1.35;display:inline-flex}.bill-app .amt-split-dot{background:var(--family-color);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.bill-app .amt .who{color:var(--tertiary);margin-top:5px;font-size:11px;line-height:1.35}.bill-app .empty{text-align:center;color:var(--tertiary);padding:40px}.bill-app .rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bill-app .rule{border:1px solid var(--separator);background:#fff;border-radius:16px;padding:18px}.bill-app .rule h3{margin:0 0 6px;font-size:14px}.bill-app .rule p{color:var(--secondary);margin:0;font-size:13px;line-height:1.45}.bill-app .rule code{background:var(--fill);border-radius:5px;padding:1px 5px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:12px}.bill-app .footer{border-top:1px solid var(--separator);color:var(--tertiary);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:24px 0 40px;font-size:12px;display:flex}.bill-app .footer a{color:var(--blue)}.bill-app .footer a:hover{color:var(--blue-hover)}.bill-app #sync-status.is-stale{color:var(--warn)}.bill-app .load-more-wrap{text-align:center;border-top:1px solid var(--separator);padding:16px}.bill-app .load-more-btn{background:var(--bg-alt);border:1px solid var(--separator);color:var(--blue);cursor:pointer;transition:background .15s var(--ease);-webkit-user-select:none;user-select:none;border-radius:980px;padding:10px 24px;font-size:14px;font-weight:600}.bill-app .load-more-btn:hover{background:#ebebed}.bill-app .load-more-btn:disabled{color:var(--tertiary);cursor:default;opacity:.6}.bill-app .skeleton-entry{border-bottom:1px solid var(--separator);grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:14px;padding:16px 18px;display:grid}.bill-app .skeleton-entry:last-child{border-bottom:0}.bill-app .sk-block{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s infinite sk-shimmer}.bill-app .sk-date-day{width:48px;height:18px}.bill-app .sk-date-meta{width:36px;height:12px;margin-top:4px}.bill-app .sk-title{width:70%;height:18px}.bill-app .sk-desc{width:90%;height:14px;margin-top:6px}.bill-app .sk-pills{border-radius:980px;width:50%;height:22px;margin-top:10px}.bill-app .sk-amount{width:80px;height:20px;margin-left:auto}.bill-app .sk-who{width:56px;height:12px;margin-top:6px;margin-left:auto}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:820px){.bill-app .wrap{width:calc(100vw - 24px)}.bill-app .due-grid{grid-template-columns:1fr}.bill-app .due-card.me,.bill-app .due-card.owner{grid-column:auto}.bill-app .totals{grid-template-columns:1fr}.bill-app .totals>div{border-right:0;border-bottom:1px solid var(--separator)}.bill-app .rules{grid-template-columns:1fr}.bill-app .ledger-day{padding:10px 12px 8px}.bill-app .entry{grid-template-columns:60px minmax(0,1fr) auto;gap:10px;padding:14px 12px 14px 16px}.bill-app .amt{text-align:right;min-width:116px}.bill-app .amt .total{white-space:nowrap;font-size:15px}.bill-app .skeleton-entry{grid-template-columns:60px minmax(0,1fr) auto;gap:10px;padding:14px 12px}.bill-app .hero{padding:40px 0 20px}.bill-app .section{padding:36px 0 44px}.bill-app .filter-panel{top:calc(var(--nav-h) + 4px);border-radius:12px}.bill-app .footer{flex-direction:column}.bill-app .footer>*+*{margin-top:4px;margin-left:0}}@media (max-width:360px){.bill-app .entry{grid-template-columns:52px minmax(0,1fr)}.bill-app .amt{text-align:right;grid-column:2;min-width:0}.bill-app .amt-splits{align-items:flex-end}.bill-app .skeleton-entry{grid-template-columns:52px minmax(0,1fr)}.bill-app .skeleton-entry>:last-child{display:none}}
