:root{--bg:#0a0a0b;--card:#141311;--card2:#1e1c17;--line:#2c2a23;--text:#f4f4f3;--muted:#949695;--dim:#5d5d5b;--beacon:#fea119;--beacon-deep:#c16927;--accent:#c16927;--good:#8fae6f;--good-bg:#1c2416;--warn:#ff7900;--warn-bg:#241a0e;--bad:#d0685c;--bad-bg:#251412;--radius:16px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:16px}body{background:var(--bg);color:var(--text);font-family:-apple-system,SF Pro Text,Segoe UI,Roboto,sans-serif;min-height:100dvh;line-height:1.5}a{color:inherit;text-decoration:none}main{max-width:680px;margin:0 auto;padding:16px 16px 100px}.topbar{display:flex;justify-content:space-between;align-items:baseline;padding:10px 2px 18px;gap:8px}.topbar h1{font-size:20px;font-weight:700;letter-spacing:-.2px}.topbar .who{font-size:12px;color:var(--muted);line-height:1.3}.beacon-dot{color:var(--accent)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.4)}.card h2{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}.hero-num{font-size:36px;font-weight:700;letter-spacing:-.8px;color:var(--text)}.hero-sub{font-size:13px;color:var(--muted);margin-top:4px}.bar{height:5px;background:var(--card2);overflow:hidden;margin-top:12px}.bar,.bar>div{border-radius:5px}.bar>div{height:100%;background:var(--accent)}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;cursor:pointer;transition:transform .08s;box-shadow:0 1px 3px rgba(0,0,0,.4)}.stat:active{transform:scale(.985)}.stat .label{font-size:12px;color:var(--muted);font-weight:600}.stat .value{font-size:22px;font-weight:700;margin-top:2px}.up{color:var(--bad)}.down{color:var(--good)}.flat{color:var(--dim);font-size:12px}.banner{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);padding:13px 15px;margin-bottom:14px;font-size:14px;color:var(--text);font-weight:500}.banner,.row{display:flex;justify-content:space-between;align-items:center}.row{padding:12px 2px;border-bottom:1px solid var(--card2);gap:10px}.row:last-child{border-bottom:0}.row .name{font-size:15px;font-weight:500}.row .sub{font-size:12px;color:var(--muted)}.row .amt{font-size:15px;font-weight:700;white-space:nowrap}.neg{color:var(--text)}.pos{color:var(--good)}.pill{font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:var(--card);cursor:pointer}.pill.paid{color:var(--good);border-color:var(--good);background:var(--good-bg)}.pill.due{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}.pill.late{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}.btn,button{font:inherit;font-size:14px;font-weight:600;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 16px;cursor:pointer}button.primary{background:color-mix(in srgb,var(--accent) 20%,var(--card));color:var(--text);border-color:var(--accent)}button.small{padding:6px 12px;font-size:13px;border-radius:9px}input,select{font:inherit;width:100%;background:var(--card2);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px 14px}input:focus,select:focus{outline:1px solid var(--accent);outline-offset:0}form.inline{display:flex;gap:8px;align-items:center}label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin:14px 0 6px}nav.tabs{position:fixed;bottom:0;left:0;right:0;background:rgba(10,10,11,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:8px 0 max(8px,env(safe-area-inset-bottom))}nav.tabs a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;color:var(--dim);padding:4px 10px}nav.tabs a.active{color:var(--accent)}nav.tabs svg{width:22px;height:22px}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px}.login-card .mark{text-align:center;font-size:40px;margin-bottom:8px;color:var(--accent)}.login-card h1{font-size:19px;margin-bottom:2px}.login-card p{color:var(--muted);margin-bottom:18px}.err,.login-card p{text-align:center;font-size:13px}.err{color:var(--bad)}.err,.ok-msg{margin-top:10px}.ok-msg{color:var(--good);font-size:13px}.section-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin:22px 0 8px 2px}.spark{font-size:12px;color:var(--dim)}.curve{width:100%;height:120px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.sheet{background:var(--card);border:1px solid var(--line);border-radius:20px;width:min(560px,100%);max-height:84dvh;overflow-y:auto;padding:18px;box-shadow:0 16px 48px rgba(0,0,0,.55)}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sheet-head h3{font-size:16px;font-weight:700}.sheet-close{background:var(--card2);border:0;border-radius:999px;width:32px;height:32px;font-size:14px;line-height:1;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto}.cat-head{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--accent);padding:12px 2px 4px}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px}.legend span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.spend-bars{display:flex;align-items:flex-end;gap:10px;height:90px;margin-top:10px}.spend-bars .col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}.spend-bars .b{width:100%;background:color-mix(in srgb,var(--accent) 22%,var(--card2));border-top:2px solid var(--accent);border-radius:6px 6px 0 0;min-height:6px}.spend-bars .cap{font-size:11px;color:var(--muted);font-weight:600}.bell{position:relative;background:var(--card);border:1px solid var(--line);width:40px;height:40px;color:var(--muted);cursor:pointer;padding:0}.bell,.bell .badge{border-radius:999px;display:flex;align-items:center;justify-content:center}.bell .badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:var(--text);font-size:11px;font-weight:700;min-width:18px;height:18px;padding:0 4px}.ins-block{margin-bottom:14px}.ins-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);margin-bottom:3px}.ins-block p{font-size:14px;color:var(--text);line-height:1.55}.note-card{border-left:3px solid var(--accent)}.quote-foot{text-align:center;padding:26px 20px 6px;font-size:13px;color:var(--dim);font-style:italic;line-height:1.5}.quote-foot div{font-style:normal;font-size:12px;margin-top:3px}.sev{font-size:11px;font-weight:700;letter-spacing:.4px;padding:3px 10px;border-radius:999px;white-space:nowrap}.sev.severe{color:var(--bad);background:var(--bad-bg);border:1px solid var(--bad)}.sev.mid{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid var(--accent)}.sev.low{color:var(--muted);background:var(--card2);border:1px solid var(--line)}.sev.win{color:var(--good);background:var(--good-bg);border:1px solid var(--good)}.login-tag{text-align:center;font-size:13px;color:var(--muted);margin:2px 0 20px}.login-foot{text-align:center;font-size:12px;color:var(--dim);margin-top:16px}.login-card h1{text-align:center;font-size:22px;font-weight:700;letter-spacing:-.3px}.stat .value.pos{color:var(--good)}.bar.env{position:relative;height:7px;margin-top:10px}.bar .tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--dim);border-radius:2px}.bar>div.over{background:var(--bad)}.bar>div.warn{background:var(--warn)}.env-head{align-items:baseline}.env-head,.env-sub{display:flex;justify-content:space-between;gap:8px}.env-sub{font-size:12px;color:var(--muted);margin-top:8px}.badge-roll{font-size:11px;color:var(--good);font-weight:600}.half-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 14px}.half-nav .lbl{font-size:16px;font-weight:700;letter-spacing:-.2px}.half-nav .sub{font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:8px;margin-bottom:4px}.catgrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 10px;gap:6px 10px;margin-top:6px}.catgrid label{display:flex;align-items:center;gap:8px;margin:0;font-weight:500;color:var(--text);font-size:14px}.hero-of{font-size:15px;font-weight:500;color:var(--muted);letter-spacing:0}.env-row{padding:12px 0;border-bottom:1px solid var(--card2);cursor:pointer}.env-row:last-child{border-bottom:0;padding-bottom:2px}.env-row:first-child{padding-top:2px}.env-row .name{font-size:15px;font-weight:600}.delta{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px}.delta.over{color:var(--bad);background:var(--bad-bg)}.delta.under{color:var(--good);background:var(--good-bg)}.bar>div.save{background:var(--good)}.plan-pair{align-items:flex-end;margin-bottom:12px}.plan-mix,.plan-pair{display:flex;justify-content:space-between}.plan-mix{gap:8px;font-size:12px;color:var(--muted);margin-top:10px;flex-wrap:wrap}.status-bar{display:flex;gap:3px;height:10px;border-radius:6px;overflow:hidden;margin:8px 0 2px}.status-bar .seg{border-radius:3px}.seg.s-over{background:var(--bad)}.seg.s-ahead{background:var(--warn)}.seg.s-ontrack{background:var(--good)}.seg.s-unspent{background:var(--card2);border:1px solid var(--line)}.status-totals{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--card2)}.status-totals .label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-totals .value{font-size:17px;font-weight:700;margin-top:2px}.group-label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.6px;padding:14px 0 2px}.group-label:first-child{padding-top:0}.amt-big{font-size:17px;font-weight:700;letter-spacing:-.2px}.group-band{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px 15px;margin:20px 0 10px;font-size:13px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.7px}.group-band .spark{text-transform:none;letter-spacing:0;font-weight:500}.group-band .amt{font-size:14px}.flow-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0}.flow-row .flow-label{font-size:14px;font-weight:600;color:var(--muted)}.flow-row .amt-big{font-size:22px}.flow-sub{font-size:12px;color:var(--dim);text-align:right;margin-top:-4px}.flow-total{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.flow-total .flow-label{color:var(--text);font-size:15px}.hero-v2{background:radial-gradient(130% 160% at 0 0,color-mix(in srgb,var(--beacon) 8%,var(--card)) 0,var(--card) 55%);border-color:color-mix(in srgb,var(--beacon) 25%,var(--line));padding:20px 18px 16px}.hero-stats{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:16px}.hero-stats>div:nth-child(2){text-align:center}.hero-stats>div:nth-child(3){text-align:right}.h-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:3px}.h-num{font-size:clamp(19px,6.4vw,27px);font-weight:700;letter-spacing:-.6px;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-bar{height:10px}.bar>div{transition:width .5s ease}.hero-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}.stat-hero{padding:18px 16px 15px;cursor:default;background:radial-gradient(140% 170% at 0 0,color-mix(in srgb,var(--beacon) 9%,var(--card)) 0,var(--card) 60%);border-color:color-mix(in srgb,var(--beacon) 22%,var(--line))}.stat-hero .label{text-transform:uppercase;letter-spacing:.8px;font-size:11px}.stat-hero .value{font-size:clamp(26px,8vw,34px);letter-spacing:-.9px;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.micro{height:4px;background:var(--card2);border-radius:4px;margin:12px 0 8px;overflow:hidden}.micro>div{height:100%;background:var(--accent);border-radius:4px;transition:width .5s ease}.stat-sub{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.stat-hero{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0) 34%,rgba(0,0,0,.3)),repeating-linear-gradient(90deg,#17171a 0 2px,#1d1d21 2px 4px),#161618;border:1px solid color-mix(in srgb,var(--beacon-deep) 34%,#2a2a2e);box-shadow:inset 0 2px 10px rgba(0,0,0,.65),inset 0 -1px 0 rgba(255,255,255,.05),inset 0 -18px 34px -26px color-mix(in srgb,var(--beacon-deep) 55%,transparent),0 1px 0 rgba(255,255,255,.03)}.stat-hero .label{color:#b9bec6;text-shadow:0 1px 1px rgba(0,0,0,.85)}.stat-hero .value{background:linear-gradient(180deg,#f6f7f8,#cfd3d8 42%,#8e939b 55%,#dfe2e6 78%,#aab0b8);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7))}.stat-hero .micro{background:#0f0f11;box-shadow:inset 0 1px 3px rgba(0,0,0,.8),inset 0 -1px 0 rgba(255,255,255,.03)}.stat-hero .micro>div{background:linear-gradient(90deg,var(--beacon-deep),var(--beacon));box-shadow:0 0 9px -2px var(--beacon)}.stat-hero .stat-sub{color:#8d9299}.stat-hero{background:repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 2px,rgba(255,255,255,0) 2px 4px),radial-gradient(130% 110% at 50% 0,rgba(0,0,0,.5) 0,rgba(0,0,0,.08) 70%),var(--bg);box-shadow:inset 0 3px 10px rgba(0,0,0,.9),inset 0 1px 0 rgba(0,0,0,.95),inset 2px 0 8px rgba(0,0,0,.55),inset -2px 0 8px rgba(0,0,0,.55),inset 0 -1px 0 rgba(255,255,255,.07),inset 0 -22px 38px -30px color-mix(in srgb,var(--beacon-deep) 60%,transparent),0 1px 0 rgba(255,255,255,.045);background:transparent;border:0;box-shadow:none;padding:4px 4px 8px}.home-hero{margin:2px 0 16px}.home-hero .value{font-size:clamp(30px,9.5vw,42px);letter-spacing:-1px;margin-top:2px}.activity-hero{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;margin:2px 0 14px}.activity-hero>div:nth-child(2){text-align:center}.activity-hero>div:nth-child(3){text-align:right}.activity-hero .value{font-size:clamp(20px,6.4vw,28px);letter-spacing:-.6px;margin-top:2px}.group-band{background:transparent;border:0;border-radius:0;padding:20px 2px 6px;margin:4px 0 2px;color:#b9bec6;text-shadow:0 1px 1px rgba(0,0,0,.85);font-size:12px;letter-spacing:.9px}.group-band .amt{color:var(--text);font-size:15px}.group-band .spark{color:#8d9299}.section-title{color:#b9bec6;text-shadow:0 1px 1px rgba(0,0,0,.85);letter-spacing:.9px}.cat-head{color:#b9bec6;text-shadow:0 1px 1px rgba(0,0,0,.8);text-transform:uppercase;font-size:11px;letter-spacing:.7px}.markpaid{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.markpaid input[type=date]{width:130px;padding:5px 8px;font-size:12px}.markpaid input[type=number]{width:84px;padding:5px 8px;font-size:12px;text-align:right}.markpaid select{width:150px;padding:5px 8px;font-size:12px}a.pill{text-decoration:none;display:inline-block}main{overflow-x:clip;padding-bottom:84px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-hero,.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat,.stat>*{min-width:0}.stat:not(.stat-hero) .value{font-size:clamp(17px,5.6vw,22px)}.h-num{font-size:clamp(17px,6vw,27px)}.row>div:first-child,.topbar h1{min-width:0}.donut{width:clamp(56px,17vw,82px);aspect-ratio:1/1;height:auto;flex:0 0 auto}.half-stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding-top:16px}.half-stat .flat{margin-top:1px}.topbar .who{display:flex;flex-direction:column;align-items:flex-end;line-height:1;text-align:right}.brand-ghost{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--text);opacity:.16}.brand-main{font-size:15px;font-weight:700;letter-spacing:.4px;color:#b9bec6;text-shadow:0 1px 1px rgba(0,0,0,.85);margin-top:3px}.note-quote{text-align:center;padding:2px 20px 16px;font-size:13px;color:var(--dim);font-style:italic;line-height:1.5}.note-quote div{font-style:normal;font-size:12px;margin-top:3px}.footbar{position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(10,10,11,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 16px calc(9px + env(safe-area-inset-bottom))}.footbar .credit{font-size:11px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;flex:0 0 auto;cursor:pointer}.menu-btn:active{transform:scale(.94)}.overlay.menu-pop{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.menu-card{width:min(360px,calc(100vw - 40px));background:var(--card);border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:0 24px 64px rgba(0,0,0,.6);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;animation:menu-in .18s ease-out}@keyframes menu-in{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}.menu-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px 13px;border-radius:16px;background:var(--card2);border:1px solid transparent;font-size:13px;font-weight:600;color:var(--muted);transition:transform .08s}.menu-tile svg{width:23px;height:23px}.menu-tile.active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--card2))}.menu-tile:active{transform:scale(.96)}.menu-tile.wide{grid-column:1/-1;flex-direction:row;justify-content:center;gap:10px;padding:13px 8px}.set-row{display:flex;align-items:center;gap:10px;width:100%;padding:13px 2px;background:none;border:0;border-bottom:1px solid var(--card2);border-radius:0;font:inherit;color:var(--text);text-align:left;cursor:pointer}.set-row:last-child{border-bottom:0}.set-main{flex:1 1;min-width:0}.set-main .name{font-size:15px;font-weight:500}.set-main .sub{font-size:12px;color:var(--muted)}.set-val{font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}.chev{color:var(--dim);flex:0 0 auto}.note-line{font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:6px;border-bottom:1px solid var(--card2);margin-bottom:2px}.card-head .sub{font-size:12px;color:var(--muted)}.addbtn{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;line-height:1;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card));border:1px solid var(--accent)}.addbtn,.swatch{padding:0;flex:0 0 auto;cursor:pointer}.swatch{width:26px;height:26px;border-radius:999px;border:2px solid transparent}.swatch.sel{border-color:var(--text);box-shadow:0 0 0 2px var(--bg),0 0 9px -2px currentColor}.upl{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--text);background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:6px 12px;cursor:pointer;flex:0 0 auto}.launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.launch{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:15px 14px 13px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.4);font:inherit;color:var(--text);text-align:left;cursor:pointer;min-width:0;transition:transform .08s}.launch:active{transform:scale(.97)}.launch svg{width:22px;height:22px;color:var(--accent);flex:0 0 auto}.launch .t{font-size:15px;font-weight:600}.launch .s{font-size:12px;color:var(--muted);margin-top:-4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.launch.wide{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px}.launch.wide .s{margin-top:1px}