:root{--primary:#494fdf;--primary-bright:#4f55f1;--primary-deep:#3a40c4;--on-primary:#fff;--ink:#191c1f;--body:#1f2226;--charcoal:#3a3d40;--mute:#505a63;--ash:#5c5e60;--stone:#8d969e;--faint:#c9c9cd;--on-dark:#fff;--on-dark-mute:#ffffffb8;--canvas-light:#fff;--canvas-dark:#000;--surface-soft:#f4f4f4;--surface-card:#fff;--surface-deep:#0a0a0a;--surface-elevated:#16181a;--hairline-light:#e2e2e7;--hairline-dark:#ffffff1f;--hairline-strong:#191c1f;--teal:#00a87e;--light-blue:#007bc2;--light-green:#428619;--green-text:#006400;--yellow:#b09000;--warning:#ec7e00;--pink:#e61e49;--danger:#e23b4a;--deep-red:#8b0000;--brown:#936d62;--r-sm:8px;--r-md:12px;--r-lg:20px;--r-xl:28px;--r-full:9999px;--display:"Manrope",system-ui,sans-serif;--text:"Inter",system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--canvas-dark);font-family:var(--text);color:var(--ink);letter-spacing:.24px;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;background:0 0;border:0}input{font:inherit;color:inherit;letter-spacing:inherit}:root{--safe-bottom:max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px))}#root{height:100%}.device{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.app{background:var(--surface-soft);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}html.tg .app{height:var(--tg-viewport-stable-height,100%);max-width:640px;margin:0 auto}html.tg .device{align-items:flex-start}@media (min-width:520px){html.no-tg .device{padding:24px}html.no-tg .app{border:10px solid var(--surface-elevated);border-radius:44px;width:390px;height:min(844px,100vh - 48px)}}.bar{background:var(--canvas-light);border-bottom:1px solid var(--hairline-light);z-index:2;flex:0 0 56px;grid-template-columns:96px 1fr 96px;align-items:center;padding:0 8px;display:grid}.bar.dark{background:var(--canvas-dark);color:var(--on-dark);border-bottom-color:var(--canvas-dark)}.bar .back{height:44px;color:var(--light-blue);justify-self:start;padding:0 8px;font-size:16px;font-weight:600}.bar.dark .back{color:var(--on-dark)}.bar .t{text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.bar .t small{color:var(--stone);letter-spacing:0;font-size:12px;font-weight:400;line-height:1.2;display:block}.bar.dark .t small{color:var(--on-dark-mute)}.bar .dev-tag{color:var(--stone);border:1px solid var(--hairline-light);border-radius:var(--r-full);letter-spacing:.4px;text-transform:uppercase;justify-self:end;margin-right:8px;padding:2px 8px;font-size:11px;font-weight:600}.bar.dark .dev-tag{border-color:var(--hairline-dark);color:var(--on-dark-mute)}main{-webkit-overflow-scrolling:touch;flex:1;position:relative;overflow:hidden auto}.screen{flex-direction:column;min-height:100%;display:flex}.screen.in-right{animation:.28s cubic-bezier(.2,.8,.2,1) inR}.screen.in-left{animation:.28s cubic-bezier(.2,.8,.2,1) inL}@keyframes inR{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes inL{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:none}}.footer{padding:12px 16px calc(12px + var(--safe-bottom));background:var(--canvas-light);border-top:1px solid var(--hairline-light);flex:none}.footer:empty{display:none}.hero{background:var(--canvas-dark);color:var(--on-dark);padding:20px 16px 28px}.band{background:var(--canvas-light);padding:24px 16px}.band.soft{background:var(--surface-soft)}.band+.band{border-top:1px solid var(--hairline-light)}.grow{flex:1}.eyebrow{color:var(--on-dark-mute);letter-spacing:.24px;font-size:13px}.light .eyebrow,.band .eyebrow{color:var(--stone)}.h-display{font-family:var(--display);letter-spacing:-.8px;font-size:34px;font-weight:600;line-height:1.05}.h-lg{font-family:var(--display);letter-spacing:-.5px;font-size:28px;font-weight:600;line-height:1.1}.h-md{font-family:var(--display);letter-spacing:-.2px;font-size:20px;font-weight:600;line-height:1.3}.money-xl{font-family:var(--display);letter-spacing:-1.6px;font-variant-numeric:tabular-nums;font-size:48px;font-weight:600;line-height:1}.money{font-family:var(--display);letter-spacing:-.2px;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.cap{color:var(--stone);letter-spacing:0;font-size:13px;line-height:1.4}.pos{color:var(--green-text)}.neg{color:var(--danger)}.hero .pos{color:#3ddc97}.hero .neg{color:#ff6b78}.section-h{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.link{color:var(--light-blue);font-size:14px;font-weight:600}.btn{border-radius:var(--r-full);white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:48px;padding:0 28px;font-size:16px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn.block{width:100%}.btn-primary{background:var(--canvas-light);color:var(--canvas-dark)}.btn-primary:active{background:var(--faint)}.btn-dark{background:var(--canvas-dark);color:var(--on-dark)}.btn-dark:active{background:var(--charcoal)}.btn-soft{background:var(--surface-soft);color:var(--ink)}.btn-outline{background:var(--canvas-light);color:var(--ink);border:1px solid var(--hairline-strong)}.btn-outline-dark{color:var(--on-dark);border:1px solid var(--on-dark);background:0 0}.btn-danger{background:var(--surface-soft);color:var(--danger)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-sm{height:36px;padding:0 16px;font-size:14px}.pill-row{scrollbar-width:none;gap:8px;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.pill-row::-webkit-scrollbar{display:none}.pill{border-radius:var(--r-full);background:var(--surface-elevated);height:40px;color:var(--on-dark);flex:none;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.chip{border-radius:var(--r-full);background:var(--surface-soft);height:40px;color:var(--ink);border:1px solid #0000;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.chip.on{background:var(--primary);color:var(--on-primary)}.band.soft .chip{background:var(--canvas-light)}.band.soft .chip.on{background:var(--primary)}.card{background:var(--surface-card);border:1px solid var(--hairline-light);border-radius:var(--r-lg);padding:20px}.trip-card{text-align:left;width:100%;margin-bottom:12px;display:block}.trip-card:active{background:var(--surface-soft)}.trip-card .row1{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.trip-card .row2{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.badge{border-radius:var(--r-full);background:var(--surface-soft);height:24px;color:var(--ink);letter-spacing:0;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.dark{background:var(--surface-elevated);color:var(--on-dark)}.badge.brand{background:var(--primary);color:var(--on-primary)}.list{flex-direction:column;display:flex}.row{text-align:left;border-bottom:1px solid var(--hairline-light);align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.row:last-child{border-bottom:0}.row .mid{flex:1;min-width:0}.row .ttl{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.row .sub{color:var(--stone);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.row .end{text-align:right}button.row:active{background:var(--surface-soft)}.date-h{color:var(--stone);text-transform:uppercase;letter-spacing:.6px;margin:20px 0 4px;font-size:13px;font-weight:600}.date-h:first-child{margin-top:0}.cat{border-radius:50%;flex:0 0 44px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.ava{color:#fff;letter-spacing:0;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:grid}.ava.sm{width:28px;height:28px;font-size:12px}.ava-stack{display:flex}.ava-stack .ava{border:2px solid var(--canvas-light);margin-left:-8px}.ava-stack .ava:first-child{margin-left:0}.hero .ava-stack .ava{border-color:var(--canvas-dark)}.amount-wrap{justify-content:center;align-items:baseline;gap:6px;padding:12px 0 4px;display:flex}.amount-input{text-align:right;width:100%;max-width:260px;font-family:var(--display);letter-spacing:-1.6px;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;font-size:52px;font-weight:600}.amount-input::placeholder{color:var(--faint)}.amount-cur{font-family:var(--display);color:var(--stone);font-size:36px;font-weight:600}.field{border:1px solid var(--hairline-light);border-radius:var(--r-md);background:var(--canvas-light);outline:0;width:100%;height:56px;padding:0 16px;display:block}.field:focus{border-color:var(--hairline-strong)}.label{color:var(--mute);letter-spacing:.24px;justify-content:space-between;align-items:center;margin:24px 0 10px;font-size:13px;font-weight:600;display:flex}.label:first-child{margin-top:0}.label .acts{gap:12px;display:flex}.people{grid-template-columns:repeat(4,1fr);gap:12px 8px;display:grid}.person{letter-spacing:0;color:var(--ink);flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex;position:relative}.person .ava{width:52px;height:52px;font-size:18px;transition:opacity .15s,transform .15s}.person.off .ava{opacity:.25}.person.off span{color:var(--stone)}.person .tick{background:var(--primary);color:#fff;border:2px solid var(--canvas-light);border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:grid;position:absolute;top:-2px;right:calc(50% - 30px)}.person.off .tick{display:none}.person.payer .ava{outline:3px solid var(--primary);outline-offset:2px}.person span{white-space:nowrap;text-overflow:ellipsis;max-width:72px;overflow:hidden}.hint{background:var(--surface-soft);border-radius:var(--r-md);justify-content:space-between;margin-top:12px;padding:12px 16px;font-size:14px;display:flex}.receipt{border:1px dashed var(--faint);border-radius:var(--r-md);width:100%;height:64px;color:var(--mute);align-items:center;gap:12px;padding:0 16px;font-size:14px;font-weight:600;display:flex}.receipt.has{border-style:solid;border-color:var(--hairline-light);color:var(--ink)}.thumb{border:1px solid var(--hairline-light);background:repeating-linear-gradient(0deg,#e2e2e7 0 3px,#fff 3px 7px);border-radius:6px;width:40px;height:44px}.stack{border-radius:var(--r-full);gap:2px;height:12px;margin:4px 0 16px;display:flex;overflow:hidden}.stack div{height:100%}.debt{border-bottom:1px solid var(--hairline-light);padding:14px 0}.debt:first-child{padding-top:0}.debt:last-child{border-bottom:0;padding-bottom:0}.debt .head{align-items:center;gap:12px;display:flex}.debt .head .who{flex:1;min-width:0}.debt .head .who b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.debt .head .money{font-size:18px}.debt .to{border-left:2px solid var(--hairline-light);flex-direction:column;gap:6px;margin:8px 0 0 19px;padding-left:21px;display:flex}.debt .to-row{align-items:center;gap:10px;min-height:32px;font-size:15px;display:flex}.debt .to-row span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.debt .to-row .money{color:var(--charcoal);flex:none;font-size:15px}.settled{text-align:center;border-radius:var(--r-lg);background:var(--surface-soft);padding:20px;font-weight:600}.overlay{z-index:10;background:#00000080;align-items:flex-end;animation:.2s fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.sheet{background:var(--canvas-light);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-height:88%;padding:8px 16px calc(20px + var(--safe-bottom));animation:.25s cubic-bezier(.2,.8,.2,1) up;overflow-y:auto}.sheet .grab{background:var(--faint);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.sheet h3{font-family:var(--display);letter-spacing:-.3px;margin-bottom:6px;font-size:24px;font-weight:600}.sheet .actions{flex-direction:column;gap:8px;margin-top:24px;display:flex}.linkbox{border:1px solid var(--hairline-light);border-radius:var(--r-md);align-items:center;gap:8px;height:56px;margin-top:16px;padding:0 8px 0 16px;font-size:14px;display:flex}.linkbox code{text-overflow:ellipsis;white-space:nowrap;font-family:var(--text);flex:1;overflow:hidden}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{left:50%;bottom:calc(100px + var(--safe-bottom));background:var(--canvas-dark);color:var(--on-dark);opacity:0;pointer-events:none;z-index:20;text-align:center;border-radius:24px;width:max-content;max-width:calc(100% - 32px);padding:12px 20px;font-size:14px;font-weight:600;transition:all .25s;position:absolute;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.empty{text-align:center;color:var(--stone);padding:40px 16px}.empty .big{margin-bottom:8px;font-size:40px}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.row,.chip,.pill,.person,.receipt,.trip-card{-webkit-tap-highlight-color:transparent}.person{min-height:48px;padding:0}.chip,.pill{min-height:40px}.pill-row .chip,.pill-row .pill{justify-content:center;min-width:48px}.btn-sm{min-width:48px}.hit{position:relative}.hit:after{content:"";position:absolute;top:-6px;bottom:-6px;left:-4px;right:-4px}.link{min-height:32px}.hero button.members-btn{min-height:48px;color:inherit;align-items:center;gap:10px;display:flex}.hero .members-btn .cap{color:var(--on-dark-mute)}.field.err{border-color:var(--danger)}.sheet .field+.cap{margin-top:6px}.cur-input{text-transform:uppercase;text-align:center;letter-spacing:1px;width:100px;font-weight:600}.file-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.thumb.img{object-fit:cover;background:0 0}.receipt-full{object-fit:contain;border-radius:var(--r-md);background:var(--surface-soft);width:100%;max-height:70vh;margin-top:12px;display:block}.receipt-box{place-items:center;min-height:200px;margin-top:12px;display:grid}.archive-row{padding:20px 16px calc(20px + var(--safe-bottom));justify-content:center;display:flex}.screen-err{flex:1;place-items:center;display:grid}.sk{background:linear-gradient(90deg,#ececee 0%,#f6f6f7 50%,#ececee 100%) 0 0/200% 100%;animation:1.2s ease-in-out infinite sk}.sk.dark{background:linear-gradient(90deg,#16181a 0%,#26292c 50%,#16181a 100%) 0 0/200% 100%}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}.spinner{vertical-align:middle;border:2px solid;border-right-color:#0000;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.boot{background:var(--canvas-dark);color:var(--on-dark);flex:1;place-items:center;display:grid}.boot .logo{font-family:var(--display);letter-spacing:-.5px;text-align:center;font-size:28px;font-weight:700}.boot .spinner{color:var(--on-dark-mute);margin-top:20px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.sk{animation:none}.spinner{animation:1.5s linear infinite spin!important}}.amount-input:focus-visible{outline:none}.field:focus-visible{outline:none}
