:root{--font-body:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Space Grotesk", "Plus Jakarta Sans", system-ui, sans-serif;--lime:#c6ff3d;--lime-ink:#1a2400;--violet:#8b5cf6;--violet-2:#a78bfa;--pink:#ff4fd8;--cyan:#3df2ff;--orange:#ff8a3d;--red:#ff4d6d;--green:#2ee59d;--yellow:#ffd23f;--grad-hero:linear-gradient(135deg, #7c3aed 0%, #c026d3 45%, #ff4fd8 75%, #ff8a3d 100%);--grad-lime:linear-gradient(135deg, #c6ff3d 0%, #3df2ff 100%);--grad-violet:linear-gradient(135deg, #8b5cf6 0%, #3df2ff 100%);--grad-pink:linear-gradient(135deg, #ff4fd8 0%, #ff8a3d 100%);--radius-sm:10px;--radius:18px;--radius-lg:26px;--radius-xl:32px;--sidebar-w:264px;--topbar-h:72px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--safe-b:env(safe-area-inset-bottom,0px)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0a14;--bg-2:#12101f;--surface:#ffffff0b;--surface-2:#ffffff13;--surface-solid:#16132a;--surface-hover:#ffffff17;--border:#ffffff17;--border-strong:#ffffff29;--text:#f4f2ff;--text-2:#b9b4d6;--text-3:#7d779e;--shadow:0 10px 40px -12px #0009;--shadow-lg:0 30px 80px -20px #000000b3;--blob-opacity:.55;--input-bg:#ffffff0d;--overlay:#06050eb3;--accent:var(--lime);--accent-ink:var(--lime-ink)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f4ff;--bg-2:#ece8ff;--surface:#ffffffb8;--surface-2:#ffffffe6;--surface-solid:#fff;--surface-hover:#8b5cf612;--border:#28145a17;--border-strong:#28145a29;--text:#17122e;--text-2:#4c4670;--text-3:#8a85a8;--shadow:0 10px 30px -12px #3c1e8c2e;--shadow-lg:0 30px 80px -24px #3c1e8c4d;--blob-opacity:.35;--input-bg:#ffffffd9;--overlay:#1e143c59;--accent:#7c3aed;--accent-ink:#fff;--lime:#65a30d;--cyan:#0891b2;--green:#059669;--yellow:#ca8a04}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;transition:background .4s var(--ease), color .3s var(--ease);margin:0;font-size:15px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0;line-height:1.15}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,select,textarea{font:inherit;color:inherit}svg{flex-shrink:0}::selection{background:var(--violet);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-track{background:0 0}.bg-blobs{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-blobs span{filter:blur(90px);opacity:var(--blob-opacity);border-radius:50%;animation:22s ease-in-out infinite float;position:absolute}.bg-blobs span:first-child{background:#7c3aed;width:520px;height:520px;top:-160px;left:-120px}.bg-blobs span:nth-child(2){width:420px;height:420px;opacity:calc(var(--blob-opacity) * .7);background:#ff4fd8;animation-delay:-6s;top:30%;right:-160px}.bg-blobs span:nth-child(3){width:380px;height:380px;opacity:calc(var(--blob-opacity) * .5);background:#3df2ff;animation-delay:-12s;bottom:-160px;left:30%}.bg-grid{z-index:-1;pointer-events:none;background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.5;background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 0%,#0000 70%);mask-image:radial-gradient(at 50% 0,#000 0%,#0000 70%)}@keyframes float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(60px,40px)scale(1.08)}66%{transform:translate(-40px,60px)scale(.95)}}.app{min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);z-index:40;background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.4);border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:22px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:6px 10px 22px;display:flex}.brand-logo{background:var(--grad-hero);width:42px;height:42px;transition:transform .4s var(--ease-spring);border-radius:14px;place-items:center;font-size:22px;display:grid;transform:rotate(-6deg);box-shadow:0 8px 24px -6px #c026d399}.brand:hover .brand-logo{transform:rotate(6deg)scale(1.06)}.brand-name{font-family:var(--font-display);letter-spacing:-.03em;font-size:21px;font-weight:700}.brand-name em{background:var(--grad-lime);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}[data-theme=light] .brand-name em{background:var(--grad-hero);-webkit-background-clip:text;background-clip:text}.brand-sub{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:11.5px;font-weight:600}.nav-label{color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;padding:14px 14px 6px;font-size:11px;font-weight:700}.nav-link{color:var(--text-2);transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);border-radius:14px;align-items:center;gap:12px;padding:11px 14px;font-size:14.5px;font-weight:600;display:flex;position:relative}.nav-link:hover{background:var(--surface-hover);color:var(--text);transform:translate(3px)}.nav-link.active{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 30px -10px color-mix(in srgb, var(--accent) 70%, transparent)}.nav-link .nav-emoji{margin-left:auto;font-size:14px}.sidebar-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.user-chip{background:var(--surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:10px;padding:10px;display:flex}.user-chip .meta{flex:1;min-width:0}.user-chip .meta b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.user-chip .meta small{color:var(--text-3);font-size:12px}.main{min-width:0;margin-left:var(--sidebar-w);flex-direction:column;flex:1;display:flex}.main.no-sidebar{margin-left:0}.topbar{z-index:30;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 65%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.3);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 clamp(16px,3vw,36px);display:flex;position:sticky;top:0}.topbar-title{flex:1;min-width:0}.topbar-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(18px,2.2vw,22px);overflow:hidden}.topbar-title p{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.topbar-brand{display:none}.topbar-actions{align-items:center;gap:8px;display:flex}.content{width:100%;max-width:1560px;margin:0 auto;padding:clamp(16px,3vw,36px) clamp(16px,3vw,36px) calc(clamp(16px,3vw,36px) + 24px)}.bottom-nav{z-index:45;left:12px;right:12px;bottom:calc(12px + var(--safe-b));background:color-mix(in srgb, var(--surface-solid) 85%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);border-radius:24px;justify-content:space-around;gap:4px;padding:8px;display:none;position:fixed}.bottom-nav a{color:var(--text-3);transition:all .25s var(--ease);border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:8px 4px;font-size:10.5px;font-weight:700;display:flex}.bottom-nav a span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.bottom-nav a.active{background:var(--accent);color:var(--accent-ink)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px);min-width:0;box-shadow:var(--shadow);transition:transform .35s var(--ease), border-color .3s var(--ease), box-shadow .35s var(--ease);padding:clamp(16px,2vw,24px);position:relative}.card.hoverable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.card-head h3{align-items:center;gap:8px;font-size:clamp(16px,1.6vw,18px);display:flex}.card-head p{color:var(--text-3);margin-top:3px;font-size:13px}.btn{white-space:nowrap;height:44px;transition:transform .2s var(--ease-spring), box-shadow .25s var(--ease), background .25s var(--ease), opacity .2s;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 28px -10px color-mix(in srgb, var(--accent) 80%, transparent)}.btn-primary:hover:not(:disabled){box-shadow:0 16px 36px -12px color-mix(in srgb, var(--accent) 90%, transparent);transform:translateY(-2px)}.btn-gradient{background:var(--grad-hero);color:#fff;box-shadow:0 12px 30px -10px #c026d3b3}.btn-gradient:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}.btn-ghost{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.btn-danger{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red);border:1px solid color-mix(in srgb, var(--red) 35%, transparent)}.btn-danger:hover:not(:disabled){background:var(--red);color:#fff}.btn-sm{border-radius:11px;height:36px;padding:0 12px;font-size:13px}.btn-block{width:100%}.icon-btn{background:var(--surface);border:1px solid var(--border);width:42px;height:42px;color:var(--text-2);transition:all .25s var(--ease);border-radius:13px;place-items:center;display:grid}.icon-btn:hover{color:var(--text);background:var(--surface-hover);transform:rotate(-6deg)scale(1.05)}.icon-btn.sm{border-radius:10px;width:34px;height:34px}.icon-btn.danger:hover{color:#fff;background:var(--red);border-color:var(--red)}.badge{white-space:nowrap;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:99px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:700;line-height:1.3;display:inline-flex}.badge.in{background:color-mix(in srgb, var(--green) 14%, transparent);color:var(--green);border-color:color-mix(in srgb, var(--green) 30%, transparent)}.badge.out{background:color-mix(in srgb, var(--red) 14%, transparent);color:var(--red);border-color:color-mix(in srgb, var(--red) 30%, transparent)}.badge.warn{background:color-mix(in srgb, var(--orange) 15%, transparent);color:var(--orange);border-color:color-mix(in srgb, var(--orange) 30%, transparent)}.badge.violet{background:color-mix(in srgb, var(--violet) 18%, transparent);color:var(--violet-2);border-color:color-mix(in srgb, var(--violet) 35%, transparent)}[data-theme=light] .badge.violet{color:var(--violet)}.badge.lime{background:color-mix(in srgb, var(--lime) 18%, transparent);color:var(--lime);border-color:color-mix(in srgb, var(--lime) 35%, transparent)}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.avatar{width:40px;height:40px;font-family:var(--font-display);color:#fff;border-radius:13px;flex-shrink:0;place-items:center;font-size:15px;font-weight:700;display:grid;box-shadow:inset 0 0 0 1px #fff3}.avatar.sm{border-radius:10px;width:32px;height:32px;font-size:13px}.avatar.lg{border-radius:18px;width:56px;height:56px;font-size:20px}.muted{color:var(--text-3)}.text-in{color:var(--green)}.text-out{color:var(--red)}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.grow{flex:1;min-width:0}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.wrap{flex-wrap:wrap}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field>label{color:var(--text-2);justify-content:space-between;gap:8px;font-size:13px;font-weight:700;display:flex}.field>label small{color:var(--text-3);font-weight:500}.input,.select,.textarea{background:var(--input-bg);border:1.5px solid var(--border);width:100%;height:48px;transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s;border-radius:14px;outline:none;padding:0 14px;font-size:15px;font-weight:500}.textarea{resize:vertical;height:auto;min-height:84px;padding:12px 14px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239c96bf' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}.select option{background:var(--surface-solid);color:var(--text)}.input:focus,.select:focus,.textarea:focus{border-color:var(--violet);box-shadow:0 0 0 4px color-mix(in srgb, var(--violet) 22%, transparent)}.input-wrap{position:relative}.input-wrap>svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-wrap>.input{padding-left:42px}.input-wrap .suffix{position:absolute;top:50%;right:8px;transform:translateY(-50%)}.money-input{position:relative}.money-input span{color:var(--text-3);font-weight:800;font-family:var(--font-display);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.money-input .input{font-family:var(--font-display);padding-left:44px;font-size:18px;font-weight:700}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.hint{color:var(--text-3);font-size:12.5px}.quick-amounts{flex-wrap:wrap;gap:6px;display:flex}.quick-amounts button{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);transition:all .2s var(--ease);border-radius:99px;padding:6px 12px;font-size:12.5px;font-weight:700}.quick-amounts button:hover,.quick-amounts button.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.segmented{background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--text-3);transition:all .25s var(--ease);white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:700;display:inline-flex}.segmented button.on{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow)}.segmented.big{width:100%;display:flex}.segmented.big button{flex:1;justify-content:center;padding:12px;font-size:14.5px}.segmented.big button.on.in{background:var(--green);color:#04261a}.segmented.big button.on.out{background:var(--red);color:#fff}.switch{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:99px;flex-shrink:0;width:46px;height:26px;transition:background .25s;position:relative}.switch:after{content:"";background:var(--text-3);width:18px;height:18px;transition:all .3s var(--ease-spring);border-radius:50%;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent);border-color:#0000}.switch.on:after{background:var(--accent-ink);left:23px}.modal-backdrop{z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(8px);animation:fadeIn .25s var(--ease);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:calc(100dvh - 40px);box-shadow:var(--shadow-lg);animation:popIn .4s var(--ease-spring);overflow:auto}.modal.wide{max-width:720px}.modal-head{z-index:2;background:var(--surface-solid);align-items:center;gap:12px;padding:20px 22px 14px;display:flex;position:sticky;top:0}.modal-head h3{flex:1;font-size:20px}.modal-body{padding:6px 22px 22px}.modal-foot{background:var(--surface-solid);border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 22px 20px;display:flex;position:sticky;bottom:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:none}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:none}}.toasts{z-index:200;flex-direction:column;gap:10px;max-width:min(380px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{background:var(--surface-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);animation:toastIn .45s var(--ease-spring);border-radius:16px;align-items:center;gap:10px;padding:13px 16px;font-size:14px;font-weight:600;display:flex}.toast.success{border-left:4px solid var(--green)}.toast.error{border-left:4px solid var(--red)}@keyframes toastIn{0%{opacity:0;transform:translate(40px)scale(.9)}to{opacity:1;transform:none}}.page-enter{animation:pageIn .6s var(--ease) both}@keyframes pageIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.stagger>*{animation:pageIn .6s var(--ease) both}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:70ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.17s}.stagger>:nth-child(5){animation-delay:.22s}.stagger>:nth-child(6){animation-delay:.27s}.stagger>:nth-child(7){animation-delay:.32s}.stagger>:nth-child(8){animation-delay:.37s}.stagger>:nth-child(n+9){animation-delay:.42s}.hello{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.hello h2{font-size:clamp(26px,4vw,40px);font-weight:700}.hello h2 .wave{transform-origin:70% 70%;animation:2.4s ease-in-out infinite wave;display:inline-block}.hello p{color:var(--text-2);margin-top:6px;font-size:clamp(13.5px,1.4vw,15px)}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.6vw,20px);display:grid}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.hero-card{border-radius:var(--radius-xl);color:#fff;background:var(--grad-hero);isolation:isolate;flex-direction:column;grid-column:span 8;min-height:260px;padding:clamp(20px,3vw,34px);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 70px -25px #c026d3a6}.hero-card:before{content:"";z-index:-1;opacity:.35;background:radial-gradient(circle at 85% 15%,#ffffff8c,#0000 40%),radial-gradient(circle at 10% 110%,#3df2ff99,#0000 45%);position:absolute;inset:0}.hero-card:after{content:"💸";opacity:.2;z-index:-1;font-size:clamp(60px,9vw,110px);animation:6s ease-in-out infinite bob;position:absolute;top:clamp(10px,2vw,20px);right:clamp(-10px,2vw,30px);transform:rotate(14deg)}@keyframes bob{0%,to{transform:rotate(14deg)translateY(0)}50%{transform:rotate(8deg)translateY(-10px)}}.hero-label{letter-spacing:.06em;text-transform:uppercase;opacity:.92;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.hero-label .dot{background:var(--lime);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 0 4px #c6ff3d4d}@keyframes pulse{0%,to{box-shadow:0 0 #c6ff3d99}50%{box-shadow:0 0 0 8px #c6ff3d00}}.hero-amount{font-family:var(--font-display);letter-spacing:-.04em;word-break:break-word;margin:10px 0 6px;font-size:clamp(38px,6.5vw,68px);font-weight:700;line-height:1.05}.hero-amount small{opacity:.85;vertical-align:.6em;margin-right:6px;font-size:.42em}.hero-sub{opacity:.9;font-size:14px;font-weight:500}.hero-chips{flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:22px;display:flex}.hero-chip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff29;border:1px solid #ffffff3d;border-radius:18px;flex:150px;min-width:0;padding:12px 14px}.hero-chip small{opacity:.9;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.hero-chip b{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:clamp(16px,2vw,20px);display:block;overflow:hidden}.hero-spark{z-index:-1;opacity:.45;pointer-events:none;height:45%;position:absolute;bottom:0;left:0;right:0}.progress-card{flex-direction:column;grid-column:span 4;display:flex}.ring-wrap{aspect-ratio:1;width:min(190px,60%);margin:4px auto 14px;position:relative}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-center{text-align:center;place-items:center;display:grid;position:absolute;inset:0}.ring-center b{font-family:var(--font-display);font-size:clamp(30px,4vw,40px);line-height:1;display:block}.ring-center small{color:var(--text-3);font-size:12.5px;font-weight:600}.mini-stats{grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;display:grid}.mini-stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:0;padding:12px}.mini-stat small{color:var(--text-3);font-size:12px;font-weight:600;display:block}.mini-stat b{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:17px;display:block;overflow:hidden}.stat-card{flex-direction:column;grid-column:span 3;gap:14px;display:flex;overflow:hidden}.stat-icon{color:#fff;border-radius:15px;place-items:center;width:46px;height:46px;font-size:20px;display:grid}.stat-card .label{color:var(--text-3);font-size:13px;font-weight:600}.stat-card .value{font-family:var(--font-display);letter-spacing:-.03em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(20px,2.2vw,27px);font-weight:700;overflow:hidden}.stat-card .foot{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:flex}.stat-card .glow{filter:blur(40px);opacity:.35;pointer-events:none;border-radius:50%;width:140px;height:140px;position:absolute;top:-50px;right:-50px}.unpaid-list{flex-direction:column;gap:10px;display:flex}.unpaid-item{background:var(--surface);border:1px solid var(--border);transition:all .3s var(--ease);border-radius:18px;align-items:center;gap:12px;padding:12px;display:flex}.unpaid-item:hover{border-color:color-mix(in srgb, var(--red) 40%, transparent);transform:translate(4px)}.unpaid-item .months{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.unpaid-item .owed{text-align:right;flex-shrink:0}.unpaid-item .owed b{font-family:var(--font-display);color:var(--red);font-size:16px;display:block}.unpaid-item .owed small{color:var(--text-3);font-size:11.5px;font-weight:600}.all-clear{text-align:center;padding:30px 10px}.all-clear .big-emoji{font-size:54px;animation:3s ease-in-out infinite bob2;display:block}@keyframes bob2{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}.matrix-scroll{-webkit-overflow-scrolling:touch;margin:0 calc(-1*clamp(16px,2vw,24px));padding:0 clamp(16px,2vw,24px) 6px;overflow-x:auto}.matrix{border-collapse:separate;border-spacing:5px;width:100%;min-width:max-content}.matrix th{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;text-align:center;white-space:nowrap;padding:4px 2px;font-size:11.5px;font-weight:700}.matrix th.now{color:var(--accent)}.matrix td.name{z-index:1;background:linear-gradient(90deg, var(--surface-solid) 80%, transparent);min-width:130px;padding:0 12px 0 0;position:sticky;left:0}[data-theme=light] .matrix td.name{background:linear-gradient(90deg,#faf9ff 80%,#0000)}.matrix td.name .row{white-space:nowrap;gap:8px;font-size:14px;font-weight:700}.cell{width:100%;min-width:58px;height:40px;font-size:11.5px;font-weight:800;font-family:var(--font-display);transition:transform .2s var(--ease-spring), box-shadow .2s;border:1px solid #0000;border-radius:12px;place-items:center;display:grid;position:relative}button.cell:hover{z-index:2;box-shadow:var(--shadow-lg);transform:scale(1.1)}.cell.paid{background:linear-gradient(135deg, color-mix(in srgb, var(--green) 85%, #000 0%), color-mix(in srgb, var(--cyan) 70%, var(--green)));color:#032116}.cell.partial{background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--yellow) 85%, transparent) 0 6px, color-mix(in srgb, var(--orange) 80%, transparent) 6px 12px);color:#2a1600}.cell.unpaid{background:color-mix(in srgb, var(--red) 16%, transparent);border-color:color-mix(in srgb, var(--red) 45%, transparent);color:var(--red)}.cell.upcoming{background:var(--surface);border:1.5px dashed var(--border-strong);color:var(--text-3)}.cell.na{color:var(--text-3);opacity:.5;background:0 0}.cell.now{outline:2px solid var(--accent);outline-offset:2px}.legend{color:var(--text-2);flex-wrap:wrap;gap:14px;font-size:12.5px;font-weight:600;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:5px;width:14px;height:14px;display:inline-block}.tx-list{flex-direction:column;display:flex}.tx-item{border-bottom:1px dashed var(--border);align-items:center;gap:12px;min-width:0;padding:12px 4px;display:flex}.tx-item:last-child{border-bottom:0}.tx-icon{border-radius:14px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:18px;display:grid}.tx-icon.in{background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green)}.tx-icon.out{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red)}.tx-item .desc{white-space:nowrap;text-overflow:ellipsis;text-transform:capitalize;font-size:14px;font-weight:700;overflow:hidden}.tx-item .sub{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.tx-item .amt{font-family:var(--font-display);white-space:nowrap;text-align:right;font-size:15px;font-weight:700}.rank-item{align-items:center;gap:12px;padding:10px 0;display:flex}.rank-no{text-align:center;width:28px;font-family:var(--font-display);color:var(--text-3);font-size:15px;font-weight:700}.bar-track{background:var(--surface-2);border-radius:99px;height:8px;margin-top:6px;overflow:hidden}.bar-fill{background:var(--grad-violet);height:100%;transition:width 1s var(--ease);border-radius:99px}.bar-fill.lime{background:var(--grad-lime)}.bar-fill.pink{background:var(--grad-pink)}.month-bars{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;display:grid}.month-bar{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;padding:12px}.month-bar.now{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.month-bar .vbar{background:var(--surface-2);border-radius:99px;width:18px;height:70px;margin:8px auto;position:relative;overflow:hidden}.month-bar .vbar i{background:var(--grad-lime);transition:height 1s var(--ease);border-radius:99px;position:absolute;bottom:0;left:0;right:0}[data-theme=light] .month-bar .vbar i{background:var(--grad-violet)}.month-bar b{font-family:var(--font-display);font-size:14px;display:block}.month-bar small{color:var(--text-3);font-size:11.5px;font-weight:600}.donut-legend{flex-direction:column;gap:10px;display:flex}.donut-legend .row-between{font-size:13.5px;font-weight:600}.dot-c{border-radius:4px;flex-shrink:0;width:10px;height:10px;display:inline-block}.chart-box{width:100%;height:300px}.chart-box.sm{height:220px}.chart-tooltip{background:var(--surface-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);border-radius:14px;padding:10px 14px;font-size:13px}.chart-tooltip b{font-family:var(--font-display)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .search{flex:240px}.toolbar .select{flex:0 auto;width:auto;min-width:150px}.table-wrap{margin:0 calc(-1*clamp(16px,2vw,24px));overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px clamp(16px,2vw,24px);font-size:11.5px;font-weight:700}.table td{border-bottom:1px dashed var(--border);vertical-align:middle;padding:13px clamp(16px,2vw,24px)}.table tr{transition:background .2s}.table tbody tr:hover{background:var(--surface-hover)}.table .right{text-align:right}.table .desc-cell{text-transform:capitalize;max-width:320px;font-weight:700}.mobile-cards{display:none}.summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.summary-strip .mini-stat b{font-size:clamp(15px,1.8vw,19px)}.empty{text-align:center;color:var(--text-3);padding:48px 16px}.empty .big-emoji{margin-bottom:8px;font-size:46px;display:block}.member-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.member-card{flex-direction:column;gap:14px;display:flex}.member-card.inactive{opacity:.6}.month-picker{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.month-chip{text-align:center;background:var(--surface);border:1.5px solid var(--border);transition:all .2s var(--ease-spring);border-radius:14px;padding:10px 6px;font-size:13px;font-weight:700;position:relative}.month-chip small{color:var(--text-3);margin-top:2px;font-size:10.5px;font-weight:600;display:block}.month-chip:hover:not(:disabled){border-color:var(--violet);transform:translateY(-2px)}.month-chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.month-chip.on small{color:inherit;opacity:.8}.month-chip.paid{opacity:.45;cursor:not-allowed}.month-chip.unpaid small{color:var(--red)}.month-chip.on.unpaid small{color:inherit}.total-preview{background:color-mix(in srgb, var(--violet) 14%, transparent);border:1px solid color-mix(in srgb, var(--violet) 30%, transparent);border-radius:18px;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;display:flex}.total-preview b{font-family:var(--font-display);font-size:24px}.login-page{grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.login-art{flex-direction:column;justify-content:space-between;padding:clamp(28px,5vw,64px);display:flex;position:relative;overflow:hidden}.login-art h1{letter-spacing:-.045em;font-size:clamp(38px,5.5vw,76px);font-weight:700;line-height:.98}.login-art h1 .grad{background:var(--grad-hero);color:#0000;-webkit-background-clip:text;background-clip:text}.login-art h1 .lime{background:var(--grad-lime);color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=light] .login-art h1 .lime{background:var(--grad-violet);-webkit-background-clip:text;background-clip:text}.login-art .lead{color:var(--text-2);max-width:520px;margin-top:18px;font-size:clamp(15px,1.5vw,18px)}.floating-stickers{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.sticker{border:1px solid var(--border-strong);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:99px;padding:10px 16px;font-size:14px;font-weight:700;animation:5s ease-in-out infinite bob2}.sticker:nth-child(2){animation-delay:-1.2s}.sticker:nth-child(3){animation-delay:-2.4s}.sticker:nth-child(4){animation-delay:-3.6s}.login-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:620px;margin-top:34px;display:grid}.login-preview .mini-stat{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-panel{place-items:center;padding:clamp(20px,4vw,48px);display:grid}.login-card{border-radius:var(--radius-xl);width:100%;max-width:440px;padding:clamp(24px,3.5vw,38px)}.login-card h2{font-size:clamp(24px,3vw,30px)}.divider{color:var(--text-3);align-items:center;gap:12px;margin:18px 0;font-size:12.5px;font-weight:600;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.guest-btn{text-align:left;background:var(--surface);border:1.5px dashed var(--border-strong);width:100%;transition:all .3s var(--ease);border-radius:18px;align-items:center;gap:14px;padding:14px 16px;display:flex}.guest-btn:hover{border-style:solid;border-color:var(--pink);background:color-mix(in srgb, var(--pink) 8%, transparent);transform:translateY(-2px)}.guest-btn .ge{background:var(--grad-pink);border-radius:15px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:26px;display:grid}.guest-btn b{font-size:15px;display:block}.guest-btn small{color:var(--text-3);font-size:12.5px}.error-box{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red);border:1px solid color-mix(in srgb, var(--red) 30%, transparent);border-radius:14px;padding:12px 14px;font-size:13.5px;font-weight:600}.guest-banner{background:linear-gradient(90deg, color-mix(in srgb, var(--pink) 16%, transparent), color-mix(in srgb, var(--violet) 16%, transparent));border:1px solid color-mix(in srgb, var(--pink) 30%, transparent);border-radius:18px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.loader{place-items:center;gap:14px;min-height:60vh;display:grid}.spinner{border:4px solid var(--surface-2);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);border-radius:var(--radius-lg);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.tag-input{background:var(--input-bg);border:1.5px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;padding:8px;display:flex}.tag-input .badge button{opacity:.7;place-items:center;margin-left:2px;display:grid}.tag-input .badge button:hover{opacity:1;color:var(--red)}.tag-input input{background:0 0;border:0;outline:0;flex:1;min-width:120px;padding:6px;font-size:14px}.section-title{align-items:center;gap:10px;margin:6px 0 14px;display:flex}.section-title h3{font-size:18px}@media (width<=1280px){.hero-card{grid-column:span 12}.progress-card,.stat-card{grid-column:span 6}.span-8,.span-7{grid-column:span 12}.span-5,.span-4,.xl-span-6{grid-column:span 6}.xl-span-12{grid-column:span 12}}@media (width<=1024px){:root{--sidebar-w:84px}.sidebar{align-items:center;padding:18px 12px}.brand{padding:4px 0 18px}.brand-text,.nav-label,.nav-link .txt,.nav-link .nav-emoji,.user-chip .meta,.sidebar-foot .btn .txt{display:none}.nav-link{justify-content:center;width:56px;padding:13px}.nav-link:hover{transform:scale(1.06)}.user-chip{background:0 0;border:0;justify-content:center;padding:6px}.sidebar-foot .btn{width:56px;padding:0}.login-page{grid-template-columns:1fr}.login-art{padding-bottom:0}.login-preview{display:none}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){body{font-size:14.5px}.sidebar{display:none}.main{margin-left:0}.bottom-nav{display:flex}.content{padding-bottom:calc(110px + var(--safe-b))}.topbar{--topbar-h:64px}.topbar-brand{display:grid}.topbar-brand .brand-logo{border-radius:12px;width:38px;height:38px;font-size:19px}.progress-card,.stat-card,.span-6,.span-5,.span-4,.span-3,.xl-span-6{grid-column:span 12}.stat-card.half{grid-column:span 6}.stat-card.half .stat-icon{border-radius:12px;width:38px;height:38px;font-size:17px}.stat-card.half .value{font-size:18px}.stat-card.half .foot{display:none}.form-grid{grid-template-columns:1fr}.desktop-table{display:none}.mobile-cards{display:block}.toolbar .select{flex:calc(50% - 5px);min-width:0}.toolbar .btn{flex:auto}.modal-backdrop{place-items:end center;padding:0}.modal{max-width:100%;max-height:92dvh;animation:slideUp .4s var(--ease);border-radius:28px 28px 0 0}.modal-foot{padding-bottom:calc(18px + var(--safe-b))}.modal-foot .btn{flex:1}.toasts{top:auto;bottom:calc(100px + var(--safe-b));max-width:none;left:16px;right:16px}.hello{margin-bottom:16px}.hello .hello-actions{width:100%}.hello .hello-actions .btn{flex:1}.hide-mobile{display:none!important}.login-art h1{font-size:clamp(34px,10vw,52px)}.floating-stickers{margin-top:18px}.sticker{padding:8px 12px;font-size:12.5px}}@media (width<=420px){.hero-chip{flex-basis:100%}.mini-stats{grid-template-columns:1fr 1fr}.summary-strip{grid-template-columns:1fr 1fr;gap:8px}.bottom-nav{padding:6px;left:8px;right:8px}.bottom-nav a{padding:7px 2px;font-size:9.5px}.segmented button{padding:8px 10px;font-size:12.5px}.topbar-actions .icon-btn{width:38px;height:38px}.unpaid-item{flex-wrap:wrap}.unpaid-item .owed{text-align:left;align-items:baseline;gap:8px;width:100%;padding-left:52px;display:flex}}@media (width<=340px){.stat-card.half{grid-column:span 12}.bottom-nav a span{display:none}}@media (width>=1800px){body{font-size:16px}.content{max-width:1720px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
