@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D_Q6m-an.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-OnFqUBEL.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-5PZORFv8.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f4f1ea;--bg-deep: #ebe6da;--ink: #16123a;--ink-soft: #2a2360;--muted: #6b668a;--line: #e4dfd3;--card: #fff;--violet: #5b3df5;--lilac: #e4defd;--red: #d93a26;--redsoft: #ffe1dc;--green: #0f8a5f;--greensoft: #d4f5e7;--unsure: #a35f00;--amber: #e09a12;--ease: cubic-bezier(.2, .7, .2, 1);--spring: cubic-bezier(.34, 1.56, .64, 1);--shadow-1: 0 1px 2px rgba(22, 18, 58, .04), 0 3px 10px rgba(22, 18, 58, .03);--shadow-2: 0 2px 4px rgba(22, 18, 58, .05), 0 14px 34px rgba(22, 18, 58, .1);--shadow-pop: 0 4px 10px rgba(22, 18, 58, .08), 0 24px 60px rgba(22, 18, 58, .2);--ring: 0 0 0 4px rgba(91, 61, 245, .16);color-scheme:light;font-family:Space Grotesk Variable,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scrollbar-color:#cfc8b8 transparent}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}body{margin:0;background:var(--bg);font-size:15px;line-height:1.5;overflow-x:hidden}button,input,select{font:inherit;color:inherit;touch-action:manipulation}button{-webkit-user-select:none;user-select:none}h1{font-size:32px;font-weight:700;letter-spacing:-.03em;margin:0 0 6px}h2{font-size:16px;font-weight:700;margin:0}p{margin:0}::selection{background:var(--lilac);color:var(--ink)}::placeholder{color:#a9a4bd;opacity:1}:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.icon{flex-shrink:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}@keyframes pulse{50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.6);opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes tip-in{0%{opacity:0;transform:translateY(4px) scale(.96)}}@keyframes tip-in-below{0%{opacity:0;transform:translateY(-4px) scale(.96)}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes row-in{0%{background-color:var(--lilac)}}@keyframes art-in{0%{opacity:0;transform:translateY(28px) rotate(0)}}main{animation:rise .32s var(--ease) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.page{max-width:1240px;margin:0 auto;padding:0 40px 96px}.muted{color:var(--muted)}.neg,.negative{color:var(--red)}.pos,.positive{color:var(--green)}.num{text-align:right;font-variant-numeric:tabular-nums}.empty,.none{color:var(--muted);padding:8px 0 4px}.link{border:0;background:none;padding:0;cursor:pointer;color:var(--violet);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#5b3df559;font-size:inherit;transition:text-decoration-color .15s,color .15s}.link:hover{text-decoration-color:currentColor}.danger-link{color:var(--muted);text-decoration-color:#6b668a59}.danger-link:hover{color:var(--red)}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money-dec{font-size:.62em;font-weight:600;letter-spacing:-.01em;margin-left:.04em;opacity:.78}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:99px;padding:10px 18px;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .15s var(--ease),background-color .2s,box-shadow .2s,opacity .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.big{padding:15px 24px;font-size:16px}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover:not(:disabled){background:var(--ink-soft);box-shadow:0 6px 18px #16123a38}.btn.danger{background:var(--red);color:#fff}.btn.danger:hover{background:#c22f1c;box-shadow:0 6px 18px #d93a2647}.btn.ghost{background:var(--bg)}.btn.ghost:hover{background:var(--bg-deep)}.btn.outline{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.outline:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--ink)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.pill-btn{border:0;background:var(--lilac);color:var(--violet);font-weight:600;font-size:14px;padding:7px 14px;border-radius:99px;cursor:pointer;transition:transform .15s var(--ease),background-color .2s}.pill-btn:hover{background:#d6cdfc}.pill-btn:active{transform:scale(.96)}.tip{position:fixed;z-index:100;display:flex;flex-direction:column;gap:1px;max-width:min(300px,calc(100vw - 16px));padding:8px 12px;border-radius:12px;background:var(--ink);color:#fff;font-size:13px;font-weight:600;line-height:1.35;letter-spacing:-.005em;box-shadow:var(--shadow-pop);pointer-events:none;transform-origin:var(--arrow, 50%) 100%}.tip.show{animation:tip-in .16s var(--ease)}.tip.below{transform-origin:var(--arrow, 50%) 0}.tip.below.show{animation-name:tip-in-below}.tip:after{content:"";position:absolute;left:var(--arrow, 50%);bottom:-4px;width:10px;height:10px;margin-left:-5px;background:var(--ink);border-radius:2px;transform:rotate(45deg)}.tip.below:after{bottom:auto;top:-4px}.tip-sub{font-weight:400;font-size:12.5px;color:#ffffffb8}.toasts{position:fixed;z-index:90;left:50%;bottom:28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 24px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;max-width:100%;background:var(--ink);color:#fff;padding:11px 12px 11px 18px;border-radius:18px;box-shadow:var(--shadow-pop);font-size:14.5px;font-weight:500;animation:toast-in .32s var(--spring)}.toast:not(:has(.toast-action)){padding-right:18px}.toast.leaving{animation:toast-out .2s ease forwards}.toast.error .icon{color:#ff9d8f}.toast-text{min-width:0}.toast-action{flex-shrink:0;border:0;background:#ffffff24;color:#fff;font-weight:700;font-size:14px;padding:7px 13px;border-radius:11px;cursor:pointer;transition:background-color .15s}.toast-action:hover{background:#ffffff42}.dialog{border:0;padding:0;background:transparent;color:inherit;width:min(440px,calc(100vw - 32px));max-width:none;margin:auto;overflow:visible}.dialog::backdrop{background:#16123a6b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fade .2s ease}.dialog-body{background:var(--card);border-radius:28px;padding:28px;box-shadow:var(--shadow-pop);animation:pop-in .28s var(--spring)}.dialog-body h2{font-size:22px;letter-spacing:-.025em;line-height:1.2}.dialog-body p{margin-top:10px;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.splash{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;text-align:center;font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--ink)}.splash-logo{display:flex;flex-direction:column;align-items:center;gap:14px;animation:pulse 1.4s ease-in-out infinite}.login{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;max-width:1180px;margin:0 auto;padding:48px 40px;animation:rise .4s var(--ease) both}.login-main{max-width:480px}.login .logo{cursor:default}.login .headline{font-size:clamp(36px,4.6vw,60px);margin-top:32px}.login-form{display:flex;flex-direction:column;gap:14px;max-width:400px;margin-top:32px}.login-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.login-form input{width:100%;border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--card);border-radius:14px;padding:13px 14px;font-size:16px;font-weight:400;transition:box-shadow .15s}.login-form input:hover{box-shadow:inset 0 0 0 1.5px #cfc8b8}.login-form input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--violet),var(--ring)}.password{position:relative;display:block}.password input{padding-right:48px}.password-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;background:none;border-radius:10px;color:var(--muted);cursor:pointer;transition:background-color .15s,color .15s}.password-eye:hover{background:var(--bg);color:var(--ink)}.login-form .btn{margin-top:4px}.login-links{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px}.login-or{display:flex;align-items:center;gap:12px;margin:8px 0 0;color:var(--muted);font-size:13px}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--line)}.login-msg{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:12px;font-size:14px;font-weight:500;animation:rise .25s var(--ease)}.login-msg .icon{margin-top:2px}.login-msg.error{background:var(--redsoft);color:#a82a19}.login-msg.ok{background:var(--greensoft);color:#0a6a48}.login-art{position:relative;height:540px}.art-card{position:absolute;display:flex;flex-direction:column;justify-content:space-between;gap:10px;border-radius:28px;padding:22px 24px;font-size:14px;font-weight:500;box-shadow:var(--shadow-2);animation:art-in .8s var(--ease) both}.art-card strong{font-size:46px;font-weight:700;letter-spacing:-.04em;line-height:1}.art-card small{font-size:.52em;font-weight:600;opacity:.8}.art-reserved{left:2%;top:4%;width:58%;height:290px;background:var(--lilac);transform:rotate(-4deg)}.art-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;align-content:flex-start}.art-chips i{font-style:normal;background:#ffffffb3;border-radius:99px;padding:4px 12px}.art-free{right:0;top:27%;width:50%;height:196px;background:var(--green);color:#fff;transform:rotate(5deg);animation-delay:.1s}.art-mission{left:9%;bottom:3%;width:56%;background:var(--violet);color:#fff;transform:rotate(2deg);animation-delay:.2s}.art-mission span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.8}.art-mission b{font-size:21px;line-height:1.2;letter-spacing:-.02em}.art-cal{right:3%;bottom:0;width:42%;display:grid;grid-template-columns:repeat(7,1fr);gap:5px;padding:14px;background:var(--card);transform:rotate(-6deg);animation-delay:.3s}.art-cal i{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:var(--bg);font-style:normal;font-size:11px;font-weight:700}.art-cal i.held{background:var(--greensoft);color:var(--green)}.art-cal i.now{box-shadow:inset 0 0 0 2px var(--violet);background:var(--card)}.art-cal i.debit{background:var(--redsoft);color:var(--red)}.art-cal i.pay{background:var(--ink);color:#fff}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -40px;padding:14px 40px;background:#f4f1eadb;-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}.logo{display:inline-flex;align-items:center;gap:10px;border:0;background:none;padding:0;cursor:pointer;font-weight:700;font-size:18px;letter-spacing:-.02em}.logo-mark{transition:transform .35s var(--spring)}button.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}.header .nav{margin-left:auto}.nav{position:relative;display:flex;gap:4px;background:var(--card);border-radius:99px;padding:4px;box-shadow:var(--shadow-1)}.nav-pill{position:absolute;left:0;top:4px;bottom:4px;border-radius:99px;background:var(--ink);transition:transform .42s var(--ease),width .42s var(--ease)}.nav button{position:relative;z-index:1;border:0;background:none;padding:8px 16px;border-radius:99px;cursor:pointer;color:var(--muted);font-weight:500;white-space:nowrap;transition:color .2s}.nav button:hover{color:var(--ink)}.nav button.active{color:#fff}.nav .icon,.nav-short{display:none}.header-end{width:38px}.account{position:relative}.avatar{position:relative;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--lilac);color:var(--violet);font-weight:700;font-size:15px;cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s}.avatar:hover,.avatar[aria-expanded=true]{box-shadow:var(--ring)}.avatar:active{transform:scale(.94)}.sync-dot{display:block;width:11px;height:11px;border-radius:50%;background:var(--green);transition:background-color .3s}.avatar .sync-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid var(--bg);box-sizing:content-box;width:8px;height:8px}.sync-dot.saving{background:var(--violet);animation:pulse 1s ease-in-out infinite}.sync-dot.offline{background:var(--amber)}.sync-dot.error{background:var(--red)}.menu{position:absolute;right:0;top:calc(100% + 10px);z-index:40;min-width:250px;max-width:calc(100vw - 32px);background:var(--card);border-radius:20px;padding:8px;box-shadow:var(--shadow-pop);transform-origin:top right;animation:pop-in .2s var(--ease)}.menu-head{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.menu-email{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-sync{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.menu-sync .sync-dot{width:8px;height:8px}.menu-item{width:100%;display:flex;align-items:center;gap:10px;border:0;background:none;padding:10px 12px;border-radius:12px;font-weight:600;text-align:left;cursor:pointer;transition:background-color .15s}.menu-item:hover{background:var(--bg)}.hero{padding:20px 0 8px}.kicker{color:var(--violet);font-weight:600;font-size:15px}.kicker:first-letter{text-transform:uppercase}.countdown{display:flex;gap:4px;max-width:440px;margin-top:4px}.countdown i{position:relative;flex:1;height:20px}.countdown i:before{content:"";position:absolute;top:7px;right:0;bottom:7px;left:0;border-radius:99px;background:#ddd7c8;transition:inset .18s var(--ease),background-color .2s}.countdown i:hover:before{top:4px;right:0;bottom:4px;left:0}.countdown i.done:before{background:var(--ink)}.countdown i.now{flex:2.2}.countdown i.now:before{background:var(--violet)}.headline{font-size:clamp(36px,5.6vw,72px);line-height:1.02;letter-spacing:-.045em;font-weight:700;max-width:1000px;margin:6px 0 0;text-wrap:balance}.headline em{font-style:normal;color:var(--green);white-space:nowrap}.headline em.neg{color:var(--red)}.hero-sub{margin-top:16px;font-size:18px;color:var(--muted);text-wrap:pretty}.hero-sub strong{color:var(--ink)}.blank{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:12vh 0 8vh}.blank h1{font-size:clamp(32px,5vw,52px);letter-spacing:-.04em;line-height:1.05;margin:8px 0 0}.blank p{color:var(--muted);font-size:17px;max-width:480px}.blank .btn{margin-top:10px;padding:14px 24px}.dash{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:32px;margin-top:40px;align-items:start}.envelopes{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr auto;gap:12px;min-height:420px}.env{position:relative;overflow:hidden;border-radius:28px;padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-width:0}.env>*{position:relative}.env-head{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:500}.env-count{white-space:nowrap}.env-amount{font-size:clamp(36px,4.4vw,60px);font-weight:700;letter-spacing:-.04em;line-height:1}.reserved{background:var(--lilac);grid-row:1 / 3}.chips{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;flex:1}.chip{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;background:#ffffffb3;border-radius:99px;padding:4px 12px;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default;transition:background-color .15s,transform .15s var(--ease)}.chip:hover{background:#fff;transform:translateY(-1px)}.chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.chip-amount{font-weight:600}.chip small{color:var(--muted);font-size:12.5px}.unsure-chip{box-shadow:inset 0 0 0 1.5px #a35f0073}.env-empty{color:var(--muted)}.free{background:var(--green);color:#fff}.free.is-neg{background:var(--red)}.free:before,.mission:before{content:"";position:absolute;right:-70px;top:-70px;width:210px;height:210px;border-radius:50%;border:30px solid rgba(255,255,255,.09);pointer-events:none}.free .env-count{opacity:.88}.meal{background:var(--card);box-shadow:var(--shadow-1)}.meal .env-head{flex-direction:column;gap:2px}.meal .env-amount{font-size:clamp(30px,3vw,40px)}.side{display:flex;flex-direction:column;gap:12px;min-width:0}.missions{display:flex;flex-direction:column;gap:12px}.mission{position:relative;overflow:hidden;background:var(--violet);color:#fff;border-radius:24px;padding:22px 24px;box-shadow:0 14px 34px #5b3df542}.mission>*{position:relative}.mission.ok{background:var(--ink);box-shadow:var(--shadow-2);animation:rise .35s var(--ease)}.mission-k{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.82}.mission-t{font-size:24px;font-weight:700;line-height:1.2;letter-spacing:-.02em;margin-top:6px;text-wrap:balance}.mission-s{font-size:14px;opacity:.85;margin-top:8px}.mission-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;border:0;background:#fff;color:var(--violet);font-weight:700;padding:10px 18px;border-radius:99px;cursor:pointer;transition:transform .15s var(--ease),box-shadow .2s}.mission-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #16123a38}.mission-btn:active{transform:scale(.97)}.checks{background:var(--card);border-radius:24px;padding:6px 8px;box-shadow:var(--shadow-1)}.check-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border:0;background:none;padding:12px 14px;border-radius:16px;cursor:pointer;transition:background-color .15s}.check-row+.check-row{margin-top:2px}.check-row:hover{background:var(--bg)}.check-row .icon{color:var(--muted);transition:transform .2s var(--ease),color .2s}.check-row:hover .icon{transform:translate(3px);color:var(--ink)}.check-row strong{display:block;font-weight:600}.check-row small{display:block;color:var(--muted);font-size:13.5px}.label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}.accounts{display:grid;grid-template-columns:1fr;gap:10px}.acc{display:flex;flex-direction:column;text-align:left;border:0;background:var(--card);border-radius:22px;padding:18px 22px;cursor:pointer;box-shadow:var(--shadow-1);transition:transform .2s var(--ease),box-shadow .2s}.acc:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.acc:active{transform:scale(.985)}.acc-name{color:var(--muted);font-size:14px}.acc-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.acc-value{font-size:38px;font-weight:700;letter-spacing:-.04em;line-height:1.15}.acc-note{font-size:13.5px;color:var(--muted)}.spark{flex-shrink:0;margin-bottom:8px;color:var(--ink);overflow:visible}.spark-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.spark circle{fill:currentColor}.spark.over{color:var(--red)}.spark-limit{fill:none;stroke:var(--red);stroke-width:1;stroke-dasharray:2 3;opacity:.55}.block{margin-top:56px}.block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.title{font-size:26px;letter-spacing:-.03em}.switch{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);cursor:pointer;transition:color .15s}.switch:hover{color:var(--ink)}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;flex-shrink:0;width:38px;height:22px;margin:0;border-radius:99px;background:#d5cebf;cursor:pointer;transition:background-color .2s}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #16123a40;transition:transform .28s var(--spring)}.switch input:checked{background:var(--violet)}.switch input:checked:after{transform:translate(16px)}.cal-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:32px;align-items:start}.streak{display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:var(--bg);border-radius:99px;padding:6px 14px;font-size:13px;font-weight:600;white-space:nowrap}.streak.on{background:var(--green);color:#fff;animation:pop .35s var(--spring)}.cal{container-type:inline-size;min-width:0}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(5px,1.5cqw,10px)}.cal-week{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:8px;padding-left:4px}.cal-day{position:relative;aspect-ratio:1 / .92;border:2px solid transparent;background:var(--card);border-radius:clamp(12px,2.6cqw,18px);padding:clamp(6px,1.5cqw,12px);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;cursor:pointer;min-width:0;transition:transform .18s var(--ease),background-color .2s,box-shadow .2s,border-color .2s,opacity .2s}@media(hover:hover){.cal-day:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);opacity:1}}.cal-day:active{transform:scale(.95)}.cal-day:focus-visible{outline-offset:3px}.cal-n{font-size:clamp(16px,3.4cqw,24px);font-weight:700;line-height:1}.cal-bottom{display:flex;flex-direction:column;min-width:0;width:100%}.cal-amt{font-size:clamp(10.5px,2.2cqw,15px);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.02em}.cal-tag{font-size:12px;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-check{position:absolute;top:clamp(4px,1.4cqw,10px);right:clamp(4px,1.4cqw,10px);width:clamp(14px,3cqw,20px);height:clamp(14px,3cqw,20px);display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;animation:pop .35s var(--spring)}.cal-check .icon{width:68%;height:68%;stroke-width:3.2}.cal-day.past:not(.held,.selected){opacity:.55}.cal-day.debit{background:var(--redsoft)}.cal-day.debit .cal-amt{color:var(--red)}.cal-day.debit .cal-tag{color:#8a3a2e}.cal-day.over{box-shadow:inset 0 0 0 2px var(--red)}.cal-day.held{background:var(--greensoft)}.cal-day.held .cal-tag{color:var(--green)}.cal-day.pay{background:var(--ink);color:var(--bg)}.cal-day.today .cal-tag{color:var(--violet)}.cal-day.today:not(.held):after{content:"";position:absolute;top:clamp(5px,1.6cqw,12px);right:clamp(5px,1.6cqw,12px);width:clamp(6px,1.2cqw,8px);height:clamp(6px,1.2cqw,8px);border-radius:50%;background:var(--violet)}.cal-day.pay.today:after{background:var(--bg)}.cal-day.selected{border-color:var(--violet);box-shadow:var(--ring)}.cal-day.over.selected{box-shadow:inset 0 0 0 2px var(--red),var(--ring)}@container (max-width: 620px){.cal-tag{display:none}.cal-day{aspect-ratio:1}}@container (max-width: 460px){.cal-cur{display:none}.cal-day{align-items:center;justify-content:center;gap:3px}.cal-bottom{width:auto;align-items:center}.cal-week{text-align:center;padding-left:0;font-size:12px}.cal-check{top:3px;right:3px;width:13px;height:13px}}.cal-detail{background:var(--card);border-radius:28px;padding:26px;position:sticky;top:88px;box-shadow:var(--shadow-1)}.detail-in{animation:rise .26s var(--ease)}.detail-date{font-size:24px;font-weight:700;letter-spacing:-.02em}.detail-badges{display:flex;gap:6px;margin-top:6px}.detail-badges:empty{display:none}.detail-badge{background:var(--lilac);color:var(--violet);font-size:12.5px;font-weight:600;padding:2px 10px;border-radius:99px}.detail-badge.pay{background:var(--ink);color:#fff}.detail-empty{color:var(--muted);margin-top:14px}.detail-empty strong{color:var(--ink)}.detail-ops{margin-top:10px}.detail-op{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-op:last-child{border-bottom:0}.hold-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;width:100%;border:0;background:var(--bg);border-radius:16px;padding:14px;font-weight:600;cursor:pointer;transition:transform .15s var(--ease),background-color .2s,color .2s}.hold-btn:hover{background:var(--bg-deep)}.hold-btn:active{transform:scale(.98)}.hold-box{width:20px;height:20px;display:grid;place-items:center;border-radius:7px;box-shadow:inset 0 0 0 2px #bdb5a3;color:#fff;transition:background-color .2s,box-shadow .2s,transform .3s var(--spring)}.hold-btn.on{background:var(--greensoft);color:#0a6a48}.hold-btn.on:hover{background:#c3efdc}.hold-btn.on .hold-box{background:var(--green);box-shadow:none;transform:scale(1.1)}.statement{background:var(--card);border-radius:28px;padding:8px 28px;box-shadow:var(--shadow-1)}.st-day{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;border-bottom:1px solid var(--line)}.st-day:last-child{border-bottom:0}.st-date{padding:16px 0;font-weight:600}.st-date small{display:block;font-size:13px;font-weight:400;color:var(--muted)}.op{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0}.op+.op{border-top:1px solid var(--line)}.op-text{min-width:0}.op-name{font-weight:600}.op-meta{font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}.op-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.unsure-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:99px;background:#fbeed6;color:var(--unsure);font-size:11.5px;font-weight:600;white-space:nowrap;vertical-align:1.5px}.unsure{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;white-space:nowrap;padding:0 0 3px}.unsure .unsure-tag{margin-left:0;vertical-align:0}.unsure .link{color:var(--unsure);text-decoration-color:#a35f0066}.note{color:var(--muted);font-size:14px;max-width:640px;margin-top:10px;text-wrap:pretty}.note.next{margin-top:20px}.section{margin-top:20px;background:var(--card);border-radius:28px;padding:24px 28px;box-shadow:var(--shadow-1)}.section.first{background:none;box-shadow:none;padding:28px 0 8px;margin-top:0}.section.first h1{font-size:clamp(36px,5vw,56px);letter-spacing:-.045em;line-height:1.05}.section>h2,.section-head{margin-bottom:12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head h2{font-size:20px;letter-spacing:-.02em}.count{min-width:26px;height:26px;padding:0 8px;display:inline-grid;place-items:center;border-radius:99px;background:var(--bg);color:var(--muted);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.section .note{margin-top:0;margin-bottom:12px}.section.first .note{margin-top:8px}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:720px;margin-top:20px}.sum{background:var(--card);border-radius:20px;padding:14px 18px;display:flex;flex-direction:column;min-width:0;box-shadow:var(--shadow-1)}.sum span:first-child{font-size:13.5px;color:var(--muted)}.sum strong{font-size:clamp(17px,2.4vw,26px);letter-spacing:-.03em;white-space:nowrap}.sum:last-child{background:var(--lilac);box-shadow:none}.bare{border:1px solid transparent;background-color:transparent;border-radius:9px;padding:6px 8px;min-width:0;width:100%;transition:background-color .15s,border-color .15s,box-shadow .15s}.bare:hover{background-color:var(--bg)}.bare:focus{border-color:var(--violet);outline:none;background-color:#fff;box-shadow:var(--ring)}select.bare{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;width:auto;padding-right:26px;background-repeat:no-repeat;background-position:right 8px center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b668a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=date]::-webkit-calendar-picker-indicator{opacity:.4;cursor:pointer;transition:opacity .15s}input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:.9}.field-inline{display:flex;align-items:center;gap:12px;margin:20px 0 8px;flex-wrap:wrap}.field-inline label{font-weight:600}.field{border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--card);border-radius:12px;padding:9px 12px;transition:box-shadow .15s}.field:hover{box-shadow:inset 0 0 0 1.5px #cfc8b8}.field:focus{outline:none;box-shadow:inset 0 0 0 2px var(--violet),var(--ring)}.fresh-tag{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-weight:600;font-size:14px}.grid{display:flex;flex-direction:column}.grid-head,.grid-row{display:grid;gap:8px;align-items:center}.grid-head{font-size:13px;color:var(--muted);font-weight:500;padding:0 0 8px;border-bottom:1px solid var(--line)}.grid-head>span:not(.num){padding-left:9px}.grid-head>span:first-child{padding-left:0}.grid-head>.num{padding-right:26px}.grid-row{padding:6px 0;border-bottom:1px solid var(--line);border-radius:10px}.grid-row:last-child{border-bottom:0}.grid-row.fresh{animation:row-in 1.2s var(--ease)}.grid-accounts .grid-head,.grid-accounts .grid-row{grid-template-columns:minmax(140px,1fr) 170px 130px 150px 40px}.grid-ops .grid-head,.grid-ops .grid-row{grid-template-columns:minmax(0,1fr) 140px 150px 130px 40px}.cell-label{display:flex;flex-direction:column;min-width:0;font-weight:600}.cell-label .bare{margin-left:-9px;width:calc(100% + 9px);font-weight:600;text-overflow:ellipsis}.cell-label .unsure{padding-left:0}.hint{font-size:12.5px;padding-bottom:2px;color:var(--muted);font-weight:400}.cell-day{display:flex;align-items:center;gap:2px}.cell-day .day{width:46px;text-align:center;font-variant-numeric:tabular-nums}.cell-amount-flow{display:flex;align-items:center;gap:2px}.flow{flex-shrink:0;width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;font-weight:700;font-size:16px;line-height:1;cursor:pointer;transition:transform .2s var(--spring),background-color .2s,color .2s}.flow.expense{background:var(--redsoft);color:var(--red)}.flow.income{background:var(--greensoft);color:var(--green)}.flow:hover{transform:scale(1.12)}.flow:active{transform:scale(.92)}.amount-input{display:flex;align-items:center;gap:4px;min-width:0;font-variant-numeric:tabular-nums}.amount-input input{text-align:right}.amount-input.is-neg input{color:var(--red)}.amount-cap{display:none}.unit{flex-shrink:0}.remove{justify-self:end;width:34px;height:34px;display:grid;place-items:center;border:0;background:none;border-radius:10px;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s,background-color .15s,color .15s,transform .15s var(--ease)}.grid-row:hover .remove,.grid-row:focus-within .remove,.remove:focus-visible{opacity:1}@media(hover:none){.remove{opacity:1}}.remove:hover{background:var(--redsoft);color:var(--red)}.remove:active{transform:scale(.9)}.add{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;border:0;background:none;box-shadow:inset 0 0 0 1.5px #d6cfc0;padding:10px 18px 10px 14px;border-radius:99px;cursor:pointer;font-weight:600;transition:box-shadow .2s,background-color .2s,transform .15s var(--ease)}.add .icon{color:var(--violet);transition:transform .3s var(--spring)}.add:hover{box-shadow:inset 0 0 0 1.5px var(--violet);background:#5b3df50d}.add:hover .icon{transform:rotate(90deg)}.add:active{transform:scale(.97)}.past{margin-top:20px;color:var(--muted);font-size:14px}.past summary{cursor:pointer;margin-bottom:8px;width:max-content;border-radius:8px;transition:color .15s}.past summary:hover{color:var(--ink)}.past .grid{color:var(--ink);font-size:15px}.share-list{list-style:none;margin:0;padding:0}.share-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.person-dot{flex-shrink:0;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--lilac);color:var(--violet);font-weight:700;font-size:14px}.pending .person-dot{background:none;box-shadow:inset 0 0 0 1.5px #cfc8b8;color:var(--muted)}.person-mail{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-role{color:var(--muted);font-size:14px;white-space:nowrap}.share-form{display:flex;gap:10px;align-items:center;margin-top:16px}.share-input{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border-radius:99px;background:var(--bg);color:var(--muted);transition:box-shadow .15s,background-color .15s}.share-input:focus-within{background:#fff;box-shadow:inset 0 0 0 2px var(--violet),var(--ring)}.share-input input{flex:1;min-width:0;border:0;background:none;outline:none;color:var(--ink);padding:10px 0}.banner{display:flex;align-items:center;gap:10px;background:var(--redsoft);color:#a82a19;border-radius:16px;padding:12px 16px;margin:0 0 16px;font-weight:500}.footer{margin-top:40px;color:var(--muted);font-size:13px}@media(max-width:1000px){.page{padding:0 24px 80px}.header{margin:0 -24px;padding:12px 24px}.dash{grid-template-columns:1fr}.accounts{grid-template-columns:1fr 1fr}.cal-wrap{grid-template-columns:1fr}.cal-detail{position:static}}@media(max-width:900px){.login{grid-template-columns:1fr;padding:40px 24px;align-items:start}.login-main{margin:6vh auto 0;width:100%}.login-art{display:none}}@media(max-width:860px){.grid-accounts .grid-head{display:none}.grid-accounts .grid-row{grid-template-columns:1fr 1fr;column-gap:8px;row-gap:6px;padding:14px 0;align-items:end;border-radius:0}.grid-accounts .cell-label{grid-column:1}.grid-accounts .cell-label .bare{font-size:17px}.grid-accounts .remove{opacity:1;grid-column:2;grid-row:1}.grid-accounts .grid-row>select.bare{grid-column:1 / -1;width:100%;background-color:var(--bg);border-radius:12px;padding:10px 34px 10px 12px;background-position:right 14px center;font-size:16px;min-height:44px}.grid-accounts .amount-input{flex-wrap:wrap;column-gap:0}.grid-accounts .amount-cap{display:block;width:100%;font-size:12px;color:var(--muted);font-weight:500;padding:0 0 3px 2px}.grid-accounts .amount-input input{flex:1;width:0;text-align:left;background-color:var(--bg);border-color:transparent;border-radius:12px 0 0 12px;padding:10px 4px 10px 12px;font-size:16px;min-height:44px}.grid-accounts .amount-input input:focus{background-color:#fff;border-color:var(--violet);border-radius:12px}.grid-accounts .amount-input .unit{background:var(--bg);min-height:44px;display:flex;align-items:center;padding-right:12px;border-radius:0 12px 12px 0}.grid-accounts .amount-input input:focus+.unit{background:none}}@media(max-width:640px){.page{padding:0 16px calc(108px + env(safe-area-inset-bottom))}.header{position:static;margin:0;padding:12px 0 4px;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.header-end{display:none}.header .nav{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));margin:0;padding:6px;border-radius:26px;background:#ffffffe6;-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 10px 30px #16123a29,0 0 0 1px #16123a0d}.nav-pill{top:6px;bottom:6px;border-radius:20px}.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 7px;border-radius:20px;font-size:12px;font-weight:600}.nav button:active .icon{transform:scale(.88)}.nav .icon{display:block;transition:transform .2s var(--spring)}.nav-short{display:inline}.nav-long{display:none}.toasts{bottom:calc(96px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}.toast{width:100%}.toast-text{flex:1}.dialog{width:100%;margin:auto 0 0}.dialog-body{border-radius:28px 28px 0 0;padding:26px 20px calc(20px + env(safe-area-inset-bottom));animation:sheet-in .32s var(--ease)}.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{padding:14px}.hero{padding-top:10px}.headline{font-size:clamp(32px,9.6vw,40px)}.hero-sub{font-size:16px;margin-top:12px}.dash{margin-top:24px;gap:12px}.envelopes{grid-template-columns:1fr;grid-template-rows:none;min-height:0;gap:8px}.reserved{grid-row:auto}.env{border-radius:22px;padding:18px 20px}.env-amount{font-size:38px}.free:before,.mission:before{right:-90px;top:-90px}.mission-t{font-size:21px}.mission-btn{width:100%;padding:13px 18px}.check-row{padding:14px}.accounts{grid-template-columns:1fr 1fr;gap:8px}.acc{padding:14px 16px;border-radius:18px}.acc-value{font-size:clamp(22px,7vw,28px)}.spark{display:none}.block{margin-top:40px}.title{font-size:22px}.cal-detail{border-radius:22px;padding:20px}.statement{border-radius:22px;padding:4px 18px}.st-day{grid-template-columns:1fr;gap:0}.st-date{display:flex;align-items:baseline;gap:8px;padding:14px 0 0;font-size:13.5px;color:var(--muted)}.st-date small:before{content:"· "}.op{padding:8px 0 12px}.section{border-radius:22px;padding:18px}.section.first h1{font-size:36px}.summary{gap:8px}.sum{padding:12px 14px;border-radius:16px}.sum span:first-child{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add{width:100%;padding:13px 16px}.login{padding:28px 20px}.login-main{margin-top:2vh}.login-form{max-width:none}.grid-ops .grid-head{display:none}.grid-ops .grid-row{grid-template-columns:1fr 1fr;gap:8px;padding:14px 0;border-radius:0}.grid-ops .cell-label{grid-column:1 / -1}.grid-ops .cell-label .bare{font-size:17px}.grid-ops .amount-input,.grid-ops .cell-day,.grid-ops .cell-amount-flow,.grid-ops .grid-row>select.bare{background-color:var(--bg);border-radius:12px;min-height:44px}.grid-ops .amount-input{padding-right:12px}.grid-ops .cell-amount-flow{padding-left:8px}.grid-ops .cell-amount-flow .amount-input{flex:1;background:none}.grid-ops .cell-day{padding:0 10px 0 2px;gap:0}.grid-ops .cell-day .day{flex:1;width:0;text-align:left}.grid-ops .cell-day input[type=date]{padding-left:10px}.grid-ops :is(.amount-input,.cell-day,.cell-amount-flow) .bare{font-size:16px;padding-top:9px;padding-bottom:9px;border-color:transparent;background-color:transparent;box-shadow:none}.grid-ops :is(.amount-input,.cell-day,.cell-amount-flow):focus-within{box-shadow:inset 0 0 0 2px var(--violet),var(--ring);background-color:#fff}.grid-ops .amount-input input{text-align:left;padding-left:12px}.grid-ops .cell-amount-flow .amount-input input{padding-left:6px}.grid-ops .cell-amount-flow:focus-within .amount-input{box-shadow:none}.grid-ops .grid-row>select.bare{width:100%;padding:9px 34px 9px 12px;background-position:right 14px center;font-size:16px}.grid-ops .remove{opacity:1}}
