@layer reset{*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fff;min-width:320px;min-height:100dvh;margin:0}button,input,select{font:inherit}button{border:0}img,svg{display:block}#root{min-height:100dvh}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}}@layer base{:root{--brand:#0f4f29;--brand-strong:#083d1f;--lime:#6ec72e;--nutrition:#459433;--nutrition-accent:#c2a12b;--nutrition-deep:#266e29;--nutrition-text:var(--nutrition-deep);--nutrition-selected:var(--nutrition-deep);--activity:#1f8742;--activity-accent:#54b340;--recovery:#3d7a8f;--recovery-accent:#5469bd;--body:#1a809e;--body-accent:#1a638f;--pregnancy:#a84d7a;--cycle:#bf4059;--page-background:#f5faf0;--paper:#fbfdf8;--paper-strong:#fffefa;--ink:#083d1f;--soft-green:#e8f7db;--soft-mint:#e0f2e0;--card-border:#14452114;--card-shadow:#0a3d1a17;--secondary-text:#4a5e4f;--green:#0f4f29;--green-dark:#083d1f;--green-ink:var(--nutrition-deep);--blue:var(--recovery);--blue-dark:var(--recovery-accent);--teal:var(--activity);--text:var(--secondary-text);--text-strong:#083d1f;--muted-text:var(--secondary-text);--border:var(--card-border);--border-strong:#14452129;--surface-green:var(--soft-green);--surface-blue:#e8f2f5;--surface-soft:var(--soft-mint);--shadow-soft:0 4px 12px var(--card-shadow);--shadow-card:0 3px 10px #083d1f0a;--shadow-float:0 18px 42px #083d1f21;--radius-control:8px;--radius-card:8px;--radius-panel:12px;--sans:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--heading:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--page-background);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-weight:400;line-height:1.5}}@layer shell{.app-shell{isolation:isolate;background:linear-gradient(#f5faf047, #f5faf047), url(/botanical-wash.webp) center / cover fixed, var(--page-background);min-height:100dvh;color:var(--text);padding:24px;position:relative}@media (width<=640px){.app-shell{background-image:linear-gradient(#f5faf047,#f5faf047),url(/botanical-wash-mobile.webp)}}.app-shell:before{z-index:0;content:"";pointer-events:none;opacity:1;background:linear-gradient(#ffffff0d,#0000 40%);position:fixed;inset:0}.app-shell>*{z-index:1;position:relative}.topbar{z-index:20;border:1px solid var(--border);width:min(100%,1440px);min-height:68px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border-radius:20px;justify-content:space-between;align-items:center;gap:16px;margin:0 auto 24px;padding:12px 14px 12px 18px;display:flex;position:sticky;top:16px}.brand,.nav-links,.primary-action,.auth-brand,.auth-tabs,.auth-form label span,.sign-out-button,.metric-top,.panel-header,.panel-header>div,.calorie-focus,.upload-zone,.recognition-result,.log-row,.stepper-row,.progress-item,.progress-label{align-items:center;display:flex}.brand{min-height:44px;color:var(--text-strong);font-family:var(--heading);cursor:pointer;background:0 0;border:0;gap:10px;padding:0;font-size:1.35rem;font-weight:700;text-decoration:none}.brand-mark{border:1px solid var(--card-border);width:42px;height:42px;box-shadow:0 7px 16px var(--card-shadow);background:#fff;border-radius:50%;place-items:center;padding:2px;transition:transform .22s,box-shadow .22s;display:grid;overflow:hidden}.brand-mark picture,.brand-mark img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.brand:hover .brand-mark,.brand:focus-visible .brand-mark{transform:translateY(-1px)scale(1.03);box-shadow:0 11px 22px #0a3d1a29}.nav-links{background:#eef8e5d9;border-radius:999px;gap:6px;padding:4px}.nav-links button{min-height:40px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:8px 14px;font-size:.95rem;font-weight:700;text-decoration:none;transition:background .18s,color .18s,transform .18s;display:flex}.nav-links button:hover,.nav-links button:focus-visible,.nav-links button.active{color:var(--green-dark);border-color:var(--border);background:#fff}.nav-links button:hover,.nav-links button:focus-visible{transform:translateY(-1px)}.mobile-bottom-nav,.mobile-more-menu,.mobile-log-fab{display:none}.primary-action,.button,.ghost-button,.icon-button,.water-cup{isolation:isolate;cursor:pointer;min-height:44px;transition:transform .18s,border-color .18s,background-color .18s,box-shadow .18s;position:relative}.primary-action,.button{color:#fff;border:1px solid #0000;border-radius:8px;justify-content:center;gap:8px;padding:10px 16px;font-weight:800;text-decoration:none}.sign-out-button{white-space:nowrap;gap:7px}}@layer marketing{.landing-shell{--preview-x:0px;--preview-y:0px;--preview-lift:0px;--scroll-preview-y:0px;--tilt-x:0deg;--tilt-y:0deg;--depth-1-x:0px;--depth-1-y:0px;--depth-2-x:0px;--depth-2-y:0px;--depth-3-x:0px;--depth-3-y:0px;--depth-4-x:0px;--depth-4-y:0px;--depth-5-x:0px;--depth-5-y:0px;--depth-6-x:0px;--depth-6-y:0px;--scroll-depth-1-y:0px;--scroll-depth-2-y:0px;--scroll-depth-3-y:0px;--scroll-depth-4-y:0px;--scroll-depth-5-y:0px;--scroll-depth-6-y:0px;--field-green-x:0px;--field-green-y:0px;--field-blue-x:0px;--field-blue-y:0px;--field-step-one-x:0px;--field-step-one-y:0px;--field-step-two-x:0px;--field-step-two-y:0px;--field-step-three-x:0px;--field-step-three-y:0px;--motion-green-y:0px;--motion-blue-y:0px;--motion-step-one-y:0px;--motion-step-two-y:0px;--motion-step-three-y:0px;gap:28px;padding-bottom:56px;display:grid;overflow-x:clip}.landing-nav{justify-content:space-between;align-items:center;gap:18px;width:min(100%,1440px);margin:0 auto;padding:8px 0;display:flex}.landing-actions,.landing-cta,.landing-trust,.preview-bar,.preview-snapshot{align-items:center;display:flex}.landing-actions,.landing-cta{gap:10px}.landing-actions .button,.landing-actions .ghost-button,.landing-cta .button,.landing-cta .ghost-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.landing-hero{isolation:isolate;grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);align-items:center;gap:48px;width:min(100%,1440px);min-height:min(680px,100dvh - 170px);margin:0 auto;padding:34px 0;display:grid;position:relative}.landing-motion-field{z-index:-1;pointer-events:none;opacity:.78;position:absolute;inset:4% 0 0;overflow:hidden}.motion-line,.motion-step{border-radius:999px;transition:transform .26s cubic-bezier(.22,1,.36,1);display:block;position:absolute}.motion-line{background:linear-gradient(90deg, transparent, var(--line-color), transparent);width:min(46vw,620px);height:1px}.motion-line-green{--line-color:#0f9f6838;transform:translate3d(var(--field-green-x), calc(var(--field-green-y) + var(--motion-green-y)), 0);top:19%;right:2%}.motion-line-blue{--line-color:#0c73a333;transform:translate3d(var(--field-blue-x), calc(var(--field-blue-y) + var(--motion-blue-y)), 0);bottom:12%;right:15%}.motion-step{background:#fff;border:1px solid #cde8f0;width:10px;height:10px;box-shadow:0 6px 16px #0d547614}.motion-step-one{transform:translate3d(var(--field-step-one-x), calc(var(--field-step-one-y) + var(--motion-step-one-y)), 0);top:13%;right:33%}.motion-step-two{transform:translate3d(var(--field-step-two-x), calc(var(--field-step-two-y) + var(--motion-step-two-y)), 0);top:43%;right:4%}.motion-step-three{transform:translate3d(var(--field-step-three-x), calc(var(--field-step-three-y) + var(--motion-step-three-y)), 0);bottom:5%;left:42%}.landing-copy{animation:.42s ease-out both page-rise}.landing-preview{animation:.52s ease-out 90ms both preview-rise}.landing-band article{animation:.42s ease-out both page-rise}.landing-band article:nth-child(2){animation-delay:70ms}.landing-band article:nth-child(3){animation-delay:.14s}.landing-copy h1{max-width:720px;color:var(--text-strong);font-family:var(--heading);text-wrap:balance;margin:0;font-size:clamp(3rem,5.8vw,5.4rem);line-height:.98}.landing-copy p{max-width:650px;color:var(--muted-text);text-wrap:pretty;margin:20px 0 0;font-size:1.08rem;line-height:1.7}.landing-trust{flex-wrap:wrap;gap:8px;margin-top:22px}.landing-trust span{min-height:36px;color:var(--blue-dark);background:#f5fbff;border:1px solid #d5e8f1;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:.86rem;font-weight:900;display:inline-flex}.landing-trust svg{color:var(--green-dark)}.landing-cta{flex-wrap:wrap;margin-top:28px}.landing-reassurance{max-width:540px;color:var(--muted-text);margin:12px 0 0;font-size:.93rem;font-weight:800;line-height:1.5}.landing-reassurance button{min-height:0;color:var(--blue-dark);font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:0;border-radius:0;padding:0;text-decoration:underline;text-decoration-thickness:1px;display:inline}.landing-reassurance button:hover,.landing-reassurance button:focus-visible{color:var(--green-dark)}.landing-preview{border:1px solid var(--border);transform:translate3d(var(--preview-x), calc(var(--preview-y) + var(--scroll-preview-y) + var(--preview-lift)), 0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;will-change:transform;background:#fff;border-radius:8px;gap:12px;padding:16px;transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .24s;display:grid;box-shadow:0 10px 26px #0d547614}.landing-preview:hover{--preview-lift:-2px;box-shadow:0 14px 30px #0d54761a}.preview-bar{border-bottom:1px solid var(--border);justify-content:space-between;gap:14px;padding-bottom:12px}.preview-bar>div{align-items:center;gap:12px;min-width:0;display:flex}.preview-mark{color:#fff;background:var(--blue-dark);border-radius:8px;flex:none;place-items:center;width:44px;height:44px;display:grid}.preview-bar strong{color:var(--text-strong);font-family:var(--heading);font-size:1.28rem;display:block}.preview-bar small{color:var(--blue-dark);font-weight:900}.preview-bar>small{color:var(--green-dark);background:#eefaf4;border-radius:999px;flex:none;padding:7px 10px;font-size:.78rem}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.preview-grid article{border:1px solid var(--border);min-height:126px;transform:translate3d(var(--parallax-x,0px), var(--parallax-y,0px), 0);will-change:transform;background:#f8fcff;border-radius:8px;gap:8px;padding:14px;transition:transform .21s cubic-bezier(.22,1,.36,1),border-color .19s,box-shadow .19s;display:grid}.preview-grid article:hover{border-color:#cfe8f1;box-shadow:0 14px 26px #12557814}.preview-depth-1{--parallax-x:var(--depth-1-x);--parallax-y:calc(var(--depth-1-y) + var(--scroll-depth-1-y))}.preview-depth-2{--parallax-x:var(--depth-2-x);--parallax-y:calc(var(--depth-2-y) + var(--scroll-depth-2-y))}.preview-depth-3{--parallax-x:var(--depth-3-x);--parallax-y:calc(var(--depth-3-y) + var(--scroll-depth-3-y))}.preview-depth-4{--parallax-x:var(--depth-4-x);--parallax-y:calc(var(--depth-4-y) + var(--scroll-depth-4-y))}.preview-depth-5{--parallax-x:var(--depth-5-x);--parallax-y:calc(var(--depth-5-y) + var(--scroll-depth-5-y))}.preview-depth-6{--parallax-x:var(--depth-6-x);--parallax-y:calc(var(--depth-6-y) + var(--scroll-depth-6-y))}.preview-grid svg{color:var(--green-dark)}.preview-grid span{color:var(--muted-text);font-weight:800}.preview-grid strong{color:var(--text-strong);font-family:var(--heading);font-size:clamp(1.3rem,2.2vw,1.72rem);line-height:1.1}.preview-snapshot{color:var(--text-strong);transform:translate3d(var(--parallax-x,0px), var(--parallax-y,0px), 0);background:#f7fffb;border:1px solid #c5ecd9;border-radius:8px;justify-content:space-between;gap:14px;padding:14px;transition:transform .21s cubic-bezier(.22,1,.36,1),border-color .19s,background-color .19s;position:relative;overflow:hidden}.preview-snapshot-meal{background:#f5fbff;border-color:#cfe7f3}.preview-snapshot span{color:var(--blue-dark);font-weight:900}.preview-snapshot strong{flex:1}.landing-band{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:min(100%,1440px);margin:0 auto;padding-bottom:6px;display:grid}.landing-band article{border:1px solid var(--border);background:#fff;border-radius:8px;gap:10px;padding:18px;transition:transform .19s,border-color .19s,box-shadow .19s;display:grid;position:relative;overflow:hidden}.landing-band article:after{content:"";background:linear-gradient(90deg, var(--green), var(--blue));transform-origin:0;border-radius:999px 999px 0 0;height:3px;transition:transform .22s;position:absolute;inset:auto 16px 0;transform:scaleX(0)}.landing-band article:hover{border-color:#cfe8f1;transform:translateY(-2px);box-shadow:0 14px 24px #12557814}.landing-band article:hover:after{transform:scaleX(1)}.landing-band svg{color:var(--blue-dark)}.landing-band h2{color:var(--text-strong);font-family:var(--heading);margin:0;font-size:1.32rem}.landing-band p{color:var(--muted-text);margin:0;line-height:1.55}.landing-how-it-works{padding-bottom:0}.landing-step-number{color:#fff;background:var(--blue-dark);width:34px;height:34px;font-family:var(--heading);border-radius:999px;place-items:center;font-size:.95rem;font-weight:900;display:inline-grid}.landing-footer{width:min(100%,1440px);color:var(--muted-text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:8px 0 2px;font-size:.9rem;font-weight:800;display:flex}.landing-footer div{flex-wrap:wrap;gap:14px;display:flex}}@layer auth{.auth-shell{place-items:center;padding-block:48px;display:grid}.auth-card{border:1px solid var(--border);width:min(100%,520px);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;gap:18px;padding:28px;display:grid}.onboarding-shell{min-height:100vh}.onboarding-card{width:min(100%,860px)}.onboarding-topline{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.onboarding-steps{border:1px solid var(--border);background:linear-gradient(135deg,#f5fffa,#eef8ff);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0;padding:6px;display:grid}.onboarding-steps span{min-height:44px;color:var(--muted-text);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:.86rem;font-weight:900;display:flex}.onboarding-steps strong{width:24px;height:24px;color:var(--blue-dark);background:#fff;border-radius:999px;place-items:center;display:grid}.onboarding-steps span.active{color:var(--text-strong);box-shadow:var(--shadow-soft);background:#fff}.onboarding-steps span.active strong{color:#fff;background:linear-gradient(135deg, var(--green), var(--blue))}.onboarding-step-panel{border:1px solid var(--border);background:#fff;border-radius:8px;gap:16px;padding:16px;animation:.22s ease-out both tab-content-in;display:grid}.onboarding-step-panel h2{color:var(--text-strong);font-family:var(--heading);margin:0;font-size:2rem;line-height:1}.onboarding-step-panel p{color:var(--muted-text);margin:8px 0 0;line-height:1.55}.onboarding-field-grid{margin-top:0}.onboarding-goal-list,.onboarding-routine-grid{gap:10px;display:grid}.onboarding-goal-row{border:1px solid var(--border);background:#fbfdfe;border-radius:8px;grid-template-columns:minmax(160px,.8fr) minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.onboarding-goal-row label,.onboarding-time-grid label{color:var(--text-strong);gap:7px;font-size:.88rem;font-weight:800;display:grid}.onboarding-goal-row>span{gap:4px;min-width:0;display:grid}.onboarding-goal-row strong{color:var(--blue-dark)}.onboarding-goal-row small{color:var(--muted-text);font-weight:800;line-height:1.4}.onboarding-goal-row .ghost-button{min-height:38px}.onboarding-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.onboarding-days-field{border:1px solid var(--border);background:#fbfdfe;border-radius:8px;padding:12px}.onboarding-save-state{color:var(--muted-text);margin:0;font-size:.86rem;font-weight:800}.onboarding-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.settings-onboarding-card{align-content:start}.legal-shell{place-items:start center;padding-block:20px;display:grid}.legal-card,.legal-panel{gap:14px;display:grid}.legal-card{border:1px solid var(--border);width:min(100%,920px);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;padding:20px}.legal-content{gap:14px;display:grid}.legal-tabs{background:var(--surface-blue);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:8px;padding:6px;display:flex}.legal-tabs button{min-height:42px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;padding:9px 12px;font-weight:900}.legal-tabs button:hover,.legal-tabs button:focus-visible,.legal-tabs button.active{color:var(--blue-dark);border-color:var(--border);background:#fff}.legal-heading,.legal-section-list,.legal-section{gap:8px;display:grid}.legal-heading h2,.legal-section h3{color:var(--text-strong);font-family:var(--heading);margin:0}.legal-heading h2{font-size:clamp(1.7rem,3vw,2.5rem)}.legal-heading p,.legal-cross-link{color:var(--muted-text);margin:0;font-size:.94rem;line-height:1.5}.legal-section{border:1px solid var(--border);background:#fbfdfe;border-radius:8px;padding:12px}.legal-section ul{color:var(--text);gap:7px;margin:0;padding-left:18px;font-size:.94rem;line-height:1.5;display:grid}.auth-back{color:var(--blue-dark);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:900}.auth-brand{gap:12px}.auth-brand h1{color:var(--text-strong);font-family:var(--heading);margin:0;font-size:clamp(2.2rem,7vw,3.6rem);line-height:.95}.auth-copy{color:var(--muted-text);margin:0;line-height:1.65}.auth-tabs{background:var(--surface-blue);border-radius:8px;gap:6px;padding:4px}.auth-tabs button{min-height:42px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:8px;font-weight:800;transition:background .18s,border-color .18s,color .18s,transform .18s;display:flex}.auth-tabs button.active{color:var(--blue-dark);border-color:var(--border);background:#fff}.auth-form{gap:12px;display:grid}.auth-mfa{background:var(--surface-blue);border:1px solid var(--border);border-radius:10px;gap:12px;padding:14px;display:grid}.auth-mfa h2,.auth-mfa p{margin:0}.auth-mfa h2{color:var(--text-strong);font-family:var(--heading);font-size:1.08rem}.auth-mfa p{color:var(--muted-text);margin-top:4px;font-size:.88rem;line-height:1.45}.auth-mfa .auth-error,.auth-mfa .auth-success{margin:0}.auth-mfa-controls{gap:10px;display:grid}.auth-mfa-controls label{gap:7px;display:grid}.auth-mfa-controls input,.auth-mfa-controls select{min-height:46px;color:var(--text-strong);border:1px solid var(--border-strong);font:inherit;background:#fff;border-radius:8px;padding:0 12px}.auth-mfa-submit{width:100%}.auth-form label{color:var(--text-strong);gap:7px;font-size:.88rem;font-weight:800;display:grid}.auth-form label span{border:1px solid var(--border-strong);background:#fff;border-radius:8px;gap:10px;padding:0 12px}.auth-form label span svg{color:var(--blue-dark);flex:none}.auth-form input{border:0;padding-inline:0}.password-input-shell{border:1px solid var(--border-strong);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:46px;padding:0 0 0 12px;display:flex}.password-input-shell input{border:0;flex:auto;min-width:0;padding-inline:0}.password-toggle{width:44px;min-width:44px;min-height:44px;color:var(--blue-dark);border:0;border-left:1px solid var(--border);cursor:pointer;background:0 0;border-radius:0 8px 8px 0;place-items:center;padding:0;display:grid}.password-toggle:focus-visible{outline-offset:2px;outline:3px solid #0d84b847}.auth-hint{color:var(--muted-text);font-size:.78rem;font-weight:800}.auth-inline-action{min-height:44px;color:var(--blue-dark);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;justify-self:start;padding:0;font-weight:900;text-decoration:underline}.auth-submit{width:100%;margin-top:4px}.auth-error,.auth-success,.auth-warning{border-radius:8px;margin:0;padding:11px 12px;font-weight:800}.auth-error{color:#b42331;background:#fff5f5;border:1px solid #ffd7d7}.auth-success{color:var(--green-dark);background:var(--surface-green);border:1px solid #bce8d5}.auth-warning{color:#915d00;background:#fff8e6;border:1px solid #f4d58d}.auth-legal-copy{color:var(--muted-text);margin:-2px 0 0;font-size:.88rem;line-height:1.55}.auth-legal-copy button,.landing-footer button,.legal-cross-link button,.settings-legal-links button{color:var(--blue-dark);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}}@layer components{.primary-action,.button-blue{background:linear-gradient(135deg, var(--green), var(--green-dark));box-shadow:0 14px 30px #083d1f38}.button-green{background:linear-gradient(135deg, #1a6b37, var(--green-dark));box-shadow:0 14px 30px #083d1f38}.button-danger{background:linear-gradient(135deg,#b42331,#8f1725);box-shadow:0 14px 30px #b4233133}.danger-button{color:#b42331;background:#fff5f5;border-color:#fecdd3}.primary-action:hover,.primary-action:focus-visible,.button:hover,.button:focus-visible,.ghost-button:hover,.ghost-button:focus-visible,.icon-button:hover,.icon-button:focus-visible,.water-cup:hover,.water-cup:focus-visible{transform:translateY(-1px)}.primary-action:hover,.primary-action:focus-visible,.button:hover,.button:focus-visible{border-color:#ffffff7a}.ghost-button:hover,.ghost-button:focus-visible,.water-cup:hover,.water-cup:focus-visible,.auth-tabs button:hover,.auth-tabs button:focus-visible,.mobile-bottom-tab:hover,.mobile-bottom-tab:focus-visible,.mobile-more-menu button:hover,.mobile-more-menu button:focus-visible,.mobile-log-fab:hover,.mobile-log-fab:focus-visible,.weekday-tabs button:hover,.weekday-tabs button:focus-visible,.input-mode-tabs button:hover,.input-mode-tabs button:focus-visible,.recommendation-tabs button:hover,.recommendation-tabs button:focus-visible,.settings-tabs button:hover,.settings-tabs button:focus-visible{border-color:#c8dfc0}.icon-button:hover,.icon-button:focus-visible{border-color:#fda4af}.job-days-field label:hover,.job-days-field label:focus-within,.checkbox-group label:hover,.checkbox-group label:focus-within{border-color:#8ccde2}.primary-action:active,.button:active,.ghost-button:active,.icon-button:active,.water-cup:active,.nav-links button:active,.mobile-bottom-tab:active,.mobile-more-menu button:active,.mobile-log-fab:active,.auth-tabs button:active,.weekday-tabs button:active,.nutrition-tab-trigger:active,.input-mode-tabs button:active,.recommendation-tabs button:active,.settings-tabs button:active,.food-search-result:active{transform:translateY(0)scale(.985)}.primary-action:focus-visible,.button:focus-visible,.ghost-button:focus-visible,.icon-button:focus-visible,.water-cup:focus-visible,.nav-links button:focus-visible,.mobile-bottom-tab:focus-visible,.mobile-more-menu button:focus-visible,.mobile-log-fab:focus-visible,.brand:focus-visible,.auth-tabs button:focus-visible,.weekday-tabs button:focus-visible,.nutrition-tab-trigger:focus-visible,.input-mode-tabs button:focus-visible,.recommendation-tabs button:focus-visible,.settings-tabs button:focus-visible,.food-search-result-main:focus-visible,.job-days-field label:focus-within,.checkbox-group label:focus-within,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #0f4f2947}.intro{grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:24px;width:min(100%,1440px);margin:0 auto 14px;padding:14px 0 4px;display:grid}.date-label,.eyebrow{color:var(--green-dark);text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:800}.intro h1{max-width:780px;color:var(--text-strong);font-family:var(--heading);letter-spacing:0;margin:0;font-size:clamp(2.65rem,5vw,4.5rem);line-height:.98}.intro-copy{max-width:680px;color:var(--muted-text);margin:10px 0 0;font-size:1.12rem}.hero-score{border:1px solid var(--border);background:linear-gradient(135deg,#f5fffa,#eef8ff);border-radius:8px;grid-template-columns:auto 1fr;align-self:end;align-items:center;gap:18px;min-height:128px;padding:18px;display:grid}.hero-score strong{color:var(--text-strong);font-size:1.2rem;display:block}.hero-score p{color:var(--muted-text);margin:6px 0 0}.score-ring,.donut{border-radius:999px;place-items:center;display:grid}.score-ring{background:conic-gradient(var(--green) 0 var(--score-ring-fill,0%), #dff3eb var(--score-ring-fill,0%) 100%);width:112px;height:112px;color:var(--text-strong);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.score-ring:before{content:"";border-radius:inherit;background:#fff;position:absolute;inset:11px}.score-ring span{font-family:var(--heading);z-index:1;font-size:2.45rem;font-weight:800;line-height:1;position:relative}.score-ring small{color:var(--muted-text);z-index:1;font-size:.76rem;font-weight:800;position:relative}}@layer dashboard{.metric-grid,.dashboard-grid{width:min(100%,1440px);margin-inline:auto;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.metric-card,.panel{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px}.dashboard-page-skeleton{text-align:center;align-content:center;place-items:center;gap:12px;min-height:220px;display:grid}.dashboard-page-skeleton h2{color:var(--text-strong);font-family:var(--heading);margin:0}.metric-card{min-height:164px;padding:18px;transition:transform .19s,box-shadow .19s,border-color .19s;animation:.36s ease-out both page-rise;position:relative;overflow:hidden}.metric-card:after{content:"";opacity:0;pointer-events:none;background:radial-gradient(circle at 22% 18%,#8bffae29,#0000 34%);transition:opacity .19s;position:absolute;inset:0}.metric-card:nth-child(2){animation-delay:45ms}.metric-card:nth-child(3){animation-delay:90ms}.metric-card:nth-child(4){animation-delay:.135s}.metric-card:hover{border-color:#cfe8f1;transform:translateY(-2px);box-shadow:0 18px 34px #1255781a}.metric-card:hover:after{opacity:1}.metric-top{justify-content:space-between;gap:10px}.metric-top>span{border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.metric-top svg{width:21px;height:21px}.metric-top small,.panel-action,.log-row small{color:var(--muted-text);font-size:.82rem;font-weight:700}.metric-value{align-items:baseline;gap:7px;margin-top:12px;display:flex}.metric-value strong{color:var(--text-strong);font-family:var(--heading);font-size:2.3rem;line-height:1}.metric-value span{color:var(--muted-text);font-size:.92rem;font-weight:700}.metric-card p{min-height:36px;color:var(--muted-text);margin:7px 0 12px}.food-entry-card{border:1px solid var(--border);border-radius:8px}.metric-green .metric-top>span{color:var(--green-dark);background:var(--surface-green)}.metric-blue .metric-top>span{color:var(--blue-dark);background:var(--surface-blue)}.metric-indigo .metric-top>span{color:#315bc2;background:#eef3ff}.metric-teal .metric-top>span{color:#08766e;background:#e6f8f4}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:14px}.log-section-switcher{box-shadow:none;background:0 0;border:0;border-bottom:1px solid #dce9e1;border-radius:0;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;display:grid}.log-section-tab{min-height:52px;color:var(--muted-text);font:inherit;background:0 0;border:0;border-radius:10px 10px 0 0;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}.log-section-tab:hover,.log-section-tab:focus-visible{color:var(--green-dark);background:#f1f8f0}.log-section-tab.active{color:var(--green-dark);box-shadow:inset 0 -3px 0 var(--green);background:#eef8ec}.log-section-tab.food.active{background:#eef8ec}.log-section-tab.training.active{color:#08766e;background:#e9f8f5;box-shadow:inset 0 -3px #08766e}.log-section-tab.sleep.active{color:#315bc2;background:#eef3ff;box-shadow:inset 0 -3px #315bc2}.log-page{background:radial-gradient(circle at 2% 9%,#e6f4e1c2,#0000 19rem),radial-gradient(circle at 99% 92%,#e6f3f8b8,#0000 19rem),#fbfdfb;gap:18px;padding:clamp(18px,2.5vw,30px);display:grid}.log-page-hero{justify-content:space-between;align-items:end;gap:18px;padding:4px clamp(2px,1vw,8px);display:flex}.log-page-hero h1,.log-page-hero p{margin:0}.log-page-hero h1{color:var(--text-strong);font-family:var(--heading);letter-spacing:-.035em;margin-top:5px;font-size:clamp(2rem,4vw,3.1rem);line-height:.98}.log-page-hero p{max-width:620px;color:var(--muted-text);margin-top:10px;line-height:1.5}.log-page-date{color:var(--text-strong);background:#fff;border:1px solid #d4e5dc;border-radius:10px;flex:none;align-items:center;gap:8px;padding:10px 13px;font-size:.86rem;font-weight:850;display:inline-flex;box-shadow:0 7px 17px #19462e0d}.panel{grid-column:span 4;padding:20px;animation:.36s ease-out both page-rise}.panel-large{grid-column:span 8;animation:.26s cubic-bezier(.22,1,.36,1) both panel-enter}.page-wide{grid-column:1/-1}.panel-header{justify-content:space-between;gap:16px;margin-bottom:18px}.panel-header>div{gap:10px}.panel-icon,.progress-icon,.log-icon{color:var(--blue-dark);background:var(--surface-blue);border-radius:8px;flex:none;place-items:center;display:grid}.panel-icon{width:40px;height:40px}.panel h2{color:var(--text-strong);font-family:var(--heading);margin:0;font-size:1.5rem;line-height:1.1}.panel-action{background:var(--surface-green);border-radius:999px;padding:7px 10px}.split-row{grid-template-columns:minmax(240px,.85fr) minmax(300px,1.15fr);align-items:start;gap:18px;display:grid}.donut{background:conic-gradient(var(--green) 0 calc(var(--value) * 1%), #dff3eb 0);flex:0 0 112px;width:112px;height:112px;box-shadow:inset 0 0 0 14px #fff}.donut span{color:var(--text-strong);font-family:var(--heading);font-size:1.85rem;font-weight:800}.mini-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.mini-form label,.field-grid label,.slider-stack label,.steps-field{color:var(--text-strong);gap:7px;font-size:.88rem;font-weight:800;display:grid}input,select,textarea{box-sizing:border-box;width:100%;min-height:44px;color:var(--text-strong);border:1px solid var(--border-strong);font:700 .95rem/1.2 var(--sans);background:#fff;border-radius:8px;padding:10px 12px}textarea{resize:vertical;min-height:116px}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--blue-dark) 50%), linear-gradient(135deg, var(--blue-dark) 50%, transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.mini-form .button{align-self:end}.weekday-tabs{background:var(--surface-blue);border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:16px;padding:4px;display:grid}.week-navigator{border:1px solid var(--border);background:#fbfdfe;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:12px;padding:10px;display:grid}.week-navigator>strong{color:var(--text-strong);text-align:center;font-family:var(--heading);font-size:1.25rem}.week-navigator>div{justify-content:flex-end;gap:8px;display:flex}.weekday-tabs button{min-height:52px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;gap:3px;transition:background .18s,color .18s,transform .18s,box-shadow .18s;display:grid}.weekday-tabs button:hover,.weekday-tabs button:focus-visible{transform:translateY(-1px)}.weekday-tabs button.active{color:var(--blue-dark);background:#fff;box-shadow:0 10px 22px #0d84b81a}.weekday-tabs span{font-weight:900}.weekday-tabs small{font-weight:800}.food-list,.exercise-list,.slider-stack{gap:10px;display:grid}.input-mode-tabs,.recommendation-tabs,.settings-tabs{background:var(--surface-blue);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:8px;padding:6px;display:flex}.input-mode-tabs button,.recommendation-tabs button,.settings-tabs button{min-height:42px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:8px;padding:9px 12px;font-weight:900;display:inline-flex}.input-mode-tabs button:hover,.input-mode-tabs button:focus-visible,.input-mode-tabs button.active,.recommendation-tabs button:hover,.recommendation-tabs button:focus-visible,.recommendation-tabs button.active,.settings-tabs button:hover,.settings-tabs button:focus-visible,.settings-tabs button.active{color:var(--blue-dark);border-color:var(--border);background:#fff}.empty-meal{color:var(--muted-text);margin:0;font-weight:800}.log-row{border:1px solid var(--border);border-radius:8px;gap:12px;min-height:68px;padding:10px;transition:transform .18s,border-color .18s,box-shadow .18s;animation:.22s ease-out both soft-reveal}.log-row:hover{border-color:#cfe8f1;transform:translateY(-1px);box-shadow:0 12px 22px #12557812}.log-row-editable{cursor:pointer}.log-row.editing{background:#f4fbff;border-color:#8ccde2}.log-icon,.progress-icon{width:40px;height:40px}.log-row>div{flex:auto;min-width:0}.log-row strong,.log-row small{overflow-wrap:anywhere;display:block}.log-row strong{color:var(--text-strong)}.log-value{color:var(--green-dark);flex:none;font-weight:900}.log-row-actions{flex:none;gap:6px;display:flex}.icon-button{color:#b42331;background:#fff5f5;border:1px solid #ffd7d7;border-radius:8px;place-items:center;width:44px;padding:0;display:grid}.icon-button-edit{color:var(--blue-dark);background:#f4fbff;border-color:#cbeeff}.icon-button-edit:hover,.icon-button-edit:focus-visible{border-color:#8ccde2}.field-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.input-unit{border:1px solid var(--border-strong);border-radius:8px;grid-template-columns:minmax(0,1fr) 42px;align-items:center;display:grid}.input-unit input{border:0}.input-unit small{color:var(--muted-text);text-align:center;font-weight:900}.height-selects{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ghost-button{color:var(--blue-dark);border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:9px 12px;font-weight:900}.slider-stack label{border:1px solid var(--border);background:#fbfdfe;border-radius:8px;padding:12px}input[type=range]{min-height:28px;accent-color:var(--green);border:0;padding:0}.slider-stack span{color:var(--muted-text);font-weight:800}.progress-item{border-bottom:1px solid var(--border);gap:12px;padding:10px 0}.progress-item>div{flex:1}.progress-label{justify-content:space-between;gap:12px;margin-bottom:8px}.progress-label strong{color:var(--text-strong)}.progress-label span{color:var(--muted-text);font-weight:800}.progress-bar{background:#eaf2f5;border-radius:999px;width:100%;height:9px;position:relative;overflow:hidden}.progress-bar span{background:linear-gradient(90deg, var(--green), var(--blue));border-radius:inherit;transform-origin:0;height:100%;animation:.62s cubic-bezier(.22,1,.36,1) both progress-fill-in;display:block;position:relative;overflow:hidden}.steps-field{margin-top:16px}.checkmark{color:#fff;background:var(--green);border-radius:999px;flex:0 0 28px;place-items:center;width:28px;height:28px;transition:transform .18s,background-color .18s;display:grid}@keyframes coach-spin{to{transform:rotate(1turn)}}@keyframes upload-sweep{0%{opacity:0;transform:translate(-120%)}35%{opacity:1}to{opacity:0;transform:translate(120%)}}@keyframes progress-fill-in{0%{transform:scaleX(.08)}to{transform:scaleX(1)}}@keyframes current-pulse{0%,to{opacity:.72}50%{opacity:1}}@keyframes check-pop{0%{transform:scale(.86)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes page-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes preview-rise{0%{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur()}}@keyframes soft-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tab-content-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ai-pulse{0%,to{box-shadow:0 0 #0f9f682e}50%{box-shadow:0 0 0 10px #0d84b814}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:.01ms!important}.brand:hover .brand-mark,.brand:focus-visible .brand-mark,.nav-links button:hover,.nav-links button:focus-visible,.mobile-bottom-tab:hover,.mobile-bottom-tab:focus-visible,.mobile-more-menu button:hover,.mobile-more-menu button:focus-visible,.landing-preview:hover,.landing-preview,.motion-line,.motion-step,.preview-snapshot,.preview-grid article:hover,.preview-grid article,.metric-card:hover,.weekday-tabs button:hover,.weekday-tabs button:focus-visible,.nutrition-tab-trigger:hover,.nutrition-tab-trigger:focus-visible,.recent-foods-strip button:hover,.recent-foods-strip button:focus-visible,.food-search-result:hover,.log-row:hover{transform:none!important}}@media (width<=1180px){.landing-hero{grid-template-columns:1fr;min-height:auto}.landing-preview{max-width:760px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.panel-large{grid-column:span 6}.intro{grid-template-columns:1fr}.hero-score{align-self:stretch}}@media (width<=860px){.app-shell{padding:14px}.app-dashboard-shell{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.landing-nav{flex-direction:column;align-items:flex-start}.landing-actions{width:100%}.landing-actions .button,.landing-actions .ghost-button{flex:1}.landing-hero{gap:24px;padding:22px 0}.landing-band{grid-template-columns:1fr}.weekday-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.nutrition-panel .weekday-tabs{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-template-columns:none;display:flex;overflow-x:auto}.nutrition-panel .weekday-tabs::-webkit-scrollbar{display:none}.nutrition-panel .weekday-tabs button{scroll-snap-align:start;flex:0 0 72px;min-width:72px}.week-navigator{grid-template-columns:1fr}.week-navigator>div{justify-content:stretch}.week-navigator .ghost-button{width:100%}.nutrition-tab-list{flex-direction:column}.nutrition-tab-trigger{justify-content:flex-start}.body-metrics-tab,.weekly-food-log,.sleep-form-grid,.recommendation-form,.food-search-form,.food-search-result,.vision-actions{grid-template-columns:1fr}.topbar{flex-wrap:wrap;margin-bottom:16px;position:static}.topbar .nav-links{display:none}.mobile-bottom-nav{z-index:40;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border-radius:28px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 10px 28px #083d1f24}.mobile-bottom-tab{min-width:0;min-height:52px;color:var(--muted-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-size:.72rem;font-weight:900;transition:transform .18s,border-color .18s,background-color .18s,color .18s;display:flex}.mobile-bottom-tab svg{flex:none}.mobile-bottom-tab:hover,.mobile-bottom-tab:focus-visible{transform:translateY(-1px)}.mobile-bottom-tab.active{color:#fff;background:var(--green);border-color:var(--green)}.mobile-bottom-tab.active svg{color:#fff}.mobile-more-menu{right:14px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:45;border:1px solid var(--border);max-width:440px;box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;gap:8px;margin-left:auto;padding:10px;display:grid;position:fixed;left:14px}.mobile-more-menu button{min-height:48px;color:var(--text-strong);text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-weight:900;transition:transform .18s,border-color .18s,background-color .18s,color .18s;display:flex}.mobile-more-menu button:hover,.mobile-more-menu button:focus-visible{transform:translateY(-1px)}.mobile-more-menu button.active{color:#fff;background:var(--green);border-color:var(--green)}.primary-action{margin-left:auto}.intro{padding-top:12px}.intro h1{font-size:2.75rem}.metric-grid,.dashboard-grid,.split-row,.upload-card,.coach-grid,.settings-grid,.body-insight-grid,.memory-layout,.memory-form-grid,.mini-form,.exercise-form,.job-schedule-form{grid-template-columns:1fr}.nutrition-entry-row .food-entry-card{order:-1}.coach-compose-card,.coach-output,.coach-empty-state{min-height:auto}.coach-result-header{flex-direction:column}.onboarding-topline,.onboarding-goal-row{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.onboarding-steps,.onboarding-time-grid{grid-template-columns:1fr}.coach-result-header .email-recommendation{justify-content:center;width:100%}.panel,.panel-large{grid-column:1/-1}.mini-form .button,.exercise-form .button,.job-schedule-form .button{width:100%}.onboarding-actions .button,.onboarding-actions .ghost-button,.input-mode-tabs button,.recommendation-tabs button,.settings-tabs button{flex:100%}}@media (width<=560px){.brand{width:100%}.landing-actions,.landing-cta{flex-direction:column}.landing-actions .button,.landing-actions .ghost-button,.landing-cta .button,.landing-cta .ghost-button{width:100%}.landing-copy h1{font-size:3rem}.preview-bar{flex-direction:column;align-items:flex-start}.preview-bar>small{align-self:flex-start}.preview-grid{grid-template-columns:1fr}.weekday-tabs,.sleep-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.primary-action{width:100%}.topbar .nav-links{display:none}.nutrition-panel .weekday-tabs{grid-template-columns:none;display:flex}.nutrition-panel .weekday-tabs button{flex:0 0 72px}.metric-grid{grid-template-columns:1fr}.hero-score,.recognition-result,.calorie-focus{grid-template-columns:1fr;justify-items:start}.recognition-result,.calorie-focus{flex-direction:column;align-items:flex-start}.field-grid,.water-tracker{grid-template-columns:1fr 1fr}.panel-header{flex-direction:column;align-items:flex-start}.log-page{padding:16px}.log-page-hero{flex-direction:column;align-items:flex-start}.log-page-date{justify-content:center;width:100%}.log-row{grid-template-columns:auto minmax(0,1fr) auto;display:grid}.log-value{grid-column:2}.log-row-actions{grid-area:1/3/span 2}.job-shift-item{grid-template-columns:minmax(0,1fr) auto}.job-shift-title{grid-column:1/-1}}}@layer feature{.coach-page{grid-template-rows:auto minmax(0,1fr);gap:12px;width:min(100%,900px);height:calc(100dvh - 142px);min-height:360px;margin:0 auto;padding:0;display:grid}.coach-page-hero{align-items:center;gap:16px;padding:8px 4px;display:flex}.coach-avatar,.coach-message-avatar{color:#fff;background:radial-gradient(circle at 70% 24%, var(--lime) 0 12%, transparent 13%), linear-gradient(145deg, var(--green), var(--green-dark));font-family:var(--heading);letter-spacing:-.05em;box-shadow:none;flex:none;place-items:center;font-weight:900;display:grid}.coach-avatar{border:4px solid #fff;border-radius:50%;width:48px;height:48px;font-size:1.2rem}.coach-kicker{color:var(--green);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:900;display:block}.coach-page-hero h1,.coach-page-hero p{margin:0}.coach-page-hero h1{color:var(--text-strong);font-family:var(--heading);margin-top:2px;font-size:clamp(1.5rem,3vw,2rem);line-height:1.02}.coach-page-hero p{color:var(--muted-text);margin-top:6px}.coach-chat-shell{border:1px solid var(--border);min-height:0;box-shadow:none;background:#ffffffdb;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.coach-message-list{flex:1;align-content:start;gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.coach-message{align-items:flex-end;gap:9px;max-width:min(88%,660px);display:flex}.coach-message p{color:var(--text-strong);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:15px 17px;font-size:1rem;font-weight:400;line-height:1.48}.coach-message-assistant p{box-shadow:none;background:#fff;border:1px solid #083d1f1c;border-radius:20px 20px 20px 6px}.coach-message-member{justify-self:end}.coach-message-member p{color:var(--green-ink);background:#e8f4df;border:1px solid #cceabd;border-radius:20px 20px 6px}.coach-message-avatar{border:2px solid #fff;border-radius:50%;width:34px;height:34px;font-size:.68rem}.coach-message-error p{color:#8a2531;background:#fff7f7;border-color:#ffd6d8}.coach-message-mode{width:fit-content;color:var(--green);background:var(--surface-green);letter-spacing:.01em;border:1px solid #d2e9c9;border-radius:999px;margin:-2px 0 8px;padding:3px 7px;font-size:.69rem;font-weight:600;display:block}.coach-message:has(.coach-action-preview){flex-wrap:wrap;align-items:flex-start}.coach-action-preview{width:min(100%,480px);color:var(--text-strong);background:#eef9e6;border:1px solid #cde7bf;border-radius:14px;margin:-6px 0 0 43px;padding:13px}.coach-action-preview strong{color:var(--green-dark);font-size:.9rem;display:block}.coach-action-preview p{color:var(--muted-text);box-shadow:none;background:0 0;border:0;margin:7px 0 0;padding:0;font-size:.84rem;font-weight:500}.coach-action-preview pre{color:var(--green-ink);white-space:pre-wrap;background:#ffffffb8;border-radius:9px;margin:9px 0 0;padding:9px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.45;overflow:auto}.coach-action-preview>div{flex-wrap:wrap;gap:8px;margin-top:11px;display:flex}.coach-action-preview button{color:#fff;background:var(--green);cursor:pointer;min-height:38px;font:inherit;border:0;border-radius:9px;padding:8px 12px;font-size:.82rem;font-weight:600}.coach-action-preview button:disabled{opacity:.65;cursor:wait}.coach-action-preview .coach-action-dismiss{color:var(--muted-text);background:#fff;border:1px solid #cde1c5}.coach-action-preview .coach-action-error{color:#a12b38}.coach-generated-plan{color:var(--text-strong);background:#f6fbf2;border:1px solid #d5e9c8;border-radius:10px;gap:8px;margin-top:10px;padding:10px;font-size:.83rem;line-height:1.45;display:grid}.coach-generated-plan p,.coach-generated-plan ul{margin:0}.coach-generated-plan ul{padding-left:18px}.coach-plan-day{border-top:1px solid #083d1f1a;padding-top:8px}.coach-plan-day:first-of-type{border-top:0;padding-top:0}.coach-plan-day p{margin-top:3px}.coach-plan-focus,.coach-plan-groceries{color:#355e3b;font-weight:500}.coach-plan-email{border-top:1px solid #083d1f1a;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.coach-plan-email button{min-height:36px}.coach-plan-email p{color:#355e3b;font-size:.78rem;font-weight:750}.coach-stream-caret{vertical-align:-.18em;background:var(--green);width:.11em;height:1.05em;margin-left:.12em;animation:.78s step-end infinite coach-caret;display:inline-block}.coach-message-interrupted{color:#8a2531;margin:3px 0 0 43px;font-size:.75rem;font-weight:750}.coach-message-loading{align-items:center}.coach-typing{background:#fff;border:1px solid #083d1f1c;border-radius:20px 20px 20px 6px;gap:5px;padding:15px 18px;display:flex}.coach-typing i{background:var(--green);border-radius:999px;width:7px;height:7px;animation:1s ease-in-out infinite coach-pulse;display:block}.coach-typing i:nth-child(2){animation-delay:.12s}.coach-typing i:nth-child(3){animation-delay:.24s}.coach-starters{flex-wrap:wrap;flex-shrink:0;gap:8px;padding:0 16px 12px;display:flex}.coach-starters button{min-height:44px;color:var(--green);background:var(--surface-green);cursor:pointer;font:inherit;border:1px solid #d2e9c9;border-radius:999px;flex-shrink:0;justify-content:space-between;align-items:center;gap:7px;padding:8px 12px;font-size:.86rem;font-weight:600;transition:transform .16s,background .16s,border-color .16s;display:flex}.coach-starters button span{align-items:center;gap:7px;display:flex}.coach-starters button:hover,.coach-starters button:focus-visible{background:#e4f7d7;border-color:#acd99b;transform:translateY(-1px)}.coach-composer{border:1px solid var(--border);box-shadow:none;background:#fff;border-radius:10px;flex-shrink:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:5px;margin:0 16px 16px;padding:5px;display:grid}.coach-composer input{min-width:0;min-height:45px;color:var(--text-strong);font:inherit;background:0 0;border:0;padding:0 7px;font-weight:400}.coach-composer input:focus{outline:0}.coach-composer:focus-within{border-color:var(--brand);outline:2px solid var(--brand);outline-offset:2px}.coach-composer:not(:has(.coach-composer-mic)){grid-template-columns:auto minmax(0,1fr) auto}.coach-composer-action,.coach-send-button{cursor:pointer;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.coach-composer-action{color:var(--green);background:var(--surface-green)}.coach-composer-mic.is-listening{color:#fff;background:#b53c4a;animation:1.1s ease-in-out infinite coach-recording}.coach-send-button{color:#fff;background:var(--green);box-shadow:0 5px 12px #083d1f33}.coach-send-button:disabled{color:#a8b6a9;box-shadow:none;cursor:not-allowed;background:#e5ebe5}.coach-composer-action:hover,.coach-composer-action:focus-visible,.coach-send-button:not(:disabled):hover,.coach-send-button:not(:disabled):focus-visible{transform:scale(1.04)}@keyframes coach-pulse{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@keyframes coach-recording{50%{box-shadow:0 0 0 7px #b53c4a24}}@keyframes coach-caret{50%{opacity:0}}@media (width<=860px){.coach-page{height:calc(100dvh - 156px - env(safe-area-inset-bottom));min-height:280px}.coach-page-hero{gap:10px;padding:0 2px}.coach-avatar{border-width:2px;width:40px;height:40px}.coach-page-hero h1{font-size:1.4rem}.coach-page-hero p{margin-top:3px;font-size:.8rem}.coach-chat-shell{border-radius:10px}.coach-message-list{padding:16px 12px}.coach-message{max-width:96%}.coach-message p{padding:12px;font-size:.95rem}.coach-action-preview{margin-left:0}.coach-starters{flex-wrap:nowrap;padding:0 12px 12px;overflow-x:auto}.coach-starters button{font-size:.82rem}.coach-starters button>svg{display:none}.coach-composer{gap:0;margin:0 10px 12px;padding:3px}.coach-composer input{padding-inline:5px;font-size:1rem}}@media (prefers-reduced-motion:reduce){.coach-typing i,.coach-stream-caret,.coach-composer-mic.is-listening{animation:none}.coach-starters button{transition:none}}.fasting-panel{gap:16px;max-width:900px;display:grid}.fasting-panel-heading{align-items:flex-start;gap:12px;display:flex}.fasting-panel-heading h3,.fasting-panel-heading p,.fasting-timer-card h4,.fasting-timer-card p,.fasting-insight-card p{margin:0}.fasting-panel-heading h3,.fasting-timer-card h4{color:var(--text-strong);font-family:var(--heading);font-size:1.45rem}.fasting-panel-heading p,.fasting-timer-card p,.fasting-insight-card p,.fasting-controls p{color:var(--muted-text);line-height:1.5}.fasting-schedule-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.fasting-schedule-list button{min-height:72px;color:var(--text-strong);text-align:left;border:1px solid var(--border);cursor:pointer;font:inherit;background:#fff;border-radius:16px;justify-content:space-between;align-items:center;gap:9px;padding:13px 14px;display:flex}.fasting-schedule-list button span{gap:3px;display:grid}.fasting-schedule-list button strong{font-size:1rem}.fasting-schedule-list button small{color:var(--muted-text);font-weight:600}.fasting-schedule-list button.active{color:var(--green);background:var(--surface-green);border-color:#9fcf8d;box-shadow:inset 0 0 0 1px #0f4f291f}.fasting-controls{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.fasting-controls label{color:var(--text-strong);gap:6px;font-size:.87rem;font-weight:800;display:grid}.fasting-controls p{grid-column:1/-1;margin:0;font-size:.88rem}.fasting-save{justify-self:start}.fasting-timer-card{background:linear-gradient(135deg,#fff,#eff8e5);border:1px solid #cde3c5;border-radius:20px;justify-items:start;gap:10px;padding:20px;display:grid}.fasting-countdown{text-align:center;background:conic-gradient(var(--green) 0 var(--fasting-progress), #e1edde var(--fasting-progress) 100%);border-radius:50%;place-content:center;min-width:min(100%,300px);min-height:154px;display:grid;position:relative}.fasting-countdown:before{content:"";background:#fff;border-radius:50%;width:128px;height:128px;position:absolute}.fasting-countdown strong,.fasting-countdown small{position:relative}.fasting-countdown strong{color:var(--text-strong);font-family:var(--heading);font-size:1.85rem}.fasting-countdown small,.fasting-timer-card>small{color:var(--muted-text);font-weight:700}.fasting-insight-card{color:var(--green);border:1px solid var(--border);background:#fff;border-radius:16px;gap:12px;padding:15px;display:flex}.fasting-insight-card strong{color:var(--text-strong)}.fasting-insight-card p{margin-top:3px;font-size:.9rem}@media (width<=620px){.fasting-schedule-list,.fasting-controls{grid-template-columns:1fr}.fasting-controls p{grid-column:auto}.fasting-save,.fasting-timer-card .button{width:100%}}}@layer utilities{.app-dashboard-shell{--app-line:#dce7dc;--app-subtle-line:#e7eee5;background:linear-gradient(#fafdf6bb,#fafdf6dd),url(/botanical-wash.webp) center/cover fixed,var(--page-background);padding:clamp(12px,2vw,24px)}.app-dashboard-shell .topbar,.app-dashboard-shell .metric-grid,.app-dashboard-shell .dashboard-grid{width:min(100%,1280px)}.app-dashboard-shell .topbar{border-color:var(--app-line);min-height:64px;box-shadow:none;background:#fff;border-radius:12px;margin-bottom:18px;padding:8px 16px}.app-dashboard-shell .brand{letter-spacing:-.025em;gap:10px;font-size:1.2rem;font-weight:700}.app-dashboard-shell .brand-mark{box-shadow:none}.app-dashboard-shell .coach-avatar .brand-mark,.app-dashboard-shell .coach-message-avatar .brand-mark{width:100%;height:100%;box-shadow:none;background:#fff;border:0;padding:0}.app-dashboard-shell .nav-links{background:#f2f6ee;border:0;gap:4px;padding:3px}.app-dashboard-shell .nav-links button{min-height:44px;padding:8px 14px;font-size:.9rem;font-weight:600}.app-dashboard-shell .nav-links button.active{color:#fff;border-color:var(--brand);background:var(--brand);box-shadow:none}.app-dashboard-shell .button,.app-dashboard-shell .primary-action{border-radius:var(--radius-control);min-height:44px;box-shadow:none;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.app-dashboard-shell .button-green{background:var(--brand)}.app-dashboard-shell .metric-card,.app-dashboard-shell .panel{border-color:var(--app-line);border-radius:var(--radius-panel);box-shadow:none;background:#fff}.app-dashboard-shell .metric-card:after{display:none}.app-dashboard-shell .log-section-switcher{border:1px solid var(--app-line);box-shadow:none;background:#eef4e9;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px}.app-dashboard-shell .log-section-tab{border-radius:7px;min-height:44px;font-size:.9rem;font-weight:600}.app-dashboard-shell .log-section-tab.active{color:#fff;background:var(--brand);box-shadow:none}.app-dashboard-shell .log-section-tab.training.active{background:var(--activity)}.app-dashboard-shell .log-section-tab.sleep.active{background:var(--recovery-accent)}.app-dashboard-shell .log-page,.app-dashboard-shell .profile-page,.app-dashboard-shell .progress-page{background:#fff;gap:16px;padding:clamp(16px,2vw,24px)}.app-dashboard-shell .log-page-hero,.app-dashboard-shell .progress-page-header{border-bottom:1px solid var(--app-subtle-line);gap:12px;padding:0 0 16px}.app-dashboard-shell .log-page-hero h1,.app-dashboard-shell .progress-page-header h1,.app-dashboard-shell .profile-page-title{letter-spacing:-.025em;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1.15}.app-dashboard-shell .log-page-hero p{max-width:65ch;margin:6px 0 0;font-size:.95rem;font-weight:400}.app-dashboard-shell .log-page-hero .eyebrow{display:none}.app-dashboard-shell .eyebrow{color:var(--brand);letter-spacing:.04em;font-size:.75rem;font-weight:600}.app-dashboard-shell input,.app-dashboard-shell select,.app-dashboard-shell textarea,.app-dashboard-shell .input-unit{border-color:var(--border-strong);border-radius:var(--radius-control)}.app-dashboard-shell input,.app-dashboard-shell select,.app-dashboard-shell textarea{font-weight:400}.app-dashboard-shell .mini-form label,.app-dashboard-shell .profile-form-grid label,.app-dashboard-shell .sleep-settings-grid label{font-weight:600}.app-dashboard-shell :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--brand);outline-offset:3px}.app-dashboard-shell .ghost-button,.app-dashboard-shell .icon-button{border-radius:8px;min-height:44px;font-weight:600}.app-dashboard-shell .weekday-tabs,.app-dashboard-shell .input-mode-tabs,.app-dashboard-shell .settings-tabs,.app-dashboard-shell .recommendation-tabs{border-radius:8px}.app-dashboard-shell .weekday-tabs button,.app-dashboard-shell .settings-tabs button,.app-dashboard-shell .recommendation-tabs button{border-radius:6px;min-height:44px;font-weight:600}.app-dashboard-shell .food-log-page .nutrition-tab-trigger.active{color:#fff;background:var(--nutrition-selected);border-color:var(--nutrition-selected);box-shadow:none}.app-dashboard-shell .log-row{border:0;border-bottom:1px solid var(--app-subtle-line);box-shadow:none;background:0 0;border-radius:0}.app-dashboard-shell .log-row span,.app-dashboard-shell .log-row p,.app-dashboard-shell p{font-weight:400}.app-dashboard-shell .log-row strong{font-variant-numeric:tabular-nums;font-weight:600}.app-dashboard-shell .trend-card,.app-dashboard-shell .progress-insight-grid,.app-dashboard-shell .trends-empty{box-shadow:none;border-radius:8px}.app-dashboard-shell .trend-chart-frame{background:#f7faf5;border-radius:8px}.app-dashboard-shell .progress-range-control{box-shadow:none;border-radius:8px}.app-dashboard-shell .progress-range-control button{border-radius:6px;min-height:44px}.app-dashboard-shell .sleep-recovery-tab{grid-template-columns:1fr;gap:16px}.app-dashboard-shell .sleep-week-summary{border:0;border-bottom:1px solid var(--app-subtle-line);box-shadow:none;background:0 0;border-radius:0;grid-area:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 0 16px;display:grid}.app-dashboard-shell .sleep-week-summary>div{background:0 0;border:0;padding:0}.app-dashboard-shell .sleep-week-summary strong{font-size:1.15rem;font-weight:600}.app-dashboard-shell .sleep-week-summary small{font-weight:400}.app-dashboard-shell .sleep-editor{grid-template-columns:minmax(0,1fr);gap:16px}.app-dashboard-shell .sleep-dial-card{box-shadow:none;background:0 0;border:0;border-radius:0;grid-area:auto;gap:12px;padding:0}.app-dashboard-shell .sleep-dial{width:min(100%,260px);box-shadow:none}.app-dashboard-shell .sleep-dial-header p,.app-dashboard-shell .sleep-dial-goal-note{font-weight:400}.app-dashboard-shell .sleep-target-details{border-top:1px solid var(--app-subtle-line);padding:12px 0}.app-dashboard-shell .sleep-target-details summary{cursor:pointer;min-height:44px;padding-block:10px;font-weight:600}.app-dashboard-shell .sleep-settings-grid{background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px;padding:0}.app-dashboard-shell .sleep-settings-grid>div{grid-column:1/-1}.sleep-entry-fields{gap:16px;display:grid}.sleep-entry-note{margin-top:0}.app-dashboard-shell .profile-hero{border:0;border-bottom:1px solid var(--app-subtle-line);box-shadow:none;background:0 0;border-radius:0;padding:0 0 16px}.profile-page-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.app-dashboard-shell .profile-edit-button{width:auto;font-size:.85rem}.sleep-dial-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.app-dashboard-shell .profile-avatar-large{background:var(--brand);width:48px;height:48px;box-shadow:none;border:0;font-size:1.2rem}.app-dashboard-shell .profile-identity-block{gap:12px}.app-dashboard-shell .profile-identity-block h2{font-size:1.2rem;font-weight:600}.app-dashboard-shell .profile-identity-block p{margin-top:4px;font-size:.9rem}.app-dashboard-shell .profile-subpage-nav{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.app-dashboard-shell .profile-subpage-nav button{border-radius:8px;min-height:44px;font-weight:600}.app-dashboard-shell .profile-subpage-nav button.active{color:#fff;background:var(--brand);box-shadow:none}.app-dashboard-shell .profile-layout{grid-template-columns:minmax(0,1fr)}.app-dashboard-shell .profile-subpage-overview>.profile-column-main{display:none}.app-dashboard-shell .profile-card{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.profile-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.profile-groups section:last-child{grid-column:1/-1}.profile-groups h2{margin:0 0 8px;font-size:1rem;font-weight:600}.profile-destination-group{border:1px solid var(--app-line);border-radius:8px;overflow:hidden}.profile-destination{width:100%;min-height:56px;color:var(--text-strong);cursor:pointer;text-align:left;font:inherit;background:#fff;border:0;align-items:center;gap:12px;padding:12px 14px;display:flex}.profile-destination+.profile-destination{border-top:1px solid var(--app-subtle-line)}.profile-destination:hover{background:#f6faf2}.profile-destination>svg{color:var(--brand);flex-shrink:0}.profile-destination>span{flex:1;min-width:0}.profile-destination strong{font-size:.95rem;font-weight:600;display:block}.profile-destination small{color:var(--secondary-text);margin-top:2px;font-size:.82rem;font-weight:400;display:block}@media (width<=860px){.app-dashboard-shell{padding:12px 12px calc(90px + env(safe-area-inset-bottom))}.app-dashboard-shell .topbar{border-radius:10px;flex-wrap:nowrap;min-height:54px;margin-bottom:12px;padding:6px 10px;position:static}.app-dashboard-shell .topbar .brand{width:auto;font-size:1.1rem}.app-dashboard-shell .topbar .brand-mark{width:36px;height:36px}.app-dashboard-shell .topbar .sign-out-button{flex-shrink:0;width:44px;min-height:44px;padding:0}.app-dashboard-shell .topbar .sign-out-button span{display:none}.app-dashboard-shell .mobile-bottom-nav{padding:4px 12px calc(4px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--app-line);box-shadow:none;background:#fff;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;bottom:0;left:0;right:0}.app-dashboard-shell .mobile-bottom-tab{border-radius:8px;min-height:58px;font-weight:600}.app-dashboard-shell .mobile-bottom-tab.active{color:var(--brand);background:#eef6e8;border-color:#0000}.app-dashboard-shell .mobile-bottom-tab.active svg{color:var(--brand)}.app-dashboard-shell .log-page-hero{flex-flow:wrap;align-items:center}.app-dashboard-shell .log-page-hero p{display:none}.app-dashboard-shell .log-page,.app-dashboard-shell .profile-page,.app-dashboard-shell .progress-page{border-radius:10px;padding:16px}.app-dashboard-shell .profile-hero{flex-wrap:wrap;gap:12px}.app-dashboard-shell .profile-subpage-nav{flex-wrap:nowrap;width:100%;overflow-x:auto}.app-dashboard-shell .profile-subpage-nav button{flex-shrink:0;font-size:.82rem}.profile-groups{grid-template-columns:1fr;gap:24px}.profile-groups section:last-child{grid-column:auto}.app-dashboard-shell:has(.page-coach){padding-bottom:12px}}@media (width<=400px){.app-dashboard-shell .log-section-tab{gap:5px;padding-inline:6px;font-size:.8rem}.app-dashboard-shell .profile-verified{font-size:.7rem}.app-dashboard-shell .sleep-week-summary{gap:12px}.app-dashboard-shell .sleep-week-summary strong{font-size:1rem}}}
