:root{--ink:#2b2118;--muted:#5e5146;--orange:#ff9a2e;--orange-deep:#e07a10;--grass:#4fae2e;--coral:#ff5a36;--owed:#24701a;--owe:#b3261e;--warn-ink:#8a3f00;--glass-regular:#ffffff9e;--glass-clear:#ffffff4d;--glass-edge:#ffffffbf;--glass-blur:blur(22px) saturate(185%);--glass-shadow:0 10px 30px #143c5a29, 0 1px 2px #143c5a1a;--glass-highlight:inset 0 1px 0 #fffffff2, inset 0 -1px 0 #ffffff40;--radius:28px;--display:"Fredoka", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif}*{box-sizing:border-box}html{background:#8fd4f5}body{color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-weight:700}a{color:var(--ink)}a:hover{color:var(--orange-deep)}button{cursor:pointer;color:inherit;font-family:inherit}button:disabled{cursor:default;opacity:.55}h1,h2,h3{font-family:var(--display);letter-spacing:-.3px;margin:0}:focus-visible{outline-offset:3px;outline:3px solid #6c4dff}.backdrop{z-index:-1;position:fixed;inset:0;overflow:hidden}.backdrop svg{width:100%;height:100%;display:block}.glass,.card,.nav,.icon-btn,.pill,.chip,.btn.white,.btn.ghost,.glass-dock,.inset,.bubble,.toggle{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.card{background:var(--glass-regular);border:1px solid var(--glass-edge);border-radius:var(--radius);box-shadow:var(--glass-highlight), var(--glass-shadow);padding:14px 16px;position:relative;overflow:hidden}.card:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff8c,#fff0);height:55%;position:absolute;inset:0 0 auto}.card>*{position:relative}.card.warn{background:#ffecd6b8;border-color:#ffc48ce6}.card.link{text-decoration:none;transition:transform .18s cubic-bezier(.2,.8,.2,1.2);display:block}.card.link:hover{color:var(--ink);transform:translateY(-2px)scale(1.005)}.card.link:active{transform:scale(.985)}.card.mini{text-align:center;padding:10px;font-size:13px}.card.tint-orange{background:#ffe4c4b3}.card.tint-green{background:#d6f0c8b3}.card.tint-blue{background:#ceeafab3}.inset{border:1px solid var(--glass-edge);background:#ffffff8c;border-radius:999px;padding:6px 6px 6px 16px;box-shadow:inset 0 1px 3px #143c5a1f}.app{flex-direction:column;min-height:100dvh;display:flex}.main{flex:1;width:100%;max-width:1040px;margin:0 auto}.page{padding-bottom:120px}@media (width>=900px){.app{flex-direction:row}.page{padding-bottom:40px}}.hero{color:#fff;text-shadow:0 1px 2px #0a325a59,0 2px 16px #0a3c6473;padding:22px 20px 18px;position:relative}.hero h1{font-size:clamp(34px,6vw,48px);line-height:1.02}.hero .sub{margin-top:6px;font-size:15px}.hero.orange,.hero.violet,.hero.green{color:#fff}.topbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.wordmark{font-family:var(--display);color:#fff;font-size:26px;font-weight:700;text-decoration:none}.sheet{flex-direction:column;gap:14px;padding:8px 16px 20px;display:flex;position:relative}@media (width>=900px){.hero{padding:36px 36px 22px}.sheet{padding:8px 36px 24px}.topbar .wordmark{visibility:hidden}}.glass-dock{background:var(--glass-clear);border:1px solid var(--glass-edge);box-shadow:var(--glass-highlight), var(--glass-shadow);border-radius:34px;flex-direction:column;gap:12px;margin:auto 14px 18px;padding:18px;display:flex}.row{align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:13px;font-weight:800}.hero .muted{color:#ffffffeb}.big{font-family:var(--display);font-size:34px;font-weight:700;line-height:1}.label{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:900}.sheet>.label,section>.label{color:#fff;text-shadow:0 1px 8px #0a3c6466}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=900px){.grid-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}}.stack{flex-direction:column;gap:10px;display:flex}.section-title{color:#fff;text-shadow:0 1px 10px #0a3c6466;justify-content:space-between;align-items:baseline;margin-top:6px;display:flex}.section-title h2{font-size:22px}.pill{white-space:nowrap;border:1px solid var(--glass-edge);color:var(--ink);text-shadow:none;background:#ffffff80;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:900;display:inline-flex}.pill.solid{background:#ffffffc7}.pill.ok{color:#1f5e12;background:#d6f0c8d9}.pill.wait{color:var(--warn-ink);background:#ffe2c4d9}.pill.bad{color:#9a2a10;background:#ffd6c8e6}.amount-pos{color:var(--owed)}.amount-neg{color:var(--owe)}.avatar{width:34px;height:34px;text-shadow:none;color:var(--ink);background:#ffb648;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:900;display:inline-flex;box-shadow:inset 0 1px #ffffffb3}.bar{background:#2b21181a;border-radius:999px;height:12px;overflow:hidden;box-shadow:inset 0 1px 2px #00000014}.bar>div{background:linear-gradient(180deg, #7fd45c, var(--grass));border-radius:999px;height:100%}.btn{white-space:nowrap;background:linear-gradient(180deg, #ffb04f, var(--orange));min-height:52px;color:var(--ink);font-family:var(--display);text-shadow:none;border:1px solid #fff9;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:19px;font-weight:700;text-decoration:none;transition:transform .18s cubic-bezier(.2,.8,.2,1.4),box-shadow .18s;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffbf,0 8px 20px #e07a1059}.btn:before{content:"";pointer-events:none;background:linear-gradient(#ffffff73,#fff0);position:absolute;inset:0 0 50%}.btn:active:not(:disabled){transform:scale(.96)}.btn.white{box-shadow:var(--glass-highlight), var(--glass-shadow);background:#ffffffb8}.btn.ghost{box-shadow:var(--glass-highlight), 0 4px 14px #143c5a1f;background:#fff6}.btn.small{min-height:40px;padding:0 16px;font-size:15px}.btn.block{width:100%}.icon-btn{border:1px solid var(--glass-edge);width:44px;height:44px;box-shadow:var(--glass-highlight), 0 4px 14px #143c5a26;background:#fff9;border-radius:999px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.toggle{border:1px solid var(--glass-edge);width:44px;height:44px;color:var(--muted);box-shadow:var(--glass-highlight);background:#ffffff80;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1.4),background .15s;display:inline-flex}.toggle:active{transform:scale(.9)}.toggle.yes.on{background:linear-gradient(180deg, #7fd45c, var(--grass));color:#fff;box-shadow:inset 0 1px #fff9,0 4px 12px #4fae2e66}.toggle.no.on{background:linear-gradient(180deg, #ff8566, var(--coral));color:#fff;box-shadow:inset 0 1px #fff9,0 4px 12px #ff5a3666}.chip{border:1px solid var(--glass-edge);background:#ffffff8c;border-radius:999px;min-height:36px;padding:0 14px;font-size:13px;font-weight:900}.chip.on{color:#fff;background:#2b2118e0}.nav{z-index:10;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));border:1px solid var(--glass-edge);box-shadow:var(--glass-highlight), 0 12px 34px #143c5a38;background:#ffffff73;border-radius:999px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px;display:grid;position:fixed}.nav a{min-height:52px;color:var(--muted);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:11px;font-weight:800;text-decoration:none;transition:background .2s;display:flex}.nav a.active{color:var(--ink);background:#ffffffbf;font-weight:900;box-shadow:inset 0 1px #fff,0 2px 8px #143c5a1f}.nav a.active svg{color:var(--orange-deep)}.nav .brand{display:none}@media (width<=899px){body.typing .nav,body.typing .glass-bar{display:none}}@media (width>=900px){.nav{border-radius:32px;flex-direction:column;flex-shrink:0;gap:6px;width:232px;height:calc(100dvh - 32px);margin:16px 0 16px 16px;padding:20px 12px;display:flex;position:sticky;inset:16px auto auto}.nav .brand{font-family:var(--display);align-items:center;gap:8px;padding:0 10px 16px;font-size:26px;font-weight:700;display:flex}.nav a{flex-direction:row;justify-content:flex-start;gap:12px;min-height:48px;padding:0 14px;font-size:16px}}.mascot{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.bubble{color:var(--ink);text-shadow:none;border:1px solid var(--glass-edge);box-shadow:var(--glass-highlight), var(--glass-shadow);background:#ffffffc7;border-radius:22px 22px 22px 6px;padding:10px 14px;font-weight:800}.glass-bar{bottom:calc(96px + env(safe-area-inset-bottom));z-index:5;background:#ffffffb8;position:sticky}@media (width>=900px){.glass-bar{bottom:16px}}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:60dvh;padding:24px;display:flex}.error{color:#9a2a10;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);background:#ffe8e0d9;border:1px solid #ffaa8ce6;border-radius:20px;padding:12px 14px;font-weight:800}.code{word-break:break-all;font-family:ui-monospace,Menlo,monospace;font-size:14px;font-weight:700}.skeleton{border-radius:var(--radius);border:1px solid var(--glass-edge);background:linear-gradient(90deg,#ffffff59,#fff9,#ffffff59) 0 0/200% 100%;height:72px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.card,.nav,.glass-dock,.bubble,.pill,.icon-btn,.chip,.btn.white,.btn.ghost{background:#fffffff0}}@media (prefers-reduced-transparency:reduce){.card,.nav,.glass-dock,.bubble,.icon-btn,.btn.white,.btn.ghost,.glass-bar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffffff5}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}.card.link,.btn,.toggle{transition:none}}.activity-list{padding:4px 0}.activity-row{color:var(--ink);padding:12px 16px;text-decoration:none;display:block}.activity-row+.activity-row{border-top:1px solid #2b211814}a.activity-row:hover{color:var(--ink);background:#ffffff59}.activity-what{font-weight:700;line-height:1.35}.activity-what b{font-weight:900}.activity-meta{margin-top:2px;font-size:13px}.member-list{padding:4px 0}.member-row{align-items:center;gap:12px;padding:10px 16px;display:flex}.member-row+.member-row{border-top:1px solid #2b211814}.member-name{flex:1;font-weight:800}.member-sub{font-size:13px;font-weight:700}.select{min-height:40px;font:inherit;color:var(--ink);background:#fffc;border:1px solid #2b211826;border-radius:999px;flex:1;padding:0 14px}.btn.danger{background:linear-gradient(180deg, #ff7a5c, var(--coral));color:#fff}.trend{align-items:stretch;gap:8px;height:170px;margin-top:10px;display:flex}.trend-col{background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;padding:0;display:flex}.trend-value{white-space:nowrap;height:16px;font-size:12px;font-weight:900}.trend-track{border-bottom:1px solid #2b211826;flex:1;align-items:flex-end;width:100%;max-width:36px;display:flex}.trend-bar{background:#ea9a45;border-radius:4px 4px 0 0;width:100%;transition:background .15s}.trend-col.on .trend-bar{background:#b55705}.trend-col:hover .trend-bar{background:#d27a24}.trend-month{color:var(--muted);font-size:12px;font-weight:800}.trend-col.on .trend-month{color:var(--ink)}.stat-tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-tile{flex-direction:column;gap:2px;display:flex}.stat-num{font-family:var(--display);font-size:30px;font-weight:700;line-height:1.1}.stat-sub{font-size:13px}.cat-list{flex-direction:column;gap:12px;margin-top:10px;display:flex}.cat-head{justify-content:space-between;gap:8px;font-weight:800;display:flex}.cat-amt{white-space:nowrap}.cat-amt .muted{margin-left:4px;font-size:13px}.cat-track{background:#2b211812;border-radius:4px;height:10px;margin-top:5px;overflow:hidden}.cat-bar{background:#b55705;border-radius:4px;height:100%}.stat-table{border-collapse:collapse;width:100%;margin-top:8px;font-weight:700}.stat-table th,.stat-table td{text-align:right;border-top:1px solid #2b211814;padding:8px 4px}.stat-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-top:0;font-size:12px}.stat-table th[scope=row],.stat-table thead th:first-child{text-align:left}.modal-backdrop{z-index:1000;background:#14283c59;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:520px;margin-bottom:env(safe-area-inset-bottom);background:#fffffff5;flex-direction:column;gap:12px;padding:22px;display:flex}@media (width>=700px){.modal-backdrop{align-items:center}}.textarea{width:100%;font:inherit;color:var(--ink);resize:vertical;background:#fff;border:1px solid #2b211826;border-radius:18px;padding:12px 14px}.report-row{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;display:block}.report-msg{white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:6px;display:-webkit-box;overflow:hidden}.trail{flex-direction:column;gap:4px;display:flex}.trail-row{background:#ffffff80;border-radius:12px;padding:6px 10px;font-size:14px}.trail-row.bad{background:#ffd6c8b3}.trail-row.hit{outline:2px solid var(--orange-deep)}.trail-row summary{cursor:pointer}.trail-time{font-variant-numeric:tabular-nums;color:var(--muted)}.trail-error{color:var(--owe);margin-top:2px}.trail-row pre{white-space:pre-wrap;word-break:break-word;margin:6px 0 0;font-size:12px}.tour-backdrop{align-items:center}.tour{text-align:center;align-items:stretch;padding-top:28px;position:relative}.tour-skip{color:var(--muted);background:0 0;border:0;font-weight:800;position:absolute;top:14px;right:16px}.tour-title{font-size:26px}.tour-body{color:var(--muted);margin:0;font-weight:700}.tour-example{background:#ff9a2e26;border-radius:12px;align-self:center;padding:8px 14px;font-weight:800}.tour-dots{justify-content:center;gap:6px;display:flex}.tour-dots span{background:#2b21182e;border-radius:50%;width:8px;height:8px}.tour-dots span.on{background:var(--orange-deep);border-radius:4px;width:20px}
