:root{--bg:#fff5f9;--ink:#4a2545;--ink-soft:#8d6a87;--pink:#ff6fae;--pink-deep:#e84f93;--pink-soft:#ffe1ee;--lav:#cdbdff;--lav-soft:#efe9ff;--mint:#bff0da;--mint-ink:#1f7a57;--butter:#fff0b5;--butter-ink:#8a6500;--peach:#ffd2bd;--peach-ink:#a8481c;--white:#fff;--shadow:0 10px 28px -12px #e84f9359;--display:"Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--text:"Nunito", ui-rounded, system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg)}body{font-family:var(--text);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-weight:500}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3{font-family:var(--display);margin:0}p{margin:0}.app,.login{max-width:480px;min-height:100dvh;margin:0 auto;position:relative;overflow-x:clip}main{padding:calc(env(safe-area-inset-top) + 18px) 16px calc(env(safe-area-inset-bottom) + 120px);flex-direction:column;gap:18px;display:flex;position:relative}.blob{filter:blur(50px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.blob-a{background:var(--lav);width:260px;height:260px;top:-80px;right:-90px}.blob-b{background:var(--peach);opacity:.4;width:220px;height:220px;top:300px;left:-120px}.splash{place-items:center;min-height:100dvh;font-size:56px;animation:1.2s ease-in-out infinite bob;display:grid}@keyframes bob{50%{transform:translateY(-8px)rotate(-6deg)}}.hero{color:#fff;background:linear-gradient(135deg,#ff86bd 0%,#f78fd0 45%,#b9a2ff 100%);border-radius:32px;padding:22px 20px 18px;position:relative;overflow:hidden;box-shadow:0 18px 36px -16px #c85abe99}.hero:before,.hero:after{content:"";background:#ffffff2e;border-radius:50%;position:absolute}.hero:before{width:150px;height:150px;top:-50px;right:-40px}.hero:after{width:90px;height:90px;bottom:-50px;right:60px}.hello{opacity:.95;font-weight:800}.hero h1{text-wrap:balance;max-width:12em;margin:4px 0 16px;font-size:28px;line-height:1.12}.jar{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff3d;border-radius:22px;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.jar>span{font-size:26px}.jar b{font-family:var(--display);font-size:21px;line-height:1.1;display:block}.jar small{opacity:.92;font-size:12.5px;font-weight:700}.jar em{color:var(--pink-deep);white-space:nowrap;background:#fff;border-radius:999px;margin-left:auto;padding:6px 11px;font-size:12.5px;font-style:normal;font-weight:800}.page-head h1{font-size:27px}.page-head p{color:var(--ink-soft);margin-top:2px;font-weight:700}section{flex-direction:column;gap:10px;display:flex}section>h2{padding-left:6px;font-size:18px}.card{background:var(--white);box-shadow:var(--shadow);border-radius:26px}.purchase{text-align:left;align-items:center;gap:12px;width:100%;padding:13px 14px;transition:transform .12s;display:flex}.purchase:active{transform:scale(.97)}.bubble{background:var(--lav-soft);border-radius:50%;flex:none;place-items:center;width:50px;height:50px;font-size:25px;display:grid}.bubble.big{width:76px;height:76px;font-size:38px}.purchase .body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.purchase strong{font-family:var(--display);font-size:17px;font-weight:600}.purchase small{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.purchase .by{font-size:12.5px}.purchase .what{gap:5px;display:flex;overflow:visible}.purchase .what span{text-overflow:ellipsis;min-width:0;overflow:hidden}.purchase .what i{flex:none;font-style:normal}.purchase .right{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.purchase .right b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:16.5px;font-weight:600}.pill{white-space:nowrap;background:var(--mint);color:var(--mint-ink);border-radius:999px;padding:5px 10px;font-size:12px;font-style:normal;font-weight:800}.tone-soon .pill{background:var(--butter);color:var(--butter-ink)}.tone-warm .pill{background:var(--peach);color:var(--peach-ink)}.tone-hot .pill{background:var(--pink);color:#fff;animation:1.6s ease-in-out infinite pulse}.tone-missed .pill{color:var(--ink-soft);background:#eee6ec}.tone-done .pill{background:var(--lav-soft);color:#6a4fc4}.tone-hot .bubble{background:var(--pink-soft)}.tone-warm .bubble{background:#ffeadf}.tone-soon .bubble{background:#fff6d2}.tone-calm .bubble{background:#e2f8ee}.tone-missed,.tone-done{opacity:.86}@keyframes pulse{50%{transform:scale(1.07)}}.banner{text-align:left;background:var(--lav-soft);border-radius:20px;width:100%;padding:12px 14px;font-size:14px;font-weight:800}.banner.warn{background:var(--butter);color:var(--butter-ink)}.fold{font-family:var(--display);align-items:center;gap:8px;width:100%;padding:4px 6px;font-size:18px;font-weight:600;display:flex}.fold span{background:var(--lav-soft);color:#6a4fc4;border-radius:999px;padding:2px 9px;font-size:13px}.fold i{font-style:normal;font-family:var(--text);color:var(--pink-deep);margin-left:auto;font-size:13px;font-weight:800}.empty{text-align:center;background:var(--white);box-shadow:var(--shadow);border-radius:30px;padding:34px 20px}.empty div{font-size:52px;animation:2.4s ease-in-out infinite bob}.empty strong{font-family:var(--display);font-size:19px}.empty p,.quiet{color:var(--ink-soft);font-size:14px;font-weight:700}.tabs{left:50%;bottom:calc(env(safe-area-inset-bottom) + 14px);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;background:#ffffffeb;border-radius:999px;grid-template-columns:1fr 1fr 64px 1fr;align-items:center;width:min(448px,100vw - 32px);padding:8px 10px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 14px 34px -10px #e84f9373}.tabs button{color:var(--ink-soft);border-radius:999px;flex-direction:column;align-items:center;gap:1px;padding:6px 0;font-size:11.5px;font-weight:800;display:flex}.tabs button span{filter:grayscale(.6);opacity:.75;font-size:21px;transition:transform .15s}.tabs button.on{color:var(--pink-deep);background:var(--pink-soft)}.tabs button.on span{filter:none;opacity:1;transform:scale(1.12)}.tabs .add{color:#fff;width:56px;height:56px;font-family:var(--display);background:linear-gradient(135deg,#ff86bd,#b9a2ff);border-radius:50%;order:0;grid-area:1/3;justify-content:center;justify-self:center;margin-top:-22px;font-size:32px;line-height:1;box-shadow:0 8px 18px -6px #c85abecc}.tabs button:nth-child(4){grid-column:4}.scrim{z-index:10;background:#4a254561;justify-content:center;align-items:flex-end;animation:.18s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:480px;max-height:92dvh;padding:10px 18px calc(env(safe-area-inset-bottom) + 22px);border-radius:34px 34px 0 0;flex-direction:column;gap:14px;animation:.26s cubic-bezier(.2,.9,.3,1.1) rise;display:flex;overflow-y:auto}.grab{background:#ecd3e2;border-radius:99px;flex:none;width:44px;height:5px;margin:0 auto 2px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(40%)}}.sheet-title{font-size:23px}.detail-top{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.detail-top h2{margin-top:6px;font-size:23px}.amount{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:36px;font-weight:700;line-height:1.1}.detail-top .pill{margin-top:4px;padding:6px 14px;font-size:13.5px}.facts{background:var(--white);box-shadow:var(--shadow);border-radius:22px;margin:0;padding:4px 16px}.facts div{border-bottom:1.5px dashed #f3dcea;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.facts div:last-child{border:0}.facts dt{color:var(--ink-soft);font-size:13.5px;font-weight:800}.facts dd{text-align:right;margin:0;font-weight:800}.items{background:var(--white);box-shadow:var(--shadow);border-radius:22px;margin:0;padding:4px 16px;list-style:none}.items li{border-bottom:1.5px dashed #f3dcea;justify-content:space-between;gap:12px;padding:10px 0;font-size:14.5px;font-weight:700;display:flex}.items li:last-child{border:0}.items em{white-space:nowrap;font-variant-numeric:tabular-nums;font-style:normal;font-weight:800}.note{background:var(--lav-soft);border-radius:18px;padding:10px 14px;font-size:13.5px;font-weight:700}.note.butter{background:var(--butter);color:var(--butter-ink)}.note.mint{background:var(--mint);color:var(--mint-ink)}.note a{color:inherit;font-weight:800}.actions{flex-direction:column;gap:9px;display:flex}.btn{width:100%;font-family:var(--display);border-radius:999px;padding:15px 18px;font-size:17px;font-weight:600;transition:transform .12s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5}.btn.primary{color:#fff;background:linear-gradient(135deg,#ff7fb8,#f06aa9);box-shadow:0 10px 20px -10px #e84f93e6}.btn.soft{background:var(--pink-soft);color:var(--pink-deep)}.btn.ghost{background:var(--white);color:var(--ink);box-shadow:inset 0 0 0 2px #f3dcea}.btn-row{gap:8px;display:flex}.mini{background:var(--pink);color:#fff;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:800}.link{color:var(--pink-deep);text-underline-offset:2px;font-size:13.5px;font-weight:800;text-decoration:underline}.link.danger{color:var(--ink-soft);align-self:center;padding:6px}.link.center{align-self:center;padding:8px}.edit-date{align-items:center;gap:6px;display:flex}.snap{text-align:center;cursor:pointer;display:block;position:relative}.snap input{opacity:0;cursor:pointer;border:0;min-height:0;padding:0;position:absolute;inset:0}.snap.busy{opacity:.75;animation:1.4s ease-in-out infinite pulse}.purchase .ask{color:var(--pink-deep)}.ask-box{background:var(--white);text-align:center;border:2px dashed #f6b9d6;border-radius:22px;flex-direction:column;gap:8px;padding:14px;display:flex}.ask-box strong{font-family:var(--display);font-size:17px;font-weight:600}.ask-box p{color:var(--ink-soft);font-size:13.5px;font-weight:700}.sources{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:-4px;display:flex}.sources span{background:var(--white);border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:800;box-shadow:inset 0 0 0 2px #f3dcea}.sources .wait{color:var(--ink-soft)}.merge{align-items:center;gap:10px;display:flex}.merge span{flex:1}.merge .mini{flex:none}.receipt-photo{width:100%;box-shadow:var(--shadow);border-radius:18px}.or{text-align:center;color:var(--ink-soft);font-size:13px;font-weight:800}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--ink-soft);flex-direction:column;flex:1;gap:5px;min-width:0;font-size:13.5px;font-weight:800;display:flex}.form label small{font-weight:700}.row{gap:10px;display:flex}input{background:var(--white);width:100%;min-width:0;color:var(--ink);appearance:none;border:2px solid #f3dcea;border-radius:18px;outline:none;min-height:50px;padding:12px 14px;font-size:16px;font-weight:700}input:focus{border-color:var(--pink)}.edit-date input{border-radius:12px;min-height:0;padding:6px 10px;font-size:14px}.error{color:#c2285f;font-size:13.5px;font-weight:800}.sub{margin-top:6px;font-size:16px}.charges,.rows,.stores{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.charges li,.rows li{border-bottom:1.5px dashed #f3dcea;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px;display:flex}.charges li:last-child,.rows li:last-child{border:0}.charges span,.rows span{flex-direction:column;min-width:0;display:flex}.charges strong,.rows strong{white-space:nowrap;text-overflow:ellipsis;font-weight:800;overflow:hidden}.charges small,.rows small{color:var(--ink-soft);font-size:12.5px;font-weight:700}.cal{padding:14px 12px 12px}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-nav strong{font-family:var(--display);font-size:18px;font-weight:600}.cal-nav button{background:var(--pink-soft);width:38px;height:38px;color:var(--pink-deep);border-radius:50%;font-size:22px;font-weight:800;line-height:1}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-grid.head span{text-align:center;color:var(--ink-soft);padding:4px 0;font-size:11.5px;font-weight:800}.cal-grid button{aspect-ratio:1;border-radius:50%;place-items:center;font-size:14.5px;font-weight:800;display:grid;position:relative}.cal-grid button.has{background:var(--pink-soft);color:var(--pink-deep)}.cal-grid button.today{box-shadow:inset 0 0 0 2px var(--lav)}.cal-grid button.picked{background:var(--pink);color:#fff}.cal-grid button i{min-width:18px;height:18px;color:var(--pink-deep);background:#fff;border-radius:999px;place-items:center;font-size:12px;font-style:normal;font-weight:800;display:grid;position:absolute;top:-4px;right:-2px;box-shadow:0 2px 6px #e84f9359}.block{flex-direction:column;gap:10px;padding:16px;display:flex}.block h3{font-size:18px;font-weight:600}.block p{font-size:14.5px;font-weight:700}.copy{background:var(--lav-soft);word-break:break-all;text-align:left;border-radius:16px;padding:11px 14px;font-size:14px;font-weight:800}.stores{grid-template-columns:1fr;gap:2px;display:grid}.stores li{align-items:center;gap:8px;padding:6px 0;font-weight:800;display:flex}.stores em{color:var(--ink-soft);margin-left:auto;font-size:13.5px;font-style:normal}.login{place-items:center;padding:24px;display:grid}.login-card{background:var(--white);text-align:center;width:100%;box-shadow:var(--shadow);border-radius:36px;flex-direction:column;gap:10px;padding:32px 24px 26px;display:flex;position:relative}.login-bow{font-size:60px;animation:2.4s ease-in-out infinite bob}.login-card h1{background:linear-gradient(135deg,#ff6fae,#9d85ff);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:34px}.login-card p{color:var(--ink-soft);font-weight:700}.login-card form{flex-direction:column;gap:10px;margin-top:8px;display:flex}.login-card input{text-align:center}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 108px);background:var(--ink);color:#fff;z-index:20;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100vw - 32px);padding:11px 18px;font-size:14px;font-weight:800;animation:.25s cubic-bezier(.2,.9,.3,1.4) pop;position:fixed;overflow:hidden;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.8)}}.hearts{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.hearts i{font-size:30px;font-style:normal;animation:1.5s ease-out forwards float;position:absolute;bottom:-40px}@keyframes float{to{opacity:0;transform:translateY(-85vh)rotate(25deg)scale(1.3)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
