@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{*{box-sizing:border-box;margin:0;padding:0}button,a{font:inherit}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#effbf9;--bg-card:#fff;--line:#cdeae7;--ink:#173f46;--muted:#5f7579;--primary:#3bdac7;--primary-hover:#64e2d4;--primary-deep:#0f7773;--primary-soft:#d7f7f3;--secondary:#ec8fc5;--secondary-deep:#b93280;--secondary-soft:#fce5f2;--accent-blue:#40b5f0;--amber:#f59e0b;--red:#ef4444;--red-soft:#fee2e2;--shadow:0 10px 32px #0f77731f;--ui:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", sans-serif;--ease-spring:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}html{scroll-behavior:smooth}body{min-height:100dvh;color:var(--ink);font-family:var(--ui);font-synthesis:none;word-break:keep-all;background:var(--bg)}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(1100px 560px at 8% -8%,#3bdac73d,#0000 62%),radial-gradient(1000px 520px at 98% 0,#ec8fc533,#0000 60%),radial-gradient(960px 560px at 50% 114%,#40b5f024,#0000 60%);animation:28s ease-in-out infinite alternate bg-drift;position:fixed;inset:-15%}@keyframes bg-drift{0%{transform:translate(0)scale(1)}to{transform:translate(-4%,3%)scale(1.1)}}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}img{max-width:100%;display:block}.container{width:100%;max-width:640px;margin:0 auto;padding:0 16px}.card{background:var(--bg-card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:20px}.card-tint{background:linear-gradient(158deg,#fff 0%,#f0fffb 52%,#fff3fa 100%);border-color:#3bdac747}.muted{color:var(--muted)}.err{color:var(--red);margin:8px 0;font-size:13px}.field{border:1px solid var(--line);background:var(--bg-card);width:100%;color:var(--ink);border-radius:12px;outline:none;margin-bottom:10px;padding:11px 14px;font-size:15px}.field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3bdac747}@media (pointer:coarse){input,textarea,select,.field,.stepper-input{font-size:16px}}.password-field{position:relative}.password-toggle{color:var(--muted);background:0 0;border:none;padding:6px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-58%)}.primary-btn{background:var(--primary);width:100%;color:var(--ink);border:none;border-radius:999px;padding:12px 18px;font-size:15px;font-weight:700}.primary-btn:hover{background:var(--primary-hover)}.btn{border:1px solid var(--line);background:var(--bg-card);color:var(--ink);border-radius:999px;padding:10px 16px;font-size:14px;font-weight:600}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--ink)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{background:0 0}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.cd-dropdown{position:relative}.cd-trigger{border:1px solid var(--line);height:39px;color:var(--ink);font:inherit;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:600;transition:border-color .18s,background .18s;display:flex}.cd-trigger:hover{border-color:var(--primary);background:var(--primary-soft)}.cd-trigger:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #3bdac747}.cd-chevron{color:var(--muted);transition:transform .2s}.cd-chevron.open{transform:rotate(180deg)}.cd-menu{z-index:100;background:var(--bg-card);border:1px solid var(--line);min-width:172px;box-shadow:var(--shadow);border-radius:14px;margin:0;padding:6px;list-style:none;animation:.18s ease-out cd-drop-in;position:absolute;top:calc(100% + 6px);right:0}@keyframes cd-drop-in{0%{opacity:0;transform:translateY(-5px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cd-item{color:var(--ink);cursor:pointer;border-radius:10px;outline:none;align-items:center;gap:10px;padding:10px 12px;transition:background .15s;display:flex}.cd-item:hover,.cd-item:focus-visible{background:var(--primary-soft)}.cd-item.selected{background:var(--secondary-soft)}.cd-item strong{flex:1;font-size:13px}.cd-item-icon{font-size:15px}.cd-check{color:var(--secondary-deep);flex:none}.toaster{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.snackbar{color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;animation:.18s ease-out snack-in}.snackbar-ok{background:var(--primary-deep)}.snackbar-error{background:var(--red)}@keyframes snack-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.weight-calendar{margin-top:14px}.weight-calendar-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.weight-calendar-head h4{margin:0}.weight-calendar-head span{font-size:13px}.weight-calendar-weekdays,.weight-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.weight-calendar-weekdays{margin-bottom:6px}.weight-calendar-weekdays span{color:var(--muted);text-align:center;font-size:11px}.weight-calendar-cell{min-width:0;height:38px;color:var(--muted);font-variant-numeric:tabular-nums;transition:background .35s var(--ease-out), color .35s var(--ease-out), transform .18s var(--ease-spring);background:#e1f2f0;border-radius:9px;justify-content:center;align-items:center;font-size:12px;display:flex}button.weight-calendar-cell{font:inherit;cursor:pointer;border:0}button.weight-calendar-cell:focus-visible{outline:2px solid var(--primary-deep);outline-offset:1px}@media (hover:hover){.weight-calendar-cell.is-recorded:hover{transform:scale(1.12)}button.weight-calendar-cell:not(.is-recorded):hover{background:var(--primary-soft);transform:scale(1.06)}}.weight-calendar-cell.is-empty{background:0 0}.weight-calendar-cell.is-recorded{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;font-weight:700}.weight-calendar-cell.is-future:not(.is-today){opacity:.45}.weight-calendar-cell.is-today{outline:2px solid var(--secondary-deep);outline-offset:1px}.weight-calendar-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;font-size:11.5px;display:flex}.weight-calendar-key{background:linear-gradient(135deg, var(--primary), var(--secondary));border-radius:3px;width:11px;height:11px}.marketing-topbar{top:max(12px, env(safe-area-inset-top));z-index:400;isolation:isolate;background:#fbfffe;border:1px solid #cdeae7e0;border-radius:22px;justify-content:space-between;align-items:center;gap:12px;width:min(960px,100% - 32px);min-height:64px;margin:12px auto 0;padding:10px 12px 10px 14px;display:flex;position:sticky;overflow:visible;box-shadow:inset 0 1px #fffffff0,0 14px 40px #0f77731c,0 2px 8px #173f460d}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.marketing-topbar{-webkit-backdrop-filter:blur(18px)saturate(155%);backdrop-filter:blur(18px)saturate(155%);background:linear-gradient(135deg,#ffffffd1,#effbf99e)}}.marketing-brand{color:var(--ink);border-radius:12px;flex:none;align-items:center;gap:9px;font-size:20px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.marketing-brand img{border-radius:9px;flex:none;box-shadow:0 3px 10px #0f777324}.marketing-nav{white-space:nowrap;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.marketing-topbar :is(.btn,.cd-trigger){justify-content:center;align-items:center;height:40px;min-height:40px;padding-block:0;padding-inline:14px;display:inline-flex}.marketing-topbar .btn{text-decoration:none}.marketing-topbar .btn-ghost{background:#ffffff4d;border-color:#0f777324}.marketing-topbar .btn-ghost:hover{background:#ffffffb8}.marketing-plan-link.is-current{background:#d7f7f3ad;border-color:#3bdac752}.marketing-topbar :is(a,button):focus-visible{outline-offset:2px;outline:3px solid #b9328040}.plan-main{padding-top:28px}@media (prefers-reduced-transparency:reduce){.marketing-topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fbfffe}}.landing-feature-card{min-height:100%}.landing-feature-icon{width:46px;height:46px;color:var(--primary-deep);background:linear-gradient(145deg, #f5fffd, var(--primary-soft));border-radius:14px;place-items:center;margin-bottom:14px;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s;display:grid;box-shadow:inset 0 0 0 1px #0f77731a}.landing-feature-icon.is-premium{color:var(--secondary-deep);background:linear-gradient(145deg, #fffafd, var(--secondary-soft));box-shadow:inset 0 0 0 1px #b932801a}@media (hover:hover){.landing-feature-card:hover .landing-feature-icon{transform:translateY(-2px)rotate(-2deg);box-shadow:inset 0 0 0 1px #0f777329,0 7px 16px #0f77731a}.landing-feature-card:hover .landing-feature-icon.is-premium{box-shadow:inset 0 0 0 1px #b9328029,0 7px 16px #b932801a}}@media (max-width:520px){.marketing-topbar{top:max(8px, env(safe-area-inset-top));border-radius:18px;gap:6px;width:calc(100% - 16px);min-height:58px;margin-top:8px;padding:8px}.marketing-brand{font-size:18px}.marketing-nav{gap:6px}.marketing-topbar :is(.btn,.cd-trigger){height:42px;min-height:42px;padding-inline:10px}.marketing-topbar .cd-trigger-label{display:none}.marketing-topbar .cd-menu{left:0;right:auto}.plan-main{padding-top:24px}}@media (max-width:370px){.marketing-brand-label{display:none}}.app-topbar{width:min(600px,100% - 24px)}.app-nav{gap:6px}.marketing-topbar .app-nav-btn{color:var(--ink);padding-inline:11px}.marketing-topbar .app-nav-btn:hover{background:var(--primary-soft);color:var(--primary-deep);border-color:#0f777347}.marketing-topbar .app-nav-btn.is-current{background:linear-gradient(140deg, var(--primary-soft), var(--secondary-soft));color:var(--primary-deep);border-color:#0f777366}.app-streak{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}@media (max-width:560px){.app-nav{gap:5px}.marketing-topbar .app-nav-btn{padding-inline:9px}}@media (max-width:480px){.app-topbar .marketing-brand-label,.app-streak{display:none}}.entry-thumb{object-fit:cover;border-radius:7px;flex:none;width:28px;height:28px;box-shadow:inset 0 0 0 1px #0f77731f}.entry-thumb-ph{background:var(--primary-soft);display:inline-block}.entry-row-btn{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;align-items:center;gap:8px;margin:-5px -7px;padding:5px 7px;transition:background .15s;display:flex}.entry-row-btn:hover{background:var(--primary-soft)}.entry-row-btn:focus-visible{background:var(--primary-soft);outline:none;box-shadow:0 0 0 3px #3bdac747}.fab{right:max(18px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));z-index:500;color:#fff;background:linear-gradient(140deg, var(--primary), var(--secondary));cursor:pointer;width:58px;height:58px;animation:pop-in .4s var(--ease-spring) both;transition:transform .18s var(--ease-spring), box-shadow .18s ease;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;box-shadow:0 10px 26px #0f777357,0 3px 10px #b932803d}@media (hover:hover){.fab:hover{transform:translateY(-3px)scale(1.05);box-shadow:0 16px 34px #0f77736b}}.fab:active{transform:scale(.93)}.quick-chip{border:1px solid var(--line);background:linear-gradient(140deg, #fff, var(--primary-soft));color:var(--ink);font:inherit;cursor:pointer;transition:transform .14s var(--ease-spring), border-color .14s ease, box-shadow .14s ease;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}@media (hover:hover){.quick-chip:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 6px 14px #0f777324}}.quick-chip:active{transform:scale(.96)}.quick-chip-kcal{color:var(--primary-deep);font-variant-numeric:tabular-nums;font-weight:700}.quick-chip.is-selected{border-color:var(--primary);background:linear-gradient(140deg, var(--primary-soft), var(--secondary-soft));color:var(--primary-deep);box-shadow:inset 0 0 0 1px var(--primary)}.water-btn{border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:20px;line-height:1;display:flex}.water-cups{flex-wrap:wrap;flex:1;justify-content:center;gap:5px;display:flex}.water-cup{color:#3894e652;transition:color .25s ease, transform .25s var(--ease-spring)}.water-cup.is-filled{color:#2b83d6;transform:scale(1.1)}.scan-reticle{pointer-events:none;border:2px solid #ffffffe6;border-radius:12px;position:absolute;inset:24% 12%;box-shadow:0 0 0 100vmax #00000047}.weight-insight{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:2px 0 12px;font-size:13.5px;font-weight:600;display:flex}.weight-insight-rate{color:var(--primary-deep)}.weight-insight-eta{color:var(--secondary-deep)}.weight-goal-form{align-items:center;gap:6px;margin-left:auto;display:flex}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.stepper{border:1px solid var(--line);background:var(--bg-card);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.stepper-btn{width:34px;height:38px;color:var(--primary-deep);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;transition:background .14s,color .14s;display:flex}.stepper-btn:hover:not(:disabled){background:var(--primary-soft)}.stepper-btn:active:not(:disabled){background:var(--primary);color:#fff}.stepper-btn:disabled{color:var(--muted);opacity:.5;cursor:not-allowed}.stepper-input{text-align:center;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;padding:0;font-weight:700}.section-heading{text-align:center}.section-heading h1{margin-bottom:6px;font-size:24px}.section-heading p{color:var(--muted);font-size:14.5px}.billing-toggle-wrap{justify-content:center;display:flex}.billing-toggle{background:var(--primary-soft);border-radius:999px;gap:2px;padding:4px;display:inline-flex}.billing-toggle button{color:var(--muted);background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:8px 18px;font-size:14px;font-weight:600;display:flex}.billing-toggle button.is-active{background:var(--bg-card);color:var(--ink);box-shadow:0 2px 8px #0f77731a}.billing-save{background:var(--secondary-soft);color:var(--secondary-deep);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.pricing{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:640px){.pricing{grid-template-columns:1fr 1fr}}.price-card{background:var(--bg-card);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:12px;padding:22px;display:flex;position:relative}.price-card.featured{border-color:var(--secondary);box-shadow:var(--shadow)}.price-badge{background:var(--secondary);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700;position:absolute;top:-11px;left:20px}.price{font-size:30px;font-weight:800}.price small{color:var(--muted);font-size:13px;font-weight:600}.price-annual-total{color:var(--muted);margin-top:-8px;font-size:12.5px}.price-card ul{gap:8px;font-size:14px;list-style:none;display:grid}.price-card ul li:before{content:"✓ ";color:var(--primary-deep);font-weight:700}.price-card-actions{gap:8px;margin-top:auto;display:grid}.badge{border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-block}.badge-free{background:var(--primary-soft);color:var(--muted)}.badge-premium{background:linear-gradient(90deg, var(--primary-soft), var(--secondary-soft));color:var(--secondary-deep)}.legal-links{flex-wrap:wrap;justify-content:center;gap:16px;margin:40px 0 28px;font-size:13px;display:flex}.legal-links a{color:var(--muted);text-decoration:none}.legal-links a:hover{color:var(--ink)}.login-card{position:relative}.login-card h2{margin-bottom:4px}.login-card>.muted{margin-bottom:16px;font-size:14px}.modal-close{color:var(--muted);background:0 0;border:none;padding:6px;font-size:16px;position:absolute;top:12px;right:12px}.or-divider{color:var(--muted);align-items:center;gap:10px;margin:14px 0;font-size:12px;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--line);flex:1;height:1px}.login-form{gap:10px;display:grid}.login-form label{color:var(--muted);gap:6px;font-size:13px;font-weight:600;display:grid}.login-notice{color:var(--primary-deep);margin:4px 0;font-size:13px}.link-btn{color:var(--primary-deep);text-underline-offset:3px;background:0 0;border:none;font-size:13px;font-weight:600;text-decoration:underline}.modal-backdrop{inset:0;top:var(--vvt,0px);height:var(--vvh,100dvh);z-index:900;background:#0f172a73;justify-content:center;align-items:center;padding:16px;animation:.2s both fade-in;display:flex;position:fixed;bottom:auto}.modal{background:var(--bg-card);width:100%;max-width:420px;box-shadow:var(--shadow);max-height:88%;animation:modal-in .28s var(--ease-spring) both;border-radius:18px;padding:22px;overflow-y:auto}.modal-backdrop.is-dialog{justify-content:center;align-items:center;padding:16px}.modal-backdrop.is-dialog .modal{width:100%;max-width:340px;animation:modal-in .28s var(--ease-spring) both;border-radius:18px}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:520px){.modal-backdrop{justify-content:stretch;align-items:flex-end;padding:0}.modal{width:100%;max-width:none;max-height:92%;padding-bottom:max(22px, env(safe-area-inset-bottom));animation:sheet-up .3s var(--ease-spring) both;border-radius:22px 22px 0 0}}.screen-title{letter-spacing:-.02em;color:var(--primary-deep);width:fit-content;font-size:23px;font-weight:800;line-height:1.15}@supports ((-webkit-background-clip:text) or (background-clip:text)){.screen-title{background:linear-gradient(90deg, var(--primary-deep), var(--secondary-deep));-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}}.account-plan{gap:14px;display:grid}.account-plan-card{background:var(--bg-card);border:1.5px solid var(--line);border-radius:14px;justify-items:start;gap:7px;padding:16px;display:grid}.account-plan-card strong{color:var(--ink);letter-spacing:-.01em;font-size:22px;font-weight:800}.account-note{color:var(--muted);margin:0;font-size:13px;font-weight:600;line-height:1.55}.account-wide-action{width:100%;text-decoration:none}.btn.danger{color:var(--red);border-color:#ef444447}.btn.danger:hover:not(:disabled){background:#ef444414}.usage-track{background:var(--line);border-radius:999px;height:7px;overflow:hidden}.usage-fill{background:linear-gradient(90deg, var(--primary), var(--secondary-deep));height:100%;transition:width .5s var(--ease-spring);border-radius:999px}.md{gap:8px;display:grid}.md-p{margin:0;line-height:1.6}.md-h{letter-spacing:-.01em;margin:4px 0 0;font-weight:800;line-height:1.3}.md-h1{font-size:16px}.md-h2{font-size:15px}.md-h3{font-size:14px}.md-ul{gap:4px;margin:0;padding-left:18px;line-height:1.55;display:grid}.md-code{background:#0f172a0f;border-radius:6px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.cal-loader{width:42px;height:42px;animation:1.5s linear infinite cal-loader-spin}.cal-loader-pulse{width:100%;height:100%;animation:.6s ease-in-out infinite alternate cal-loader-pulse;position:relative}.cal-loader-dot{background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 5px .5px}@keyframes cal-loader-spin{to{transform:rotate(360deg)}}@keyframes cal-loader-pulse{0%{transform:scale(.85)}to{transform:scale(1.15)}}.cal-spin{vertical-align:-3px;border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite cal-loader-spin;display:inline-block}.cal-spin-green{border-color:var(--primary-soft);border-top-color:var(--primary-deep)}.skeleton{background:var(--primary-soft);border-radius:12px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.3s ease-in-out infinite cal-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes cal-shimmer{to{transform:translate(100%)}}.gradient-text{background:linear-gradient(100deg, var(--primary-deep), var(--primary) 55%, var(--secondary));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-typeline{min-height:1.35em;color:var(--primary-deep);margin:0 0 12px;font-size:clamp(22px,4vw,36px);font-weight:800;line-height:1.25}.type-word{color:var(--secondary-deep)}.type-caret{background:var(--primary-deep);vertical-align:-.1em;border-radius:2px;width:3px;height:.95em;margin-left:3px;animation:1s step-end infinite type-caret-blink;display:inline-block}@keyframes type-caret-blink{50%{opacity:0}}.primary-btn,.btn-primary{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s,filter .18s}.primary-btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 18px #0f77733d}.primary-btn:active:not(:disabled),.btn-primary:active:not(:disabled){transition-duration:75ms;transform:translateY(0);box-shadow:0 3px 9px #0f777333}.level-card{align-items:center;gap:14px;padding:16px;display:flex}.level-mascot{background:linear-gradient(145deg, var(--primary-soft), var(--secondary-soft));border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:32px;display:flex;box-shadow:inset 0 0 0 1px #b932801a}.level-bar,.quest-bar{background:var(--primary-soft);border-radius:999px;height:8px;overflow:hidden}.level-bar-fill,.quest-bar-fill{background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .7s var(--ease-out);border-radius:999px;position:relative;overflow:hidden}.macro-bar-fill{position:relative;overflow:hidden}.level-bar-fill:after,.quest-bar-fill:after,.macro-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:3.6s ease-in-out infinite bar-sheen;position:absolute;inset:0;transform:translate(-120%)}@keyframes bar-sheen{0%{transform:translate(-120%)}55%,to{transform:translate(220%)}}.cal-ring-breathe{transform-origin:50%;animation:4.5s ease-in-out infinite ring-breathe}@keyframes ring-breathe{0%,to{filter:drop-shadow(0 0 #3bdac700);transform:scale(1)}50%{filter:drop-shadow(0 3px 12px #3bdac738);transform:scale(1.012)}}.cal-ring-tip{transform-box:fill-box;transform-origin:50%;animation:1.9s ease-in-out infinite cal-tip-pulse}@keyframes cal-tip-pulse{0%,to{opacity:.8;transform:scale(.88)}50%{opacity:1;transform:scale(1.25)}}.quest-bar{height:6px;margin-top:5px}.quest-group-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:12px;font-weight:700}.quest-row{align-items:flex-start;gap:10px;display:flex}.quest-check{border:2px solid var(--line);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;font-weight:800;display:flex}.quest-row.is-done .quest-check{background:var(--primary);border-color:var(--primary);color:var(--ink)}.quest-row.is-done .quest-bar-fill{background:linear-gradient(90deg, var(--primary), var(--secondary))}.quest-xp{color:var(--primary-deep);white-space:nowrap;font-size:12px;font-weight:700}.quest-alldone{background:var(--secondary-soft);color:var(--secondary-deep);text-align:center;border-radius:12px;margin-top:10px;padding:8px;font-size:13.5px;font-weight:700}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes flame-flicker{0%,to{transform:rotate(-4deg)scale(1)}50%{transform:rotate(4deg)scale(1.12)}}@keyframes draw-line{to{stroke-dashoffset:0}}.anim-fade-up{animation:fade-up .5s var(--ease-spring) both}.anim-fade-down{animation:fade-down .45s var(--ease-spring) both}.anim-fade-in{animation:.5s both fade-in}.anim-scale-in{animation:scale-in .4s var(--ease-spring) both}.anim-pop{animation:pop-in .42s var(--ease-spring) both}.page-enter{animation:page-enter .45s var(--ease-out) both}.stagger>*{animation:fade-up .5s var(--ease-spring) both}.stagger>:first-child{animation-delay:30ms}.stagger>:nth-child(2){animation-delay:90ms}.stagger>:nth-child(3){animation-delay:.15s}.stagger>:nth-child(4){animation-delay:.21s}.stagger>:nth-child(5){animation-delay:.27s}.stagger>:nth-child(6){animation-delay:.33s}.stagger>:nth-child(7){animation-delay:.39s}.stagger>:nth-child(8){animation-delay:.45s}.stagger>:nth-child(n+9){animation-delay:.5s}.reveal{opacity:0;transition:opacity .6s var(--ease-spring), transform .6s var(--ease-spring)}.reveal-up{transform:translateY(22px)}.reveal-down{transform:translateY(-22px)}.reveal-left{transform:translate(-24px)}.reveal-right{transform:translate(24px)}.reveal-scale{transform:scale(.94)}.reveal-fade{transform:none}.reveal.is-in{opacity:1;transform:none}@media (hover:hover){.hover-lift{transition:transform .2s var(--ease-spring), box-shadow .2s ease, border-color .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 16px 34px #0f777326}}.btn{transition:background .16s ease, border-color .16s ease, color .16s ease, transform .12s var(--ease-spring)}.btn:active:not(:disabled){transform:scale(.95)}.flame-icon{justify-content:center;align-items:center;display:inline-flex}.flame-icon svg{transform-origin:50% 88%;animation:1.5s ease-in-out infinite flame-sway;display:block}.flame-body{transform-box:fill-box;transform-origin:50% 92%;animation:1.5s ease-in-out infinite flame-body-flick}.flame-core{transform-box:fill-box;transform-origin:50% 100%;animation:.85s ease-in-out infinite alternate flame-core-pulse}@keyframes flame-sway{0%,to{transform:rotate(0)scale(1)}30%{transform:rotate(-3deg)scale(1.04,.98)}60%{transform:rotate(2.5deg)scale(.97,1.05)}}@keyframes flame-body-flick{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.08)scaleX(.96)}}@keyframes flame-core-pulse{0%{opacity:.55;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1.15)}}.icon-btn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .12s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--primary-soft);color:var(--ink)}.icon-btn:active:not(:disabled){transform:scale(.9)}.icon-btn:disabled{opacity:.32;cursor:default}.date-nav{justify-content:center;align-items:center;gap:8px;margin-bottom:12px;display:flex}.date-nav-label{min-width:132px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:15px;font-weight:700;transition:background .15s;display:inline-flex}.date-nav-label:hover{background:var(--primary-soft)}.cal-pick-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cal-pick-head h4{margin:0;font-size:15px;font-weight:800}.weight-calendar-cell.is-selected{box-shadow:0 0 0 2px var(--primary-deep);font-weight:800}.date-today-btn{padding:5px 12px;font-size:12.5px}.fav-star.is-fav{color:#f5b301}.fav-star.is-fav:hover{color:#e0a400;background:#f5b30124}.sec-ico{background:var(--primary-soft);width:30px;height:30px;color:var(--primary-deep);border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.sec-ico--water{color:#2b83d6;background:#3894e624}.sec-ico--move{background:var(--primary-soft);color:var(--primary-deep)}.sec-ico--fast{color:#bd7908;background:#f59e0b29}.sec-ico--quest{background:var(--secondary-soft);color:var(--secondary-deep)}.app-topbar .app-nav .app-nav-btn{border-radius:50%;flex:none;width:40px;height:40px;min-height:40px;padding:0}.flame{transform-origin:50% 80%;animation:1.6s ease-in-out infinite flame-flicker;display:inline-block}.floaty{animation:4s ease-in-out infinite float-y;display:inline-flex}@keyframes blink-soft{0%,to{opacity:.4}50%{opacity:1}}.thinking{animation:1.2s ease-in-out infinite blink-soft}.draw-path{stroke-dasharray:1;stroke-dashoffset:1px;animation:draw-line 1.1s var(--ease-out) .15s forwards}.draw-dot{opacity:0;animation:.35s forwards fade-in}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.type-caret{animation:none}.reveal{opacity:1;transform:none}.draw-path{stroke-dashoffset:0}.draw-dot{opacity:1}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}