@font-face{font-family:Gabarito;src:url(/fonts/gabarito.woff2) format("woff2");font-weight:400 900;font-display:swap;font-style:normal}@font-face{font-family:Figtree;src:url(/fonts/figtree.woff2) format("woff2");font-weight:300 900;font-display:swap;font-style:normal}:root{--bg:#FAF9F6;--card:#FFFFFF;--line:#E8E3DA;--hair:#F1ECE4;--ink:#1F2430;--ink2:#544F47;--dim:#736D63;--faint:#726C61;--gold:#FFB020;--amber:#B45309;--gold-tint:#FFF8EA;--good:#1FA362;--good-deep:#0F7A4A;--bad:#D6443F;--bad-deep:#A8332E;--mixed:#948C7E;--r-lg:18px;--r-md:12px;--r-sm:9px;--sans:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--disp:"Gabarito","Figtree",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--t-fast:80ms;--t-base:150ms;--t-mid:250ms;--t-slow:350ms;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-pop:cubic-bezier(0.34,1.56,0.64,1);--ease-sheet:cubic-bezier(0.32,0.94,0.22,1);--sh-1:0 1px 2px rgba(90,74,48,0.05);--sh-2:0 2px 4px rgba(90,74,48,0.06),0 6px 16px rgba(90,74,48,0.06);--sh-3:0 4px 8px rgba(90,74,48,0.07),0 14px 34px rgba(90,74,48,0.09);--pad:20px;--tabbar:60px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}.app,body{background:var(--bg)}.app{max-width:460px;margin:0 auto;min-height:100dvh;position:relative;display:flex;flex-direction:column}.app.has-tabs{padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom, 0px))}.scroll{flex:1 1;padding:0 var(--pad)}.disp,h1,h2,h3{font-family:var(--disp);letter-spacing:-.015em}h1{font-size:30px;line-height:1.15}h1,h2{font-weight:700}h2{font-size:21px;line-height:1.2}h3{font-size:16px;font-weight:700}.lede{font-size:15.5px;color:var(--ink2);line-height:1.5}.faint{font-size:13px;color:var(--dim);line-height:1.45}.tiny{font-size:11.5px;color:var(--faint)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.card+.card{margin-top:12px}.tintcard{background:var(--gold-tint);border:1px solid #f2dfb8;border-radius:var(--r-lg);padding:16px}.row{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;color:inherit;width:100%;text-align:left;font:inherit;border:0;border-bottom:1px solid var(--hair);cursor:pointer}.row,.rows{background:var(--card)}.rows{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.rows .row:last-child{border-bottom:0}.row .val{margin-left:auto;color:var(--dim);font-size:14.5px;gap:6px}.btn,.row .val{display:flex;align-items:center}.btn{justify-content:center;gap:8px;width:100%;min-height:52px;padding:0 20px;text-align:center;background:var(--gold);color:var(--ink);border:0;border-radius:999px;font-family:var(--disp);font-size:17px;font-weight:700;cursor:pointer;text-decoration:none;transition:transform var(--t-fast) var(--ease-out),filter var(--t-fast) var(--ease-out)}.btn:active{transform:scale(.985);filter:brightness(.96)}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost,.btn.quiet{border:1px solid var(--line)}.btn.quiet{background:var(--card)}.btn:disabled{opacity:.45;cursor:not-allowed}.linky{background:none;border:0;padding:12px 0;font:inherit;font-size:13px;color:var(--amber);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;text-align:left}.linky:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13.5px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.chip.on,.chip[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}.chiprow{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px}.field{width:100%;min-height:52px;padding:0 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);font:inherit;font-size:16px;color:var(--ink)}.field:focus-visible{outline:2px solid var(--gold);outline-offset:1px}textarea.field{padding:14px 16px;line-height:1.45;resize:none}label.lbl{display:block;margin-bottom:7px}.mark{width:7px;height:7px;border-radius:50%;flex:0 0 auto;display:inline-block}.mark.good{background:var(--good)}.mark.mixed{background:var(--mixed)}.mark.bad{background:var(--bad)}.t-good{color:var(--good-deep)}.t-bad{color:var(--bad-deep)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink2)}.legend span{display:inline-flex;align-items:center;gap:6px}.topbar{display:flex;align-items:center;gap:10px;padding:14px var(--pad) 8px;min-height:52px}.topbar .back{display:inline-flex;align-items:center;gap:4px;background:none;border:0;font:inherit;font-size:15px;color:var(--amber);cursor:pointer;padding:6px 6px 6px 0;margin-left:-6px}.topbar .spacer{flex:1 1}.month-title{font-size:clamp(26px,8.2vw,34px);font-weight:800;letter-spacing:-.028em;line-height:1.05;white-space:nowrap}.topbar-month{flex-wrap:wrap;row-gap:8px}.month-title .yr{font-size:.6em;font-weight:700;letter-spacing:-.01em;color:var(--dim);margin-left:8px}.tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar) + env(safe-area-inset-bottom, 0px));padding-bottom:env(safe-area-inset-bottom,0);background:rgba(250,249,246,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:40}.tabbar .inner{max-width:460px;margin:0 auto;width:100%;display:flex}.tabbar a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--dim);font-size:11px;font-weight:650}.tabbar a[aria-current=page]{color:var(--amber)}body.sheet-open .bb-feedback-button,body.sheet-open .bb-feedback-button-container{
  /* !important on BOTH. Without it the vendor's own rule kept pointer-events
     at auto, so the button went invisible and stayed CLICKABLE — a tap on
     apparently-empty space opening a support chat, which is worse than the
     button being visible. Measured after the first attempt, not assumed. */opacity:0!important;pointer-events:none!important}body:has(.tabbar) .bb-feedback-button,body:has(.tabbar) .bb-feedback-button-container{bottom:calc(var(--tabbar) + env(safe-area-inset-bottom, 0px) + 14px)!important}.scrim{inset:0;background:rgba(31,36,48,.35);z-index:50;animation:fade var(--t-base) var(--ease-out)}.scrim,.sheet{position:fixed}.sheet{left:0;right:0;bottom:0;z-index:51;max-width:460px;margin:0 auto;background:var(--card);border-radius:22px 22px 0 0;max-height:86dvh;overflow-y:auto;padding:10px var(--pad) calc(24px + env(safe-area-inset-bottom, 0px));animation:rise var(--t-mid) var(--ease-out)}.sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 12px}@keyframes sink{0%{transform:none;opacity:1}to{transform:translateY(14px);opacity:0}}.scrim.is-closing{animation:fade var(--t-base) var(--ease-out) reverse forwards}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:none;opacity:1}}.pop{animation:pop var(--t-slow) var(--ease-pop) both}@keyframes count-in{0%{transform:translateY(6px);opacity:0;filter:blur(2px)}to{transform:none;opacity:1;filter:blur(0)}}.t-count{display:inline-block;animation:count-in var(--t-slow) var(--ease-pop) both}:where(a,button,[role=button],input,textarea,select):focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:var(--r-sm)}.btn{box-shadow:var(--sh-1);transition:transform var(--t-fast) var(--ease-out),filter var(--t-fast) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}@media (hover:hover){.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--sh-2)}}.btn:active:not(:disabled){transform:translateY(0) scale(.985);box-shadow:none;filter:brightness(.96)}.chip{transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}@media (hover:hover){.chip:hover{transform:translateY(-1px);box-shadow:var(--sh-1)}}.chip:active{transform:translateY(0) scale(.97);box-shadow:none}.row{transition:background var(--t-fast) var(--ease-out)}@media (hover:hover){.row:hover{background:var(--hair)}}.row:active{background:var(--line)}button.card{transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}@media (hover:hover){button.card:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}}button.card:active{transform:translateY(0);box-shadow:var(--sh-1)}.tabbar a{transition:color var(--t-fast) var(--ease-out)}.tabbar a:active{transform:scale(.94)}.tabbar a{transition:color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}.cal-cell{position:relative;border-radius:var(--r-md);cursor:pointer;font:inherit;color:inherit;padding:8px 0 9px;border:1.5px solid transparent;background:none;transition:opacity var(--t-base) var(--ease-out),translate var(--t-fast) var(--ease-out),scale var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}@media (hover:hover){.cal-cell:hover{background:var(--hair);translate:0 -1px}.cal-cell.is-today:hover{background:var(--gold-tint)}}.cal-cell:active{scale:.93}.cal-cell.is-today{background:var(--gold-tint);border-color:var(--gold)}@keyframes cell-in{0%{opacity:0;transform:translateY(4px) scale(.94)}to{opacity:1;transform:none}}.cal-grid .cal-cell{animation:cell-in var(--t-mid) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 9ms)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.t-shimmer{background:linear-gradient(90deg,var(--dim) 0,var(--dim) 38%,var(--ink) 50%,var(--dim) 62%,var(--dim) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.4s linear infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.t-breathe{animation:breathe 3s var(--ease-out) infinite}@keyframes line-in{0%{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}.t-reveal>*{animation:line-in var(--t-slow) var(--ease-out) both}.t-reveal>:first-child{animation-delay:0s}.t-reveal>:nth-child(2){animation-delay:45ms}.t-reveal>:nth-child(3){animation-delay:90ms}.t-reveal>:nth-child(4){animation-delay:135ms}.t-reveal>:nth-child(5){animation-delay:.18s}.t-reveal>:nth-child(6){animation-delay:225ms}.t-reveal>:nth-child(7){animation-delay:.27s}.t-reveal>:nth-child(n+8){animation-delay:315ms}@keyframes daystep{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.t-daystep{animation:daystep var(--t-base) var(--ease-out) both}.daystep-btn{position:relative}.daystep-btn:after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px}.app{transition:transform var(--t-slow) var(--ease-sheet),border-radius var(--t-slow) var(--ease-sheet),filter var(--t-slow) var(--ease-sheet);transform-origin:top center}body{transition:background var(--t-slow) var(--ease-sheet)}body.sheet-open{background:#23262E}body.sheet-open .app{transform:scale(.94) translateY(8px);border-radius:22px;overflow:hidden;filter:brightness(.97)}.sheet{background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(28px);backdrop-filter:saturate(180%) blur(28px);border-top:1px solid rgba(255,255,255,.7);box-shadow:0 -1px 0 rgba(90,74,48,.06),0 -18px 50px rgba(90,74,48,.13)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.sheet{background:var(--card)}}.sheet{animation:rise var(--t-slow) var(--ease-sheet)}.sheet.is-closing{animation:sink var(--t-base) var(--ease-out) forwards}.scrim{background:rgba(31,36,48,.28);animation:fade var(--t-slow) var(--ease-sheet)}.sheet .grab{transition:background var(--t-base) var(--ease-out),width var(--t-base) var(--ease-out)}@media (hover:hover){.sheet:hover .grab{background:var(--dim);width:46px}}@keyframes step-fwd{0%{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}@keyframes step-back{0%{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}.t-step-fwd{animation:step-fwd var(--t-mid) var(--ease-sheet) both}.t-step-back{animation:step-back var(--t-mid) var(--ease-sheet) both}@keyframes row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.rows-in>*{animation:row-in var(--t-mid) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 34ms)}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.ybars>*>*>*{transform-origin:bottom center;animation:bar-grow var(--t-slow) var(--ease-sheet) both}.ybars>:first-child>*>*{animation-delay:0s}.ybars>:nth-child(2)>*>*{animation-delay:34ms}.ybars>:nth-child(3)>*>*{animation-delay:68ms}.ybars>:nth-child(4)>*>*{animation-delay:102ms}.ybars>:nth-child(5)>*>*{animation-delay:136ms}.ybars>:nth-child(6)>*>*{animation-delay:.17s}.ybars>:nth-child(7)>*>*{animation-delay:204ms}.ybars>:nth-child(8)>*>*{animation-delay:238ms}.ybars>:nth-child(9)>*>*{animation-delay:272ms}.ybars>:nth-child(10)>*>*{animation-delay:306ms}.ybars>:nth-child(11)>*>*{animation-delay:.34s}.ybars>:nth-child(12)>*>*{animation-delay:374ms}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stack>*+*{margin-top:var(--gap,12px)}.hr{height:1px;background:var(--hair);margin:16px 0}.center{text-align:center}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.pad-b{padding-bottom:28px}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}a{color:var(--amber)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}