:root{--bg:#f5f6f2;--card:#fff;--input-bg:#fff;--surface-2:#f0f2ee;--surface-3:#eef0ec;--inset:#fafbf9;--text:#1d2621;--muted:#6b766f;--line:#e4e7e1;--line-strong:#d3d8d0;--green:#2f7d52;--green-dark:#23633f;--green-hover:#23633f;--green-soft:#e6f2ea;--red:#c4422f;--red-soft:#fbe9e6;--amber:#b7791f;--amber-soft:#fbf1df;--amber-text:#7a5410;--f-text:#a57c0c;--walmart-text:#0071dc;--cal:#e0702d;--p:#2f6fd1;--c:#2f9a5a;--f:#d4a017;--water:#1f86c9;--radius:12px;--shadow:0 1px 2px #141e190d, 0 2px 8px #141e190a;--shadow-lg:0 6px 18px #141e191a;--backdrop:#141c1873;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.45}:root[data-theme=dark]{--bg:#131416;--card:#1c1d20;--input-bg:#16171a;--surface-2:#26282c;--surface-3:#2c2e33;--inset:#18191c;--text:#e6e7ea;--muted:#9a9ea7;--line:#2b2d32;--line-strong:#3c3f46;--green:#3b82f6;--green-dark:#93c0fb;--green-hover:#2f6fdb;--green-soft:#1d2a40;--red:#f07563;--red-soft:#3b201c;--amber:#e2a540;--amber-soft:#352a15;--amber-text:#f2c879;--f-text:#e6bf45;--walmart-text:#5aa9f5;--cal:#f28c4c;--p:#6aa5f3;--c:#4fc283;--f:#e6bf45;--water:#4aa8f0;--shadow:0 1px 2px #00000059, 0 2px 8px #00000040;--shadow-lg:0 8px 22px #00000073;--backdrop:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .scan-photo{background:#0e0f11}*{box-sizing:border-box}body{margin:0}h1,h2,h3,h4{margin:0;line-height:1.2}h1{letter-spacing:-.02em;font-size:1.7rem}a{color:inherit}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line-strong);background:var(--input-bg);border-radius:8px;min-width:0;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb, var(--green) 35%, transparent);border-color:var(--green)}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}input[type=range]{accent-color:var(--green);border:0;width:100%;padding:0}textarea{resize:vertical;width:100%}.muted{color:var(--muted)}.small{font-size:.85rem}.grow{flex:1}.w-xs{width:70px}.w-sm{width:95px}.w-md{width:160px}.self-end{align-self:flex-end}.btn{cursor:pointer;background:var(--card);white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:8px 14px;font-weight:600;transition:background .15s,border-color .15s}.btn:disabled{opacity:.5;cursor:default}.btn-sm{padding:5px 10px;font-size:.85rem}.btn-block{width:100%;padding:10px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover:not(:disabled){background:var(--green-hover)}.btn-ghost{border-color:var(--line-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger-ghost{border-color:var(--line-strong);color:var(--red)}.btn-danger-ghost:hover,.btn-danger-ghost.armed{background:var(--red-soft);border-color:var(--red)}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:1.3rem;line-height:1}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.link{color:var(--green);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.link:hover{text-decoration:underline}.seg{border:1px solid var(--line-strong);background:var(--card);border-radius:9px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:6px 12px;font-weight:500}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--green);color:#fff}.seg-sm button{padding:3px 9px;font-size:.82rem}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:10;position:sticky;top:0}.topbar-inner{flex-wrap:nowrap;align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:10px 20px;display:flex}.logo{letter-spacing:-.02em;color:var(--green-dark);align-items:center;gap:8px;font-size:1.15rem;font-weight:800;display:inline-flex}.tabs{flex-wrap:nowrap;gap:2px;min-width:0;display:flex}.tab{white-space:nowrap;color:var(--muted);border-radius:8px;padding:7px 12px;font-size:.93rem;font-weight:600;text-decoration:none}.tab:hover{background:var(--surface-2);color:var(--text)}.tab.active{background:var(--green-soft);color:var(--green-dark)}.topbar-right{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.goal-chip{white-space:nowrap;background:var(--surface-2);border-radius:99px;padding:4px 10px;font-size:.82rem;font-weight:600;text-decoration:none}.save-dot{background:var(--green);border-radius:50%;width:8px;height:8px}.save-dot.saving{background:var(--amber)}.save-dot.error{background:var(--red)}.user-menu{align-items:center;gap:8px;display:flex}.user-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.85rem;display:none;overflow:hidden}.banner{text-align:center;padding:8px;font-size:.9rem}.banner.error{background:var(--red-soft);color:var(--red)}.banner.warn{background:var(--amber-soft);color:var(--amber-text)}.banner.info{background:var(--green-soft);color:var(--green-dark)}.banner .icon-btn{color:inherit;vertical-align:middle;margin-left:8px}.page{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head p{max-width:640px;margin:4px 0 0}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.search{width:280px}.back-link{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-bottom:10px;padding:0;font-weight:600}.back-link:hover{color:var(--text)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-title{margin-bottom:12px;font-size:1rem}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title-row .card-title{margin:0}.stack{flex-direction:column;gap:16px;display:flex}.detail-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:16px;margin-top:16px;display:grid}.section-title{align-items:center;gap:8px;margin:26px 0 10px;font-size:1.05rem;display:flex}.count{background:var(--surface-3);color:var(--muted);border-radius:99px;padding:1px 8px;font-size:.75rem}.empty{text-align:center;color:var(--muted);border:2px dashed var(--line-strong);border-radius:var(--radius);margin-top:16px;padding:40px 20px}.sub-title{margin:20px 0 8px;font-size:.95rem}.note{background:var(--amber-soft);color:var(--amber-text);border-radius:8px;margin-top:10px;padding:6px 10px;font-size:.83rem}.notes{white-space:pre-wrap;margin:0}.splash{place-content:center;justify-items:center;gap:6px;min-height:100vh;display:grid}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field-label{color:var(--muted);font-size:.8rem;font-weight:600}.hint{color:var(--muted);font-size:.78rem}.form-row{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.form-row.align-center{align-items:center}.form-row>.field{margin-bottom:10px}.form-error{color:var(--red);font-size:.85rem}.form-error.inline{margin-right:auto}.form-ok{color:var(--green);font-size:.85rem}.checks{flex-wrap:wrap;gap:14px;padding-top:4px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:.75rem;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.table tfoot td{border-bottom:0;font-weight:700}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right;white-space:nowrap}.table .actions .btn+.btn{margin-left:6px}.table-card{padding:4px 8px;overflow-x:auto}.table tr.group-cont td{border-top:0;padding-top:2px}.table tbody tr:has(+tr.group-cont) td{border-bottom-color:#0000;padding-bottom:2px}.food-name{font-weight:600}.variant-label{color:var(--muted);font-size:.85rem}.ing-table td{padding:6px}.ing-table select{max-width:240px}.macro-line{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px;font-size:.85rem;display:inline-flex}.m-cal{color:var(--cal);font-weight:700}.m-p{color:var(--p)}.m-c{color:var(--c)}.m-f{color:var(--f-text)}.macro-line .m-cal{color:var(--text)}.macro-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.macro-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);--accent:var(--cal);padding:14px 16px}.macro-card.p{--accent:var(--p)}.macro-card.c{--accent:var(--c)}.macro-card.f{--accent:var(--f)}.macro-card-head{justify-content:space-between;align-items:center;display:flex}.macro-label{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.pct{background:color-mix(in srgb, var(--accent) 12%, var(--card));color:var(--accent);border-radius:99px;padding:1px 8px;font-size:.85rem;font-weight:700}.pct.over{background:var(--red-soft);color:var(--red)}.macro-value{font-variant-numeric:tabular-nums;margin:8px 0}.macro-value b{letter-spacing:-.02em;font-size:1.6rem}.bar{background:var(--surface-3);border-radius:99px;height:8px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .3s}.remaining{color:var(--muted);margin-top:6px;font-size:.82rem}.remaining.over{color:var(--red);font-weight:600}.date-nav{align-items:center;gap:6px;display:flex}.meals{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin-top:16px;display:grid}.meal-col{flex-direction:column;gap:16px;min-width:0;display:flex}.meal-card{padding:16px 18px}.meal-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.meal-head h2{font-size:1.05rem}.entries{margin:0;padding:0;list-style:none}.entry{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:8px 0;display:grid}.entry-name{align-items:center;gap:6px;font-weight:600;display:flex}.entry-qty{justify-content:flex-end;align-items:center;gap:6px;display:flex}.entry-qty input,.entry-qty select{padding:3px 6px;font-size:.85rem}.entry-foot{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.entry-cost{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem;font-weight:600}.meal-sub{flex-wrap:wrap;align-items:center;gap:12px;display:inline-flex}.day-cost{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:baseline;gap:12px;margin-top:14px;padding:12px 16px;display:flex}.day-cost b{font-variant-numeric:tabular-nums;font-size:1.3rem}.entry-remove{grid-area:1/3;padding:4px 8px}.add-link{color:var(--green);cursor:pointer;background:0 0;border:0;padding:8px 0 0;font-weight:600}.add-link:hover{text-decoration:underline}.add-entry{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:4px;padding-top:12px;display:flex}.add-entry-fields{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.add-entry-fields select:first-child{flex:1;min-width:180px}.add-entry-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.food-search{position:relative}.food-search-input{width:100%;padding:9px 12px}.food-search-list{z-index:20;background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);border-radius:10px;max-height:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.food-search-item{cursor:pointer;border-radius:7px;flex-direction:column;gap:1px;padding:7px 10px;display:flex}.food-search-item.active{background:var(--green-soft)}.fs-name{font-size:.9rem;font-weight:600}.fs-new{color:var(--green-dark)}.fs-brand{color:var(--muted);font-weight:500}.fs-detail{color:var(--muted);font-size:.78rem}.food-search-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px 2px;font-size:.7rem;font-weight:700}.food-search-empty{color:var(--muted);padding:10px;font-size:.85rem}.food-search-empty a{color:var(--green);font-weight:600}.picked{align-items:center;gap:8px;display:flex}.brand-picker{flex-direction:column;gap:6px;display:flex}.brand-option{text-align:left;background:var(--card);border:1px solid var(--line-strong);cursor:pointer;border-radius:9px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.brand-option:hover,.brand-option:focus-visible{border-color:var(--green);background:var(--green-soft);outline:none}.brand-option.suggested{border-color:var(--green)}.brand-name{align-items:center;gap:8px;font-weight:600;display:flex}.brand-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.add-entry-preview{flex-wrap:wrap;align-items:center;gap:12px;display:inline-flex}.planned{background:var(--green-soft);border-radius:8px;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;margin-bottom:8px;padding:6px 10px;display:flex}.planned>*{white-space:nowrap;flex-shrink:0}.planned-name{text-overflow:ellipsis;flex:auto;min-width:0;font-weight:600;overflow:hidden}.planned .btn{margin-left:auto}.planned .btn+.btn{margin-left:0}.tags{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.tag{background:var(--surface-3);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:.72rem;font-weight:600}.tag-green{background:var(--green-soft);color:var(--green-dark)}.tag-amber{background:var(--amber-soft);color:var(--amber);cursor:pointer;font:inherit;border:0;margin-left:6px;font-size:.72rem;font-weight:600}.tag-amber:hover{text-decoration:underline}.chip-btn{border:1px solid color-mix(in srgb, var(--amber) 35%, var(--card));background:var(--amber-soft);color:var(--amber-text);cursor:pointer;border-radius:99px;padding:4px 12px;font-size:.82rem;font-weight:600}.chip-btn.active{background:var(--amber);color:#fff;border-color:var(--amber)}.tag-red{background:var(--red-soft);color:var(--red);margin-left:6px}.section-group .section-title{margin-top:20px}.section-list{margin:12px 0;padding:0;list-style:none}.section-row{border-bottom:1px solid var(--line);padding:6px 0}.section-row-main{align-items:center;gap:6px;display:flex}.section-row-main input{flex:1}.section-row-main .btn{min-width:84px}.section-count{text-align:right;width:64px}.icon-btn:disabled{opacity:.3;cursor:default;background:0 0}.section-move{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0 4px;display:flex}.section-add{margin-top:4px}.data-tools{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.data-tools>*{flex:0 auto}:is(.data-tools>.lookup-panel,.data-tools>.label-scan:has(.scan-panel)){flex:100%}.label-scan{margin:0}.lookup-panel{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.lookup-head{align-items:center;gap:8px;display:flex}.lookup-head .icon-btn{margin-left:auto}.lookup-results{border:1px solid var(--line);border-radius:8px;max-height:280px;margin:0;padding:0;list-style:none;overflow-y:auto}.lookup-results li+li{border-top:1px solid var(--line)}.lookup-results button{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;width:100%;padding:8px 10px;display:flex}.lookup-results button:hover{background:var(--green-soft)}.lr-name{font-size:.88rem;font-weight:600}.lr-brand{color:var(--green-dark)}.lr-meta{color:var(--muted);font-size:.78rem}.lookup-pick{flex-direction:column;gap:8px;display:flex}.lookup-pick p{margin:0}.scan-panel{border:1px solid var(--line-strong);background:var(--card);border-radius:10px;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:12px;display:grid}.scan-photo{object-fit:contain;background:var(--surface-2);border-radius:6px;width:100%;max-height:360px}.scan-body{flex-direction:column;gap:8px;min-width:0;display:flex}.scan-body p{margin:0}.scan-grid{flex-wrap:wrap;gap:4px 12px;display:flex}.scan-grid .field{margin-bottom:4px}.field.missing input{border-color:var(--amber);background:var(--amber-soft)}.field.missing .field-label:after{content:" · not found";color:var(--amber);font-weight:600}.scan-progress .bar{margin-top:4px}.scan-progress .bar-fill{background:var(--green)}.scan-raw summary{cursor:pointer;color:var(--muted);font-size:.8rem}.scan-raw pre{background:var(--inset);white-space:pre-wrap;border-radius:6px;max-height:160px;padding:8px;font-size:.72rem;overflow:auto}.scan-actions{justify-content:flex-end}@media (width<=700px){.scan-panel{grid-template-columns:1fr}}.variant-edit{border:1px solid var(--line);background:var(--inset);border-radius:10px;margin-bottom:10px;padding:12px 12px 2px}.variant-edit.collapsed{padding:0}.variant-edit.open .variant-head{border-bottom:1px solid var(--line);margin:-12px -12px 10px}.variant-head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:baseline;gap:8px;padding:10px 12px;display:flex}.variant-head:hover{background:color-mix(in srgb, var(--line) 35%, transparent)}.variant-head .chev{width:1em;color:var(--muted,inherit)}.variant-head-title{font-weight:600}.variant-head-sum{text-align:right;margin-left:auto}.variant-toggle-all{justify-content:flex-end;gap:12px;margin:-4px 0 6px;display:flex}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.recipe-card{text-align:left;cursor:pointer;flex-direction:column;gap:4px;transition:transform .12s,box-shadow .12s;display:flex}.recipe-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.recipe-card h3{font-size:1.05rem}.per-serving{align-items:baseline;gap:6px;margin-top:10px;display:flex}.per-serving .big{letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.pcf{flex-wrap:wrap;gap:12px;font-size:.85rem;font-weight:600;display:flex}.recipe-price{color:var(--text);margin-left:auto}.servings-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-weight:600;display:flex}.stepper{border:1px solid var(--line-strong);border-radius:8px;display:inline-flex;overflow:hidden}.stepper button{background:var(--surface-2);cursor:pointer;border:0;width:34px;font-size:1.1rem}.stepper input{text-align:center;border:0;border-radius:0;width:70px}.per-serving-lg{text-align:center;grid-template-columns:repeat(4,1fr);display:grid}.per-serving-lg b{font-size:1.35rem;display:block}.per-serving-lg span{color:var(--muted);font-size:.78rem}.editor-totals{background:var(--inset);border-radius:10px;flex-wrap:wrap;gap:30px;margin:16px 0;padding:12px;display:flex}.editor-totals>div{flex-direction:column;gap:2px;display:flex}.shop-section+.shop-section{margin-top:12px}.shop-section h4{text-transform:uppercase;letter-spacing:.05em;color:var(--green-dark);margin-bottom:4px;font-size:.75rem}.shop-section ul{margin:0;padding:0;list-style:none}.shop-section li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:7px 0;font-size:.88rem;display:flex}.shop-main{flex-direction:column;flex:1;min-width:0;display:flex}.shop-detail{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.shop-extra{color:var(--amber)}.shop-buy{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;display:flex}.shop-cost{font-size:.82rem;font-weight:600}.shop-section li.done .shop-name,.shop-section li.done .shop-buy{color:var(--muted);text-decoration:line-through}.wm-link{color:var(--walmart-text);white-space:nowrap;margin-left:8px;font-size:.72rem;font-weight:700;text-decoration:none}.wm-link:hover{text-decoration:underline}.wm-link.search{color:var(--muted);font-weight:600}.wm-cart{background:color-mix(in srgb, #0071dc 9%, var(--card));border:1px solid color-mix(in srgb, #0071dc 28%, var(--card));border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:.9rem;display:flex}.btn-walmart{color:#fff;background:#0071dc;text-decoration:none}.btn-walmart:hover{background:#005cb4}.shop-total{border-top:2px solid var(--line-strong);justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:10px;font-size:1rem;display:flex}.shop-total b{font-size:1.2rem}.cost-line{justify-content:space-between;padding:3px 0;font-size:.9rem;display:flex}.cost-line b{font-variant-numeric:tabular-nums}.diet-types{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.diet-type{text-align:left;cursor:pointer;border-width:2px}.diet-type h3{margin:4px 0}.diet-type p{margin:0}.diet-kcal{margin-top:10px;font-size:.9rem;font-weight:700;display:inline-block}.diet-type.selected{border-color:var(--green);background:var(--green-soft)}.diet-short{text-transform:uppercase;letter-spacing:.05em;color:var(--green);font-size:.75rem;font-weight:700}.goal-cal{margin-bottom:14px}.goal-cal b{letter-spacing:-.03em;font-size:2.2rem}.goal-rows{flex-direction:column;gap:8px;display:flex}.goal-row{align-items:center;gap:10px;display:flex}.goal-row .dot{border-radius:50%;width:10px;height:10px}.goal-row.p .dot{background:var(--p)}.goal-row.c .dot{background:var(--c)}.goal-row.f .dot{background:var(--f)}.goal-label{width:70px;font-weight:600}.goal-g{font-variant-numeric:tabular-nums;width:70px;font-weight:700}.facts{border-top:1px solid var(--line);grid-template-columns:auto auto;gap:4px 12px;margin:16px 0 0;padding-top:12px;font-size:.88rem;display:grid}.facts dt{color:var(--muted)}.facts dd{text-align:right;margin:0;font-weight:600}.plan-settings .form-row{gap:24px}.plan-settings .field{min-width:220px}.target-chip{background:var(--surface-2);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;display:flex}.session-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.session{flex-direction:column;gap:8px;display:flex}.session-head{justify-content:space-between;align-items:center;display:flex}.cook-day{color:var(--green-dark);font-weight:700}.session-select{font-weight:600}.session-meta{color:var(--muted);font-size:.85rem}.session-meta b{color:var(--text)}.session-portion{flex-direction:column;gap:2px;display:flex}.session-cost{border-top:1px solid var(--line);justify-content:space-between;padding-top:8px;font-size:.85rem;display:flex}.cost-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.cost-summary>div{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.cost-summary b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem}.fit{border-radius:99px;padding:2px 8px;font-size:.72rem;font-weight:700}.fit.good{background:var(--green-soft);color:var(--green-dark)}.fit.ok{background:var(--amber-soft);color:var(--amber)}.fit.bad{background:var(--red-soft);color:var(--red)}.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:12px;display:grid}.week-day{flex-direction:column;gap:6px;display:flex}.week-date{justify-content:space-between;align-items:baseline;padding:0 2px;display:flex}.slot{background:color-mix(in srgb, var(--slot) 13%, var(--card));border-left:3px solid var(--slot);border-radius:8px;flex-direction:column;gap:3px;min-height:84px;padding:8px;display:flex}.slot-meal{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.68rem;font-weight:700}.slot-name{flex:1;font-size:.82rem;font-weight:600}.slot-badge{background:var(--slot);color:#fff;border-radius:99px;align-self:flex-start;padding:1px 7px;font-size:.68rem;font-weight:700}.slot-badge.ghost{color:var(--muted);background:0 0;padding:0}.slot.c0{--slot:#2f7d52}.slot.c1{--slot:#2f6fd1}.slot.c2{--slot:#c0612b}.slot.c3{--slot:#7b4fc4}.slot.c4{--slot:#b08a12}.slot.c5{--slot:#1f8a8a}.modal-backdrop{background:var(--backdrop);z-index:50;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;box-shadow:0 20px 50px #0003}.modal.wide{width:min(940px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h2{font-size:1.15rem}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.auth-wrap{background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--green) 14%, var(--bg)), transparent 50%), radial-gradient(circle at 90% 90%, color-mix(in srgb, var(--amber) 12%, var(--bg)), transparent 50%), var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{width:min(400px,100%);padding:32px}.auth-card h1{margin-top:14px;font-size:1.45rem}.auth-card>p{margin:6px 0 20px}.auth-card input{width:100%}.auth-card .form-error{margin-bottom:12px;display:block}.auth-switch{text-align:center;color:var(--muted);margin:16px 0 0;font-size:.9rem}@media (width<=900px){.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meals,.detail-grid,.diet-types,.cost-summary{grid-template-columns:1fr}.week{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1180px){.topbar-inner{flex-wrap:wrap;row-gap:6px;padding-bottom:6px}.tabs{scrollbar-width:none;order:3;width:100%;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}}.ai-result{border:1px solid var(--line);background:var(--inset);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ai-result p{margin:0}.ai-title{align-items:center;gap:8px;display:flex}.ai-macros{font-variant-numeric:tabular-nums;gap:14px;font-size:.95rem;display:flex}.tag-blue{background:color-mix(in srgb, var(--p) 16%, var(--card));color:var(--p)}.lookup-head .seg{margin-left:4px}.key-field{border-top:1px solid var(--line);padding:14px 0 6px}.key-field p{margin:4px 0 8px}.key-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.key-field input[type=password]{font-family:ui-monospace,Consolas,monospace}.import-pick{flex-direction:column;gap:12px;display:flex}.import-pick p{margin:0}textarea.mono{font-family:ui-monospace,Consolas,monospace;font-size:.8rem}.import-working{text-align:center;padding:40px 20px}.import-working p{margin:6px 0}.spinner{border:4px solid var(--green-soft);border-top-color:var(--green);border-radius:50%;width:36px;height:36px;margin:0 auto 14px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.import-review{flex-direction:column;gap:10px;display:flex}.import-review .note ul{margin:4px 0 0;padding-left:18px}.import-table td{vertical-align:top}.import-table select{max-width:260px}.import-table td:nth-child(2) .link,.import-table td:nth-child(2) .tag{margin-top:4px;display:inline-block}.import-table tr.row-bad td{background:var(--red-soft)}.import-table tr.row-edit td{background:var(--inset)}.new-food-edit .form-row{gap:8px}.nowrap{flex-wrap:nowrap}.import-summary{background:var(--inset);border-radius:10px;flex-wrap:wrap;gap:28px;padding:10px 12px;display:flex}.import-summary>div{flex-direction:column;gap:2px;display:flex}.theme-toggle{padding:4px 8px;font-size:1.05rem}.auth-logo{justify-content:space-between;align-items:center;display:flex}:root[data-theme=dark] .slot.c0{--slot:#3b82f6}:root[data-theme=dark] .slot.c1{--slot:#8b5cf6}.plan-actions{margin-top:6px}.add-session{border:1px solid var(--line);background:var(--inset);border-radius:10px;margin-top:12px;padding:12px}.grid-help{margin:-4px 0 8px}.week-day.today .week-date b{color:var(--green)}.slot.empty{--slot:var(--line-strong)}.slot.skip{--slot:var(--muted);opacity:.75}.slot-select{width:100%;color:var(--text);cursor:pointer;background:0 0;border-color:#0000;padding:3px 4px;font-size:.8rem;font-weight:600}.slot-select:hover,.slot-select:focus{border-color:var(--line-strong);background:var(--card)}.slot.empty .slot-select,.slot.skip .slot-select{color:var(--muted);font-weight:500}.slot-warn{color:var(--amber);font-size:.68rem;font-weight:600}.session{border-top:3px solid var(--slot)}.session.c0{--slot:#2f7d52}.session.c1{--slot:#2f6fd1}.session.c2{--slot:#c0612b}.session.c3{--slot:#7b4fc4}.session.c4{--slot:#b08a12}.session.c5{--slot:#1f8a8a}:root[data-theme=dark] .session.c0{--slot:#3b82f6}:root[data-theme=dark] .session.c1{--slot:#8b5cf6}.session-head{flex-wrap:wrap;justify-content:flex-start;gap:6px}.session-head .fit{margin-left:auto}.session-head select{padding:3px 6px;font-size:.85rem}.session-dot{background:var(--slot);border-radius:50%;width:10px;height:10px}.status-seg{align-self:flex-start}.session.is-cooked{opacity:.85}.extra-input{width:54px;padding:2px 6px}.session-actions{border-top:1px solid var(--line);margin-top:auto;padding-top:8px}.week{grid-template-columns:repeat(7,minmax(0,1fr))}.recipe-picker{position:relative}.rp-input{width:100%;padding:8px 10px;font-weight:600}.rp-input::placeholder{color:var(--muted);font-weight:500}.rp-list{z-index:30;background:var(--card);border:1px solid var(--line-strong);min-width:300px;box-shadow:var(--shadow-lg);border-radius:10px;max-height:340px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.rp-item{cursor:pointer;border-radius:7px;flex-direction:column;gap:2px;padding:7px 10px;display:flex}.rp-item.active{background:var(--green-soft)}.rp-item.current .rp-name{color:var(--green)}.rp-name{align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:flex}.rp-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;display:flex}.rp-meta .fit{margin-left:auto}.undo-bar{z-index:15;background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);border-radius:10px;align-items:center;gap:12px;margin:0 0 14px;padding:10px 14px;display:flex;position:sticky;top:64px}.undo-bar span{flex:1}.date-nav{flex-wrap:wrap}.daily-field{border-top:1px dashed var(--line);flex-direction:column;gap:6px;padding:8px 0 10px;display:flex}.planned.daily{background:color-mix(in srgb, var(--p) 10%, var(--card))}.daily-actions{gap:6px;margin-left:auto;display:inline-flex}.planned.daily .daily-actions .btn{margin-left:0}.log-all{margin:-2px 0 8px;display:block}.skipped-note{margin:10px 0 -4px}.portion-preview{margin:0 0 8px}.ing-table .combobox,.import-table .combobox{min-width:230px}.ing-table .rp-input,.import-table .rp-input{padding:7px 10px;font-weight:500}.combobox .rp-list{min-width:320px}.cooked-label{color:var(--muted)}.cooked-label.never{color:var(--green);font-weight:600}.detail-cooked{margin:4px 0 0}.wl-finder{flex-direction:column;gap:10px;display:flex}.wl-finder p{margin:0}.wl-pick{border:1px solid var(--line);border-radius:8px;max-height:380px;margin:0;padding:0;list-style:none;overflow-y:auto}.wl-pick li{border-bottom:1px solid var(--line);padding:6px 10px}.wl-pick li:last-child{border-bottom:0}.wl-bar{max-width:360px;margin:10px auto}.wl-table td{vertical-align:top}.wl-product{color:var(--walmart-text);font-weight:600;text-decoration:none}.wl-product:hover{text-decoration:underline}.wl-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.wl-use{white-space:nowrap;flex-direction:column;gap:4px;display:flex}.wl-miss td{opacity:.75}.alt-link{color:var(--amber-text);white-space:nowrap;margin-left:8px;font-size:.72rem;font-weight:700;text-decoration:none}.alt-link:hover{text-decoration:underline}.alt-links{border-top:1px dashed var(--line);flex-direction:column;gap:6px;padding:8px 0;display:flex}.alt-link-row input{padding:4px 8px}.alt-link-url{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;font-size:.82rem;overflow:hidden}.btn-sub{opacity:.8;font-size:.68rem;font-weight:500;display:block}.price-trend{white-space:nowrap;margin-left:6px;font-size:.72rem;font-weight:700}.pc-up{color:var(--red)}.pc-down{color:var(--c)}.price-chart{border-top:1px dashed var(--line);flex-direction:column;gap:6px;padding:10px 0 4px;display:flex}.pc-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.pc-plot{max-width:560px;position:relative}.pc-plot svg{touch-action:none;width:100%;height:auto;display:block}.pc-grid{stroke:var(--line);stroke-width:1px}.pc-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.pc-end{fill:var(--text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.pc-line{fill:none;stroke:var(--green);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.pc-area{fill:var(--green);opacity:.1;stroke:none}.pc-dot{fill:var(--green);stroke:var(--inset);stroke-width:2px}.pc-cross{stroke:var(--muted);stroke-width:1px}.pc-tip{background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;z-index:2;border-radius:8px;flex-direction:column;gap:1px;padding:6px 10px;font-size:.78rem;display:flex;position:absolute;top:0;transform:translate(-50%)}.pc-tip b{font-size:.95rem}.pc-table{max-width:420px}.repeat-meal{text-align:left;border:1px dashed var(--line-strong);width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:4px;padding:8px 10px;display:flex}.repeat-meal>span:first-child{color:var(--green-dark);font-weight:600}.repeat-meal:hover{background:var(--surface-2)}.copy-days{margin:8px 0 0;padding:0;list-style:none}.copy-days li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.copy-days-main{flex:1;min-width:0}.copy-days-names{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combobox.compact .rp-input{padding:7px 10px;font-weight:500}.combobox.compact .rp-list{min-width:240px}.toolbar-section{width:210px}.section-move .combobox{width:200px}.slot-combo .rp-input{color:var(--text);cursor:pointer;text-overflow:ellipsis;background:0 0;border-color:#0000;padding:3px 4px;font-size:.8rem;font-weight:600}.slot-combo .rp-input:hover,.slot-combo .rp-input:focus{border-color:var(--line-strong);background:var(--card);cursor:text}.slot.empty .slot-combo .rp-input,.slot.skip .slot-combo .rp-input{color:var(--muted);font-weight:500}.slot-combo .rp-list{min-width:260px}.ai-cost{margin:6px 0;display:block}.ai-cost b{color:var(--text)}.ai-usage-totals{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px;display:grid}.ai-usage-totals>div{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.ai-usage-totals b{font-size:1.15rem}.ai-usage-kinds{margin:0 0 8px;padding:0;list-style:none}.ai-usage-kinds li{border-top:1px solid var(--line);justify-content:space-between;padding:4px 0;display:flex}.trend-tiles{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.trend-tile{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.trend-value b{font-variant-numeric:tabular-nums;font-size:1.5rem}.trend-note{margin:8px 0 14px}.trend-charts{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.trend-chart{padding:12px 14px}.trend-chart .pc-plot{max-width:none}.tc-bar{fill:var(--tc)}.tc-bar.today{opacity:.55}.tc-hover{fill:var(--surface-2)}.tc-goal{stroke:var(--text);stroke-width:1.25px;stroke-dasharray:4 3;opacity:.7}.tc-goal-label{fill:var(--muted);font-size:11px;font-weight:600}.tc-cal{--tc:var(--cal)}.tc-p{--tc:var(--p)}.tc-c{--tc:var(--c)}.tc-f{--tc:var(--f)}.tc-cost{--tc:var(--green)}.trend-table{margin-top:14px}.trend-table .table{max-width:640px}@media (width<=900px){.trend-tiles{grid-template-columns:repeat(2,1fr)}.trend-charts{grid-template-columns:1fr}.week{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){input,select,textarea,.rp-input{font-size:16px}.topbar-inner{gap:8px 12px;padding:8px 12px 0}.logo{font-size:1.05rem}.topbar-right{gap:10px;margin-left:auto}.user-menu .btn{padding:4px 8px}.tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;order:3;width:calc(100% + 24px);margin:0 -12px;padding:0 8px 6px;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;padding:8px 12px}.page{padding:14px 12px 48px}.page-head{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:12px}.page-head h1{font-size:1.4rem}.page-head .btn-row,.date-nav{flex-wrap:wrap}.date-nav input[type=date]{flex:1;min-width:9.5em}.goal-chip{display:none}.macro-grid{gap:8px}.macro-card{padding:10px 12px}.card{padding:12px}.meals{gap:12px;margin-top:12px}.meal-col{gap:12px}.entry-remove{padding:6px 8px}.planned .btn{margin-left:0}.planned{flex-wrap:wrap}.week{grid-template-columns:1fr;padding:8px}.slot{min-height:0}.toolbar .search,.toolbar-section{width:100%}.rp-list,.combobox .rp-list,.combobox.compact .rp-list,.slot-combo .rp-list{min-width:0}.modal-backdrop{grid-template-columns:minmax(0,1fr);place-items:stretch stretch;padding:0}.modal,.modal.wide{border-radius:0;width:100%;height:100dvh;max-height:none}.modal-head,.modal-body,.modal-foot{padding-left:14px;padding-right:14px}.modal-foot{flex-wrap:wrap}.shop-section li{align-items:flex-start}.shop-section li input[type=checkbox]{flex:none;width:22px;height:22px;margin-top:2px}.ai-usage-totals{grid-template-columns:1fr}.trend-tiles{gap:8px}.trend-value b{font-size:1.25rem}.undo-bar{top:96px}}.peek{cursor:help;-webkit-text-decoration:underline dotted color-mix(in srgb, var(--muted) 70%, transparent);text-decoration:underline dotted color-mix(in srgb, var(--muted) 70%, transparent);text-underline-offset:3px;outline:none;position:relative}.peek-pop{z-index:40;background:var(--card);border:1px solid var(--line-strong);width:max-content;min-width:240px;max-width:min(360px,86vw);box-shadow:var(--shadow-lg);color:var(--text);cursor:default;text-align:left;white-space:normal;border-radius:10px;padding:10px 12px;font-size:.84rem;font-weight:400;display:none;position:absolute;top:calc(100% + 6px);left:0}.peek:hover .peek-pop,.peek:focus .peek-pop,.peek:focus-within .peek-pop{display:block}.peek-head{flex-direction:column;gap:1px;margin-bottom:6px;display:flex}.peek-list{grid-template-columns:minmax(0,1fr) auto auto;gap:3px 10px;display:grid}.peek-row{display:contents}.peek-qty,.peek-kcal{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.meal-col:last-child .peek-pop{left:auto;right:-40px}.suggest-btn{margin:8px 8px 0 0}.snack-suggest{border:1px solid var(--line-strong);background:var(--inset);border-radius:10px;flex-direction:column;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.snack-suggest p{margin:0}.sg-head{justify-content:space-between;align-items:center;display:flex}.sg-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sg-item{background:var(--card);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:8px 10px;display:grid}.sg-items{flex-direction:column;gap:2px;display:flex}.sg-macros{flex-wrap:wrap;grid-column:1;align-items:center;gap:10px;display:flex}.sg-deltas{flex-wrap:wrap;grid-column:1/-1;gap:4px 6px;display:flex}.sg-log{grid-area:1/2/span 2}.sg-delta{background:var(--surface-2);color:var(--muted);border-radius:99px;padding:1px 8px}.sg-delta.sg-ok{background:var(--green-soft);color:var(--green-dark)}.sg-delta.sg-over{background:var(--amber-soft);color:var(--amber-text)}.sg-delta.sg-under{background:var(--surface-3);color:var(--text)}@media (width<=640px){.sg-item{grid-template-columns:1fr}.sg-log{grid-area:auto/1;justify-self:start}.meal-col:last-child .peek-pop{left:0;right:auto}}.merge-similar{margin:-2px 0 10px}.merge-name{margin-top:10px}.merge-list{margin:0 0 10px;padding:0;list-style:none}.merge-list li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:7px 0;display:flex}.merge-label{min-width:160px;font-weight:600}.merge-label-input{width:200px;padding:5px 8px;font-weight:600}.merge-list li.incoming{background:color-mix(in srgb, var(--green) 6%, transparent);border-radius:6px;padding-left:6px;padding-right:6px}.pdf-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.day-strip{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1.2fr);align-items:stretch;gap:12px;margin-top:14px;display:grid}.day-strip .day-cost{flex-wrap:wrap;margin-top:0}.day-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;min-width:0;padding:10px 14px;display:flex}.dc-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.dc-head b{font-variant-numeric:tabular-nums;font-size:1.15rem}.water-bar{background:var(--inset);border:1px solid var(--line);border-radius:99px;height:8px;overflow:hidden}.water-bar span{background:var(--water);border-radius:99px;height:100%;transition:width .2s;display:block}.water-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.water-actions .chip-btn{background:color-mix(in srgb, var(--water) 12%, var(--card));border-color:color-mix(in srgb, var(--water) 35%, var(--card));color:var(--text)}.water-actions input{width:5.5em}.history-goals{margin:8px 0 0}.star-btn{color:var(--muted);cursor:pointer;opacity:.55;vertical-align:baseline;background:0 0;border:0;margin-left:4px;padding:0 4px;font-size:1rem;line-height:1}.star-btn:hover,.star-btn:focus-visible{opacity:1}.star-btn.on{color:var(--amber);opacity:1}.quick-add{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 4px;display:flex}.quick-chip{border:1px solid var(--line-strong);background:var(--inset);border-radius:99px;align-items:center;max-width:100%;display:inline-flex}.quick-chip>button{color:var(--text);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:99px;max-width:100%;padding:4px 10px;font-size:.82rem;overflow:hidden}.quick-chip>button:first-child:hover{color:var(--green-dark)}.quick-chip.fav{border-color:color-mix(in srgb, var(--amber) 45%, var(--card))}.quick-chip .star{color:var(--amber)}.quick-chip .unstar{color:var(--muted);padding:4px 8px 4px 0;font-size:.95rem}@media (width<=900px){.day-strip{grid-template-columns:1fr}}.tc-water{--tc:var(--water)}.tw-line{fill:none;stroke:var(--green);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.tw-dot{fill:var(--green);stroke:var(--card);stroke-width:2px}.tw-dot.on{stroke-width:2.5px}.goal-history{margin:8px 0;padding:0;list-style:none}.goal-history li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.goal-history li:first-child{border-top:0}.goal-history .tag{margin-left:8px}.scale-btns{gap:6px;display:inline-flex}.backup-due{color:var(--amber-text);font-weight:600}.restore-facts{margin:8px 0 12px}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}@media (width<=640px){.entry{grid-template-columns:minmax(0,1fr) auto}.entry-name{grid-column:1/-1}.entry-qty{grid-area:2/1;justify-content:flex-start}.entry-remove{grid-area:2/2}}.list-preview{border:1px solid var(--line);border-radius:var(--radius);gap:10px;max-height:260px;padding:10px 12px;display:grid;overflow:auto}.chip-list{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.chip{border:1px solid var(--line);background:var(--card);border-radius:99px;align-items:center;gap:4px;padding:2px 4px 2px 10px;font-size:.82rem;display:inline-flex}.chip-off{opacity:.45;text-decoration:line-through}.chip-x{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:99px;padding:2px 4px;font-size:.9rem;line-height:1}.chip-x:hover{background:var(--line);color:inherit}.progress{background:var(--line);border-radius:99px;width:min(360px,100%);height:6px;margin:0 auto 8px;overflow:hidden}.progress-bar{background:var(--green);height:100%;transition:width .3s}.specs{color:var(--muted);margin-top:2px}.variant-specs{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:420px;margin-top:2px;font-size:.78rem;display:-webkit-box;overflow:hidden}.list-review td.nowrap{white-space:nowrap}.list-review tr.row-skip td{opacity:.55}.list-review tr.row-skip td:last-child{opacity:1}.resume-note{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fluid-split{margin:4px 0 2px}.fluid-unknown{color:var(--amber-text);cursor:help}.link-quiet{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.link-quiet:hover{color:var(--green);text-decoration:underline}.fluid-goal-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fluid-goal-hint{flex-basis:100%}.day-diet{vertical-align:top;border:1px solid var(--line);border-radius:8px;margin-top:6px;margin-right:8px;display:inline-flex;overflow:hidden}.day-diet-btn{border:0;border-right:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;padding:4px 10px;font-size:.82rem}.day-diet-btn:last-child{border-right:0}.day-diet-btn:hover{color:var(--text,inherit);background:color-mix(in srgb, var(--line) 35%, transparent)}.day-diet-btn.active{background:var(--green);color:#fff}.day-diet-default{opacity:.75;font-size:.75rem}.day-setups{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.day-setup{border:1px solid var(--line);background:var(--inset);border-radius:10px;margin-top:8px;padding:8px 12px}.day-setup .form-row{margin-top:8px}.day-setup-goals{border:1px solid var(--line);border-radius:10px;gap:4px;margin:10px 0;padding:8px 10px;display:grid}.day-setup-goals>div{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.week-schedule{margin-top:14px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}.week-day{text-align:center;gap:3px;display:grid}.week-day select{width:100%;min-width:0;padding-left:4px;padding-right:2px;font-size:.8rem}@media (width<=560px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.health-imports{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.health-import{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;display:flex}.health-import p{margin:0}.health-import .ai-cost.block{display:block}.hi-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;width:100%;display:flex}.health-section{margin-bottom:26px}.health-section>.trend-tiles,.health-section>.trend-charts,.health-section>.btn-row{margin-top:10px}.health-section .trend-tiles{grid-template-columns:repeat(4,1fr)}.health-actions{margin:10px 0}.delta-good{color:var(--c)}.delta-bad{color:var(--red)}.health-table{margin-top:14px;padding:10px 14px}.health-table summary{cursor:pointer;font-weight:600}.table-scroll{overflow-x:auto}.hc-bar{fill:var(--green)}.hc-bar.on{opacity:.8}.hc-good{fill:#2f9a5a}.hc-ok{fill:#d4a017}.hc-bad{fill:#c4422f}.workout-list{margin-top:12px;padding:6px 14px}.wl-day{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:10px;padding:8px 0;display:grid}.wl-day:last-of-type{border-bottom:0}.wl-date{padding-top:4px}.wl-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:8px;padding:3px 0;display:flex}.wl-row:disabled{cursor:default}.wl-src{margin-left:auto}.wl-detail{gap:2px;padding:4px 0 6px 26px;display:grid}.wl-ex{justify-content:space-between;gap:12px;max-width:520px;display:flex}.pr-list{gap:4px;display:grid}.pr-list>div{justify-content:space-between;gap:12px;display:flex}.empty-health{padding:18px}@media (width<=900px){.health-imports{grid-template-columns:1fr}.health-section .trend-tiles{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.wl-day{grid-template-columns:1fr;gap:2px}}.activity-card{gap:6px;margin-top:12px;padding:10px 14px;display:grid}.ac-stats{flex-wrap:wrap;gap:6px 18px;font-size:.9rem;display:flex}.ac-dot{background:var(--muted);vertical-align:0;border-radius:50%;width:9px;height:9px;display:inline-block}.ac-dot.hc-good{background:#2f9a5a}.ac-dot.hc-ok{background:#d4a017}.ac-dot.hc-bad{background:#c4422f}.ac-workouts{flex-wrap:wrap;align-items:center;gap:6px 16px;display:flex}.health-section>.card,.strength>.card,.strength>.trend-charts{margin-top:12px}.strength{margin-top:18px}.strength .sub-title{margin-bottom:4px}.strength-lift{padding:12px 14px}.strength-lift .trend-chart{box-shadow:none;background:0 0;border:0;margin-top:8px;padding:0}.sl-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sl-head>div{flex:200px;max-width:300px}.strength .trend-charts>.card{margin-top:0}.pr-list .link-quiet{color:var(--text);text-align:left}.ac-edit{margin-left:auto}.activity-empty{margin:10px 0 0}.whoop-workout-row input[list]{width:170px}.planned .macro-line{white-space:nowrap;flex-wrap:nowrap}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.bottom-nav,.more-backdrop{display:none}.nav-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:22px;height:22px}@media (width<=640px){.topbar .tabs,.topbar .user-menu,.topbar .theme-toggle{display:none}.topbar-inner{padding:8px 14px;padding-top:calc(8px + env(safe-area-inset-top));flex-wrap:nowrap}.topbar .goal-chip{font-size:.78rem;display:inline-block}.bottom-nav{z-index:30;background:var(--card);border-top:1px solid var(--line-strong);padding:4px 4px env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000001f}.bn-item{min-width:0;min-height:56px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex}.bn-item span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.bn-item.active{color:var(--green);background:var(--green-soft)}.more-backdrop{z-index:29;background:#00000073;display:block;position:fixed;inset:0}.more-sheet{left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line-strong);border-radius:16px 16px 0 0;gap:10px;padding:14px 14px 10px;display:grid;position:absolute}.more-links{grid-template-columns:1fr 1fr;gap:8px;display:grid}.more-link{background:var(--surface-2);min-height:52px;color:var(--text);border-radius:12px;align-items:center;gap:10px;padding:0 14px;font-weight:600;text-decoration:none;display:flex}.more-link.active{background:var(--green-soft);color:var(--green)}.more-foot{border-top:1px solid var(--line);align-items:center;gap:10px;padding-top:4px;display:flex}.more-foot .theme-toggle{width:44px;height:44px;font-size:1.2rem}.more-user{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.page{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.btn{min-height:44px}.btn-sm{min-height:40px;padding:6px 12px}.icon-btn{min-width:40px;min-height:40px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select{min-height:44px}input[type=checkbox],input[type=radio]{width:20px;height:20px}.check{min-height:40px}.link,.link-quiet{padding-block:6px}.seg button{min-height:40px}.seg{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{white-space:nowrap;flex-shrink:0}.day-diet{scrollbar-width:none;max-width:100%;display:flex;overflow-x:auto}.day-diet-btn{white-space:nowrap;flex:1 0 auto;min-height:38px}.table-card{overflow-x:auto}.foods-table thead{display:none}.foods-table,.foods-table tbody{display:block}.foods-table tr{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:10px 14px;display:flex}.foods-table tr.group-cont{border-top:0;padding-top:4px}.foods-table td{text-align:left;border:0;padding:0;display:block}.foods-table td:first-child{flex:100%}.foods-table td[data-label]:before{content:attr(data-label) " ";color:var(--muted);font-size:.75rem}.foods-table .ft-serving{color:var(--muted);flex-basis:100%;font-size:.85rem}.foods-table .ft-pkg{display:none}.foods-table .ft-price{margin-left:auto}.foods-table td.actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;gap:6px;display:flex}.foods-table td.actions:empty{display:none}.day-strip{grid-template-columns:1fr 1fr}.day-strip>:nth-child(2){order:-1;grid-column:1/-1}.planned{flex-wrap:wrap;row-gap:6px}.planned-name{flex:60%}.planned>.muted{flex:auto}.planned .btn{margin-left:auto}.planned .btn+.btn{margin-left:0}.daily-actions{margin-left:auto}.health-section .trend-tiles,.trend-tiles{grid-template-columns:1fr 1fr}button.link,button.link-quiet{align-items:center;min-height:36px;display:inline-flex}.water-actions button,.wl-row{min-height:40px}.trend-table{overflow-x:auto}.day-strip .day-cost{flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;padding:12px 14px}}.nav-menu{position:relative}.nav-menu-btn{font:inherit;cursor:pointer;background:0 0;border:0;font-size:.93rem;font-weight:600}.nav-menu-list{z-index:40;background:var(--card);border:1px solid var(--line-strong);min-width:190px;box-shadow:var(--shadow-lg);border-radius:10px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.nav-menu-item{color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.nav-menu-item .nav-icon{width:18px;height:18px;color:var(--muted)}.nav-menu-item:hover,.nav-menu-item:focus-visible{background:var(--surface-2);outline:none}.nav-menu-item.active{background:var(--green-soft);color:var(--green-dark)}.subtabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin:-4px 0 14px;padding-bottom:8px;display:flex;overflow-x:auto}.subtabs::-webkit-scrollbar{display:none}.subtab{color:var(--muted);white-space:nowrap;border-radius:99px;padding:6px 12px;font-size:.88rem;font-weight:600;text-decoration:none}.subtab:hover{color:var(--text);background:var(--surface-2)}.subtab.active{background:var(--green-soft);color:var(--green-dark)}.health-imports.two{grid-template-columns:repeat(2,minmax(0,1fr))}.health-imports.one{grid-template-columns:minmax(0,1fr);max-width:560px}@media (width<=900px){.health-imports.two{grid-template-columns:1fr}}@media (width<=640px){.subtab{align-items:center;min-height:40px;display:inline-flex}}.whoop-quick{gap:8px;margin-top:12px;padding:10px 14px;display:grid}.wq-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.wq-head .link{margin-left:auto}.wq-fields{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.wq-field{color:var(--muted);gap:3px;font-size:.78rem;display:grid}.wq-sleep{gap:4px;display:flex}.wq-save{align-self:flex-end}@media (width<=640px){.wq-fields{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.wq-fields input{width:100%}.wq-save{grid-column:1/-1}}
