@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#17251f;--muted:#829088;--muted-2:#aab3ad;--paper:#f6f7f2;--card:#fff;--line:#e8ece5;--green:#c7f36c;--green-dark:#264c39;--green-soft:#ecf7d9;--orange:#ff8a64;--orange-soft:#fff0e9;--blue:#73bce2;--blue-soft:#e7f5fb;--purple:#aaa0f0;--shadow:0 8px 28px rgba(25,43,33,.055);--radius:22px;--font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--display:'Manrope',var(--font)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-tap-highlight-color:transparent}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(93,144,72,.3);outline-offset:2px}.app-shell{width:100%;max-width:560px;min-height:100vh;margin:0 auto;background:var(--paper);position:relative;padding-bottom:100px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:18px 19px 15px;background:rgba(246,247,242,.95);position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.brand-lockup{display:flex;gap:10px;align-items:center}.brand-mark{width:35px;height:35px;border-radius:12px;background:var(--ink);display:flex;align-items:center;justify-content:center;gap:3px}.brand-mark span{display:block;width:4px;border-radius:8px;background:var(--green)}.brand-mark span:nth-child(1){height:10px}.brand-mark span:nth-child(2){height:19px}.brand-mark span:nth-child(3){height:14px}.brand-name{font:800 21px/1 var(--display);letter-spacing:-1.2px}.brand-period{color:#7aa33a}.brand-caption{font-size:8px;letter-spacing:1.75px;color:var(--muted);font-weight:700;margin-top:5px}.header-actions{display:flex;align-items:center;gap:9px}.sync-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#77867d;font-weight:600;white-space:nowrap}.sync-dot{width:6px;height:6px;border-radius:50%;background:#9bbd61}.icon-button{display:grid;place-items:center;background:#fff;border:1px solid var(--line);height:35px;width:35px;border-radius:12px;color:#66736a;font-size:17px}.domain-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin:0 18px;padding:5px;background:#e9ede6;border-radius:16px;gap:4px;position:sticky;top:67px;z-index:19}.domain-tab{height:43px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:#89928a;font-weight:700;font-size:12px;transition:all .18s}.domain-tab .domain-emoji{font-size:16px;filter:saturate(.85)}.domain-tab.active{background:var(--ink);color:#f5f7ef;box-shadow:0 4px 10px #13251e21}.date-strip{display:flex;align-items:center;gap:5px;padding:17px 14px 15px;position:sticky;top:120px;z-index:18;background:var(--paper)}.date-arrow{width:25px;height:36px;border-radius:10px;background:transparent;color:#96a096;font-size:24px;font-weight:400;flex-shrink:0}.date-options{flex:1;display:flex;justify-content:center;gap:5px;min-width:0}.date-pill{min-width:58px;padding:7px 8px;border-radius:12px;background:transparent;display:flex;flex-direction:column;align-items:center;gap:3px;color:#9aa39b;font-size:10px;white-space:nowrap}.date-pill strong{font-size:12px;font-weight:600}.date-pill.active{background:#fff;box-shadow:0 2px 8px #1a36220b;color:var(--ink);border:1px solid #e4e9df}.date-pill.active strong{font-weight:800}.date-pill.today:not(.active) .date-day{color:#75934c}.calendar-button{height:34px;width:34px;display:grid;place-items:center;border-radius:11px;background:#fff;border:1px solid var(--line);font-size:17px;color:#617267;position:relative;flex-shrink:0}.calendar-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.main-content{padding:0 18px 20px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:6px 2px 13px}.eyebrow{color:#87958a;font-size:9px;letter-spacing:1.65px;text-transform:uppercase;font-weight:800}.page-title{font:800 24px/1.15 var(--display);letter-spacing:-1px;margin:5px 0 0}.subtitle{font-size:11px;color:var(--muted);margin-top:5px}.streak-card{background:var(--ink);color:#f7f9f3;border-radius:24px;padding:18px 18px 17px;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:0 10px 24px rgba(16,36,25,.12)}.streak-card:after{content:"";width:150px;height:150px;position:absolute;right:-66px;top:-78px;border:1px solid rgba(211,244,154,.14);border-radius:50%;box-shadow:0 0 0 16px rgba(211,244,154,.035),0 0 0 36px rgba(211,244,154,.025);pointer-events:none}.streak-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px;position:relative;z-index:1}.streak-label{font-size:9px;letter-spacing:1.55px;text-transform:uppercase;color:#b8c7b9;font-weight:800}.streak-headline{font:700 16px var(--display);margin-top:5px;letter-spacing:-.4px}.streak-sub{color:#93a69a;font-size:10px;margin-top:4px}.settings-mini{height:29px;width:29px;border-radius:10px;background:#ffffff12;color:#dce8dc;font-size:16px;border:1px solid #ffffff14}.progress-stack{display:grid;gap:13px;position:relative;z-index:1}.progress-row{display:grid;grid-template-columns:92px 1fr 68px;gap:10px;align-items:center}.progress-label{font-size:10px;color:#cad4ca;font-weight:600}.progress-track{height:6px;border-radius:10px;background:#ffffff20;overflow:hidden}.progress-fill{height:100%;border-radius:10px;background:var(--green);transition:width .25s}.progress-fill.protein{background:#ffc17c}.progress-fill.water{background:#77cbed}.progress-value{text-align:right;font-size:10px;color:#f3f7f0;font-weight:700;font-variant-numeric:tabular-nums}.progress-value span{color:#8fa397;font-weight:500}.eat-back-note{font-size:9px;color:#99ad9e;margin-top:13px;display:flex;align-items:center;gap:6px}.eat-back-note .tiny-dot{width:5px;height:5px;border-radius:99px;background:var(--green)}.quick-water{display:flex;align-items:center;gap:7px;margin-bottom:17px}.water-total-chip{display:flex;flex-direction:column;justify-content:center;min-width:74px;align-self:stretch;padding:7px 9px;background:var(--blue-soft);border-radius:13px;color:#256786;border:1px solid #d6ecf6}.water-total-chip strong{font:800 13px var(--display)}.water-total-chip span{font-size:9px;margin-top:2px;color:#6b9db4}.quick-water-btn{flex:1;min-width:0;height:47px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#3a6274;font-weight:800;font-size:11px}.quick-water-btn span{font-size:9px;color:#97a5a4;font-weight:600}.quick-water-btn.custom{color:#527d91;background:#f2faff}.meal-section{margin:19px 0 0}.meal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;padding:0 2px}.meal-title{display:flex;align-items:center;gap:8px;font:700 14px var(--display);letter-spacing:-.3px}.meal-symbol{height:25px;width:25px;border-radius:8px;display:grid;place-items:center;background:#eef3e7;font-size:13px}.meal-meta{font-size:10px;color:#98a198}.meal-add{color:#526a49;background:transparent;font-size:20px;width:27px;height:27px;border-radius:8px}.meal-items{display:grid;gap:7px}.food-entry{display:flex;align-items:center;gap:10px;padding:11px 11px;background:#fff;border:1px solid #edf0e8;border-radius:15px;box-shadow:0 3px 10px #21391f04}.food-thumb{width:38px;height:38px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;font-size:18px;background:#f3f5e9}.food-entry-copy{min-width:0;flex:1}.food-entry-name{font-weight:700;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.food-entry-meta{font-size:10px;color:#98a198;margin-top:4px}.food-entry-macros{font-size:10px;color:#516358;font-weight:700;text-align:right;white-space:nowrap}.entry-tools{display:flex;gap:3px}.mini-icon{display:grid;place-items:center;width:25px;height:28px;border-radius:8px;background:#f6f7f2;color:#88958a;font-size:12px}.empty-meal{border:1px dashed #dfe5dc;background:#fafbf8;border-radius:14px;padding:13px 14px;color:#9aa49b;font-size:11px;display:flex;justify-content:space-between;align-items:center}.empty-meal button{background:transparent;color:#73954c;font-weight:800;font-size:11px}.nutri-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0 6px}.micro-card{padding:12px 11px;background:#fff;border:1px solid var(--line);border-radius:15px}.micro-label{font-size:9px;color:#8d9a90;font-weight:700}.micro-value{font:800 16px var(--display);margin-top:5px;letter-spacing:-.5px}.micro-unit{font-size:9px;color:#95a096;margin-top:2px}.workout-hero{border-radius:23px;background:#eaf3db;padding:17px 17px 16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;position:relative;overflow:hidden}.workout-hero:after{content:"";position:absolute;height:120px;width:120px;border:1px solid #a2c47566;border-radius:50%;right:-37px;top:-52px;box-shadow:0 0 0 16px #b5d48b18,0 0 0 32px #b5d48b17}.workout-hero .eyebrow{color:#68874b}.workout-hero h2{font:800 20px var(--display);letter-spacing:-.7px;margin:6px 0}.workout-hero p{margin:0;color:#78916a;font-size:11px}.primary-button{border-radius:12px;background:var(--ink);color:white;padding:12px 15px;font-size:11px;font-weight:800;letter-spacing:.15px;white-space:nowrap;z-index:1}.primary-button.lime{background:var(--green);color:var(--ink)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin:17px 1px 10px}.section-title-row h3{font:800 14px var(--display);margin:0;letter-spacing:-.3px}.muted-link{font-size:10px;font-weight:800;background:transparent;color:#789851}.exercise-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:9px}.exercise-card-header{display:flex;gap:10px;align-items:center}.exercise-icon{width:42px;height:42px;border-radius:13px;background:#f1f4ed;display:grid;place-items:center;font-size:19px;flex-shrink:0}.exercise-main{min-width:0;flex:1}.exercise-name{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exercise-meta{font-size:10px;color:#98a399;margin-top:4px}.exercise-state{font-size:9px;background:#f0f4e9;color:#7d965e;padding:5px 7px;border-radius:7px;font-weight:800}.exercise-state.done{background:#e6f5e4;color:#367c49}.exercise-start-row{margin-top:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}.exercise-start{background:var(--ink);color:#fff;border-radius:10px;padding:9px 11px;font-size:10px;font-weight:800}.exercise-start.running{background:#ebf5d7;color:#43642d}.exercise-stats{font-size:10px;color:#809086}.sets-panel{margin-top:13px;border-top:1px solid #edf0e9;padding-top:12px}.sets-header{display:grid;grid-template-columns:44px 1fr 1fr 34px;gap:7px;padding:0 2px 7px;color:#9aa59a;text-transform:uppercase;font-size:8px;letter-spacing:.75px;font-weight:800}.set-row{display:grid;grid-template-columns:44px 1fr 1fr 34px;align-items:center;gap:7px;margin-bottom:6px}.set-num{font-size:10px;color:#869487;font-weight:700}.set-input{width:100%;min-width:0;text-align:center;border:1px solid #e9eee5;border-radius:9px;background:#fafbf8;height:32px;color:#34483a;font-weight:700;font-size:11px}.set-complete{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f3f5ef;border:1.5px solid #dfe6d8;color:#9ca79b;font-size:12px;font-weight:800}.set-complete.checked{background:var(--green);border-color:var(--green);color:var(--ink)}.rest-timer{margin-top:10px;background:#eef7df;border-radius:12px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:6px}.rest-timer-text{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:#425e34}.rest-clock{font-variant-numeric:tabular-nums;font-size:14px}.timer-adjust{display:flex;gap:5px}.timer-adjust button{padding:6px 8px;background:#fff;border-radius:8px;color:#68844d;font-size:10px;font-weight:800}.set-actions{display:flex;gap:8px;margin-top:11px}.outline-button{border:1px solid #e4eae0;border-radius:10px;background:#fff;color:#728272;font-size:10px;font-weight:800;padding:9px 12px}.outline-button.full{flex:1}.finish-button{width:100%;margin-top:12px;padding:13px;border-radius:13px;background:#fff0e9;color:#b45835;font-size:11px;font-weight:800}.workout-empty{padding:30px 19px;background:#fff;border:1px dashed #dce5d9;border-radius:18px;text-align:center}.empty-graphic{width:60px;height:60px;border-radius:19px;margin:0 auto 12px;background:#f0f4e9;display:grid;place-items:center;font-size:26px}.workout-empty h3{font:800 15px var(--display);margin:0 0 6px}.workout-empty p{font-size:11px;color:#8d9a90;line-height:1.5;margin:0 auto 14px;max-width:250px}.water-hero{border-radius:23px;background:linear-gradient(140deg,#dff3fa,#edf8f8);padding:19px;margin-bottom:15px;position:relative;overflow:hidden}.water-hero:after{content:"";position:absolute;right:-45px;bottom:-90px;width:190px;height:190px;border:1px solid #8ecbe044;border-radius:50%;box-shadow:0 0 0 20px #8ecbe025,0 0 0 42px #8ecbe020}.water-hero-top{display:flex;justify-content:space-between;position:relative;z-index:1}.water-hero h2{font:800 25px var(--display);letter-spacing:-1px;color:#285a6c;margin:8px 0 4px}.water-hero p{color:#6690a0;font-size:11px;margin:0}.water-big-number{font:800 31px var(--display);letter-spacing:-1.2px;color:#275b70;border:0;background:transparent;padding:0;text-align:right;display:block;line-height:1.2}.water-big-number span{font-size:13px;letter-spacing:0;font-weight:700;color:#75a0af}.water-progress{height:8px;background:#c8e6ef;border-radius:12px;overflow:hidden;margin-top:16px;position:relative;z-index:1}.water-progress>div{height:100%;border-radius:12px;background:#57b4d4}.water-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 20px}.water-option{min-height:77px;border-radius:16px;background:#fff;border:1px solid #e0edf0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#44788a}.water-option strong{font:800 13px var(--display)}.water-option span{font-size:10px;color:#8cabb5}.water-option.custom{background:#f7fbfc;border-style:dashed}.water-log-list{display:grid;gap:8px}.water-log-row{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border-radius:14px;border:1px solid var(--line)}.water-log-icon{height:34px;width:34px;display:grid;place-items:center;border-radius:11px;background:#e9f7fb;font-size:17px}.water-log-info{flex:1}.water-log-info strong{font-size:12px}.water-log-info span{display:block;font-size:10px;color:#96a39c;margin-top:3px}.water-log-amount{font-weight:800;color:#40798e}.empty-state{text-align:center;padding:25px 10px;color:#9aa49b;font-size:11px}.empty-state .empty-icon{font-size:23px;margin-bottom:8px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(560px,100%);height:75px;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);border-top:1px solid #ebeee8;display:grid;grid-template-columns:1fr 80px 1fr;padding:6px 23px calc(7px + env(safe-area-inset-bottom));align-items:center}.bottom-tab{background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#a0aaa1;font-size:9px;font-weight:700;height:56px}.bottom-tab.active{color:var(--ink)}.bottom-icon{font-size:21px;line-height:23px;font-weight:400}.bottom-tab.active .bottom-icon{color:#6e9649}.center-add{justify-self:center;align-self:start;margin-top:-18px;height:52px;width:52px;border-radius:18px;background:var(--green);box-shadow:0 5px 13px #80a94c45;color:var(--ink);font-size:29px;font-weight:400;display:grid;place-items:center;border:4px solid var(--paper)}.center-add span{transform:translateY(-1px)}.safe-area{height:env(safe-area-inset-bottom)}.toast-region{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:100;display:grid;gap:7px;width:min(360px,calc(100% - 40px));pointer-events:none}.toast{padding:12px 15px;border-radius:13px;background:#17251f;color:#fff;font-size:12px;font-weight:600;box-shadow:0 10px 25px #10221822;animation:toastin .2s ease}.toast.error{background:#a6462c}@keyframes toastin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Analytics */
.period-toggle{display:flex;background:#e9ede6;padding:4px;border-radius:12px;gap:3px}.period-toggle button{flex:1;background:transparent;color:#8d988e;font-size:10px;font-weight:800;border-radius:9px;padding:9px}.period-toggle button.active{background:#fff;color:#273b2e;box-shadow:0 2px 7px #10221808}.analytics-top{margin-bottom:15px}.analysis-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:15px;margin-bottom:11px}.analysis-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:13px}.analysis-card-title{font:800 13px var(--display);letter-spacing:-.3px}.analysis-card-sub{font-size:10px;color:#9aa59b;margin-top:4px}.card-badge{border-radius:8px;background:#f0f4e9;color:#6e8f49;padding:6px 8px;font-size:9px;font-weight:800;white-space:nowrap}.analysis-number-row{display:flex;align-items:baseline;gap:6px}.analysis-number{font:800 26px var(--display);letter-spacing:-1px}.analysis-unit{font-size:10px;color:#8f9c91}.bar-chart{height:126px;display:flex;align-items:end;gap:8px;padding:10px 4px 0;border-bottom:1px solid #edf0e8}.chart-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%;min-width:0;gap:7px}.chart-bar-value{font-size:8px;color:#8d9a90;font-weight:700}.chart-bar{width:min(22px,80%);min-height:2px;background:#c8f16d;border-radius:6px 6px 2px 2px;position:relative}.chart-bar.blue{background:#8cd3e9}.chart-bar.orange{background:#ffc5a8}.chart-bar.purple{background:#c5bdf7}.chart-label{font-size:8px;color:#a1aaa0;white-space:nowrap}.dashed-line{position:relative;border-top:1.5px dashed #ff9979;margin:0 0 -1px}.chart-legend{display:flex;flex-wrap:wrap;gap:13px;margin-top:10px}.legend-item{display:flex;align-items:center;gap:5px;font-size:9px;color:#859287}.legend-dot{height:6px;width:6px;border-radius:50%;background:var(--green)}.legend-dot.blue{background:#8cd3e9}.legend-dot.orange{background:#ffc5a8}.donut-row{display:flex;align-items:center;gap:18px;padding:3px 0 5px}.donut{height:118px;width:118px;flex-shrink:0;border-radius:50%;position:relative;background:conic-gradient(#c8f16d 0 35%,#88cfe8 35% 57%,#ffb391 57% 78%,#c5bdf7 78% 100%)}.donut:after{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff}.donut-center{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.donut-center strong{font:800 19px var(--display)}.donut-center span{font-size:8px;color:#93a095}.legend-list{display:grid;gap:10px;flex:1;min-width:0}.legend-row{display:flex;align-items:center;gap:7px;font-size:10px;color:#69786c}.legend-row strong{margin-left:auto;color:#2d4233;font-size:10px}.legend-square{height:8px;width:8px;border-radius:3px;flex-shrink:0}.macro-rings{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.macro-ring-card{border:1px solid #eff1ec;border-radius:14px;padding:11px 8px;text-align:center}.ring{width:59px;height:59px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;position:relative}.ring:before{content:"";position:absolute;inset:6px;border-radius:50%;background:white}.ring strong{position:relative;z-index:1;font:800 11px var(--display)}.macro-ring-card .macro-name{font-weight:800;font-size:10px}.macro-ring-card .macro-small{font-size:9px;color:#9aa59c;margin-top:4px}.insight-card{border-radius:19px;background:#17251f;color:#f3f7ef;padding:17px;margin:14px 0 4px;position:relative;overflow:hidden}.insight-card:after{content:"✳";position:absolute;font-size:85px;color:#ffffff08;right:2px;top:-18px}.insight-kicker{font-size:9px;letter-spacing:1.4px;color:#b9d88f;font-weight:800;text-transform:uppercase}.insight-title{font:800 16px var(--display);margin:8px 0 6px;letter-spacing:-.4px}.insight-body{font-size:11px;color:#b8c7bb;line-height:1.6;max-width:330px}.insight-foot{display:flex;align-items:center;gap:7px;font-size:9px;color:#9cad9e;margin-top:13px}.insight-foot span{display:inline-block;height:6px;width:6px;border-radius:50%;background:#c8f16d}.heatmap{display:grid;grid-template-columns:30px repeat(7,1fr);gap:5px;align-items:center}.heatmap .day-label{font-size:8px;color:#9aa59b;text-align:center}.heatmap .row-label{font-size:8px;color:#8b998f}.heat-cell{height:19px;border-radius:5px;background:#f0f3eb}.heat-1{background:#e2efcb}.heat-2{background:#c5e79a}.heat-3{background:#94cf68}.heat-4{background:#588f4a}.volume-bars{display:flex;gap:9px;align-items:end;height:100px;padding:0 4px}.volume-bars>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.volume-bars .vbar{width:100%;max-width:35px;border-radius:6px 6px 2px 2px;background:#c9f16f;min-height:3px}.volume-bars small{font-size:8px;color:#9aa59b}.empty-chart{height:115px;display:grid;place-items:center;text-align:center;color:#9ba69d;font-size:10px;background:#fafbf8;border-radius:12px;padding:10px}
/* Modal + forms */
.modal-backdrop{position:fixed;inset:0;background:rgba(14,27,20,.43);backdrop-filter:blur(5px);z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:0}.modal-sheet{width:min(560px,100%);max-height:90vh;overflow:auto;background:#f9faf6;border-radius:25px 25px 0 0;padding:10px 19px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #0a170e24;animation:sheetup .22s ease}.modal-handle{width:39px;height:4px;border-radius:8px;background:#d7ded5;margin:2px auto 17px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:16px}.modal-head h2{font:800 21px var(--display);letter-spacing:-.7px;margin:4px 0 0}.modal-head p{font-size:11px;color:#87958b;margin:5px 0 0;line-height:1.4}.close-modal{width:31px;height:31px;border-radius:10px;background:#edf1e9;color:#6f7e72;font-size:18px;flex-shrink:0}.field{display:grid;gap:6px;margin-bottom:13px}.field label{font-size:10px;letter-spacing:.3px;font-weight:800;color:#6e7d70}.field input,.field select,.field textarea{width:100%;height:43px;border:1px solid #e1e8dc;background:#fff;border-radius:12px;padding:0 12px;outline:none;color:#273b2e;font-size:12px}.field textarea{height:80px;padding:12px;resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#aacb7c;box-shadow:0 0 0 3px #c7f36c26}.search-box{position:relative;margin-bottom:12px}.search-box input{padding-left:37px}.search-icon{position:absolute;left:13px;top:12px;color:#9ba79b;font-size:15px}.search-results{display:grid;gap:7px;max-height:330px;overflow-y:auto;margin-bottom:15px}.search-result{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e5eae1;border-radius:13px;background:#fff;text-align:left}.search-result.selected{border-color:#91b567;background:#f4f9e9}.result-icon{width:36px;height:36px;border-radius:11px;background:#f0f4e8;display:grid;place-items:center;font-size:17px;flex-shrink:0}.result-copy{min-width:0;flex:1}.result-copy strong{font-size:11px;display:block;line-height:1.35}.result-copy span{font-size:9px;color:#98a399;display:block;margin-top:4px}.result-calories{font-size:10px;font-weight:800;color:#647a58;white-space:nowrap}.form-note{padding:10px 12px;border-radius:11px;background:#eef4e7;color:#78915f;font-size:10px;line-height:1.5;margin:8px 0 14px}.modal-actions{display:flex;gap:8px;margin-top:16px}.modal-actions button{flex:1;padding:13px 10px;border-radius:13px;font-weight:800;font-size:11px}.modal-actions .cancel{background:#edf1e9;color:#758276}.modal-actions .save{background:var(--ink);color:#fff}.modal-actions .save.lime{background:var(--green);color:var(--ink)}.selected-food{display:flex;align-items:center;gap:10px;padding:11px;background:#f0f4e9;border-radius:13px;margin-bottom:13px}.selected-food strong{font-size:12px}.selected-food small{display:block;font-size:9px;color:#829078;margin-top:3px}.macro-edit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.macro-edit-grid .field{margin-bottom:0}.macro-edit-grid input{padding:0 7px;text-align:center}.macro-edit-grid label{text-align:center;font-size:9px}.setting-section{padding:14px;background:#fff;border:1px solid var(--line);border-radius:15px;margin-bottom:10px}.setting-section h3{font:800 12px var(--display);margin:0 0 12px}.setting-section p{font-size:10px;color:#8c9a90;line-height:1.5;margin:0 0 10px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}.switch-copy strong{font-size:11px;display:block}.switch-copy span{font-size:9px;color:#94a097;display:block;margin-top:4px;line-height:1.4}.switch{position:relative;width:42px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch-track{position:absolute;inset:0;background:#dbe2d8;border-radius:20px;transition:.2s;cursor:pointer}.switch-track:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #0002}.switch input:checked+.switch-track{background:#8fba5b}.switch input:checked+.switch-track:before{transform:translateX(18px)}.recipe-ingredient{display:grid;grid-template-columns:minmax(0,1fr) 82px 30px;gap:7px;align-items:center;margin-bottom:7px}.recipe-ingredient select,.recipe-ingredient input{width:100%;min-width:0;height:37px;border:1px solid #e1e8dc;background:#fff;border-radius:10px;padding:0 8px;font-size:10px}.recipe-ingredient button{height:30px;width:30px;background:#fff0e9;color:#bc6644;border-radius:8px}.divider-label{display:flex;align-items:center;gap:10px;color:#9ca79d;font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:1px;margin:13px 0}.divider-label:before,.divider-label:after{content:"";height:1px;background:#e7ece3;flex:1}.session-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}.session-summary>div{background:#f1f5eb;border-radius:12px;text-align:center;padding:10px 5px}.session-summary strong{font:800 15px var(--display);display:block}.session-summary span{font-size:8px;color:#85947b;margin-top:4px;display:block}.hidden{display:none!important}
@media(min-width:600px){body{padding:16px 0}.app-shell{border:1px solid #eaeee7;border-radius:28px;min-height:calc(100vh - 32px);overflow:hidden;box-shadow:0 12px 50px #2237270b}.app-header{top:0}.domain-tabs{top:67px}.bottom-nav{bottom:16px;border:1px solid var(--line);border-radius:0 0 27px 27px}.modal-backdrop{align-items:center;padding:18px}.modal-sheet{border-radius:25px;max-height:84vh}.center-add{border-color:#fff}.main-content{padding-bottom:35px}}
@media(max-width:390px){.app-header{padding-inline:14px}.main-content{padding-inline:13px}.domain-tabs{margin-inline:13px}.progress-row{grid-template-columns:78px 1fr 63px;gap:7px}.date-options{gap:0}.date-pill{min-width:52px;padding-inline:5px}.sync-status{font-size:9px}.meal-title{font-size:13px}.streak-card{padding:16px}.macro-edit-grid{grid-template-columns:repeat(2,1fr)}}

/* Forma V2 navigation, compact pickers, liquid units and account/sync components */
.date-strip.hidden{display:none!important}
.period-range{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:11px 0 14px;padding:9px 10px;border:1px solid var(--line);border-radius:14px;background:#fff}
.period-arrow{width:35px;height:35px;flex:0 0 35px;border-radius:11px;background:#f0f4e9;color:#40583c;font-size:25px;line-height:1;display:grid;place-items:center}
.period-arrow:disabled{opacity:.35}
.period-range-copy{flex:1;text-align:center;min-width:0}
.period-range-copy strong{display:block;font-size:12px;color:var(--ink)}
.period-range-copy span{display:block;font-size:9px;color:#9aa59b;margin-top:3px}
.dashboard-target-card{margin-top:1px;margin-bottom:13px}
.dashboard-section-title{margin-top:7px!important}
.picker-caption{font-size:9px;letter-spacing:1.2px;font-weight:800;color:#91a08f;margin:2px 2px 1px}
.picker-prompt{padding:12px 13px;background:#f6f8f2;border:1px dashed #e1e8dc;border-radius:13px;color:#8b998e;font-size:10px;line-height:1.5}
.food-log-grid{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.2fr);gap:8px}
.food-log-grid .field{min-width:0}
.recipe-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e9eee5;margin-top:13px;padding-top:12px;font-size:10px;color:#8c998f}
.recipe-ingredient{grid-template-columns:minmax(0,1fr) 65px 57px 30px;align-items:start}
.recipe-picker{min-width:0;position:relative}
.recipe-ingredient .recipe-search{width:100%;height:37px;min-width:0;border:1px solid #e1e8dc;background:#fff;border-radius:10px;padding:0 8px;font-size:10px}
.recipe-selected{padding:4px 2px 2px;min-height:19px;font-size:9px;color:#7d8c7f;overflow:hidden}
.recipe-selected span{display:block;color:#48663b;font-size:9px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:800}
.recipe-selected small{font-size:8px;color:#a0aaa0}
.recipe-results-mini{display:grid;gap:3px;max-height:155px;overflow:auto;position:relative;z-index:3}
.recipe-result-option{display:grid;gap:3px;text-align:left;background:#fff;border:1px solid #e5eae1;border-radius:8px;padding:7px;color:#4a5b4c}
.recipe-result-option strong{font-size:9px;line-height:1.3}
.recipe-result-option span,.recipe-no-result{font-size:8px;color:#92a093}
.recipe-ingredient input[type=number],.recipe-ingredient select{width:100%;min-width:0;height:37px;border:1px solid #e1e8dc;background:#fff;border-radius:10px;padding:0 6px;font-size:10px}
.water-entry-actions{display:flex;gap:4px;align-items:center}
.water-entry-actions .mini-icon{flex-shrink:0}
.water-log-row{gap:8px}
@media(max-width:390px){.food-log-grid{grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(0,1.15fr);gap:6px}.recipe-ingredient{grid-template-columns:minmax(0,1fr) 48px 48px 26px;gap:5px}.recipe-ingredient>button{width:26px}.water-entry-actions{flex-direction:column;gap:1px}.water-log-amount{display:none}}

/* Dashboard range-consistent charts */
.heatmap-wrap{overflow-x:auto;padding:2px 0 1px}
.heatmap-grid{display:grid;grid-template-columns:minmax(56px,1.1fr) repeat(var(--heat-cols),minmax(17px,1fr));gap:5px;align-items:center;min-width:0}
.heatmap-corner{min-height:17px}
.heatmap-day{font-size:8px;color:#93a092;text-align:center;white-space:nowrap}
.heatmap-muscle{font-size:9px;color:#7b897d;white-space:nowrap}
.heatmap-cell{height:21px;min-width:0;border-radius:5px;background:rgba(199,243,108,var(--heat-alpha,.06));border:1px solid rgba(99,137,66,.09);display:grid;place-items:center;font-size:8px;color:#36532f}
.heatmap-caption{font-size:9px;color:#a0aaa0;margin-top:11px}
@media(max-width:390px){.heatmap-grid{gap:3px}.heatmap-cell{height:18px}.heatmap-muscle{font-size:8px}}

/* V2.1 — auth-first entry screen. The main app stays hidden until a Supabase session exists. */
.auth-gate{min-height:100svh;display:grid;place-items:center;padding:24px 18px;background:radial-gradient(circle at 80% 8%,#e6f1d7 0,transparent 34%),var(--paper)}
.auth-card{width:min(430px,100%);padding:clamp(22px,6vw,34px);background:rgba(255,255,255,.92);border:1px solid #e7ece3;border-radius:28px;box-shadow:0 18px 58px rgba(24,47,31,.08)}
.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:35px}
.auth-intro{margin-bottom:22px}
.auth-intro h1{font:800 29px/1.12 var(--display);letter-spacing:-1.1px;margin:8px 0 9px}
.auth-intro p{font-size:12px;line-height:1.6;color:#7f8d82;margin:0}
.auth-notice{display:grid;gap:6px;padding:12px 14px;border-radius:13px;border:1px solid #f2d9ad;background:#fff8e9;color:#855b22;font-size:10px;line-height:1.5;margin:0 0 14px}
.auth-notice strong{font-size:11px}.auth-notice code{font-size:10px;overflow-wrap:anywhere}
.auth-google-btn,.auth-primary,.auth-secondary{height:47px;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;font-weight:800;transition:transform .15s ease,opacity .15s ease}
.auth-google-btn{width:100%;background:#fff;border:1px solid #dfe6dc;color:#29392e}
.google-g{font:800 17px Arial,sans-serif;color:#4285f4;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 25% 48%,#fbbc05 48% 68%,#ea4335 68% 85%,#4285f4 85%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#9ca79c;font-size:9px;font-weight:700}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e8ede5;flex:1}
.auth-fields{display:grid;gap:0}.auth-fields .field{margin-bottom:11px}.auth-fields .field span{font-size:9px;letter-spacing:.65px;font-weight:800;color:#768578}.auth-fields input{height:46px;font-size:12px;border:1px solid #e1e8dc;background:#fbfcf9;border-radius:12px;padding:0 13px;color:var(--ink);width:100%;margin-top:1px}.auth-fields input:focus{border-color:#aacb7c;box-shadow:0 0 0 3px #c7f36c26;outline:0}
.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.auth-primary{background:var(--ink);color:#fff}.auth-secondary{background:var(--green);color:var(--ink)}.auth-link{display:block;margin:13px auto 0;background:transparent;color:#6b8752;font-size:10px;font-weight:800;padding:7px 10px}
.auth-footnote{font-size:9px;line-height:1.6;color:#a0aaa0;text-align:center;margin:18px 0 0}.auth-gate button:disabled,.auth-gate input:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:380px){.auth-gate{padding:14px}.auth-card{padding:22px 18px;border-radius:23px}.auth-intro h1{font-size:26px}}
