:root{--text:#5f5769;--text-h:#17121f;--bg:#f7f6fa;--surface:#fff;--surface-2:#faf9fc;--border:#e7e4ee;--border-strong:#d6d2e0;--code-bg:#f4f3ec;--accent:#8b3ff0;--accent-strong:#7a2fe0;--accent-ink:#fff;--accent-bg:#8b3ff014;--accent-border:#8b3ff059;--good:#1a7f37;--good-bg:#1a7f371a;--danger:#d1274a;--danger-bg:#d1274a1a;--warn:#a06a00;--warn-bg:#a06a001a;--shadow-sm:#17121f0d 0 1px 2px, #17121f0a 0 1px 1px;--shadow:#17121f1a 0 10px 15px -3px, #17121f0d 0 4px 6px -2px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);accent-color:var(--accent);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root:not([data-theme]){--text:#a29daf;--text-h:#f3f1f7;--bg:#0f0f14;--surface:#191921;--surface-2:#15151c;--border:#2a2833;--border-strong:#38353f;--code-bg:#1f2028;--accent:#c084fc;--accent-strong:#b06bfa;--accent-ink:#1a1024;--accent-bg:#c084fc24;--accent-border:#c084fc66;--good:#4ade80;--good-bg:#4ade801f;--danger:#f87171;--danger-bg:#f871711f;--warn:#fbbf24;--warn-bg:#fbbf241f;--shadow-sm:#0006 0 1px 2px;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}:root[data-theme=dark]{--text:#a29daf;--text-h:#f3f1f7;--bg:#0f0f14;--surface:#191921;--surface-2:#15151c;--border:#2a2833;--border-strong:#38353f;--code-bg:#1f2028;--accent:#c084fc;--accent-strong:#b06bfa;--accent-ink:#1a1024;--accent-bg:#c084fc24;--accent-border:#c084fc66;--good:#4ade80;--good-bg:#4ade801f;--danger:#f87171;--danger-bg:#f871711f;--warn:#fbbf24;--warn-bg:#fbbf241f;--shadow-sm:#0006 0 1px 2px;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);text-wrap:balance;font-weight:600}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}code{font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border-radius:4px;padding:4px 8px;font-size:15px;line-height:135%;display:inline-flex}button{font:inherit;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text-h);cursor:pointer;justify-content:center;align-items:center;gap:.45rem;padding:.5rem .9rem;font-size:.95rem;font-weight:550;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}button:hover{border-color:var(--accent-border);color:var(--accent)}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button:disabled:hover{border-color:var(--border-strong);color:var(--text-h)}button svg{width:1.05em;height:1.05em}button.primary{background:var(--accent);border-color:var(--accent-strong);color:var(--accent-ink);box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-ink)}button.ghost{color:var(--text);background:0 0;border-color:#0000}button.ghost:hover{background:var(--accent-bg);color:var(--accent)}input,select,textarea{font:inherit;color:var(--text-h);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:.5rem .6rem}input::placeholder,textarea::placeholder{color:var(--text);opacity:.65}input[type=checkbox],input[type=radio]{width:1.15em;height:1.15em;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}main{box-sizing:border-box;text-align:center;width:100%;max-width:34rem;margin:0 auto;padding:2rem 1rem}main h1{text-align:center}.brand-title{justify-content:center;align-items:center;gap:.6rem;display:flex}.brand-mark{filter:drop-shadow(0 1px 2px #17121f26);width:.82em;height:auto}.app-header{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;margin-bottom:1.25rem;padding:.7rem 0;display:flex}.app-header .header-spacer{flex:1}.header-icon{flex:none;width:2.5rem;height:2.5rem;padding:0}.header-icon.round{border-radius:var(--r-pill)}.header-icon svg{width:1.2rem;height:1.2rem}.brand-home{border-radius:var(--r-sm);font-family:var(--heading);letter-spacing:-.01em;color:var(--text-h);background:0 0;border:none;align-items:center;gap:.5rem;padding:.25rem .35rem;font-size:1.15rem;font-weight:650;display:flex}.brand-home:hover{color:var(--text-h);background:var(--accent-bg);border-color:#0000}.brand-home .brand-mark{filter:none;width:1.5rem}.top-actions{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.icon{vertical-align:-.15em;flex:none}button .icon{opacity:.85}button.primary .icon{opacity:1}main.checklist{text-align:left}main textarea{box-sizing:border-box;width:100%;font:inherit;margin:1rem 0}main.checklist ul{margin:0 0 1.5rem;padding:0;list-style:none}main.checklist li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;display:flex}main.checklist li label{align-items:center;gap:.5rem;display:flex}main.checklist li.have-already span{color:var(--text);opacity:.6;text-decoration:line-through}.unit-annotation{opacity:.6;font-style:italic}.error{color:var(--danger)}main.recipe-list{text-align:left}main.recipe-list .section-header{margin:1.5rem 0 0}main.recipe-list .section-toggle{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);width:100%;font-family:var(--heading);letter-spacing:-.01em;color:var(--text-h);text-align:left;justify-content:flex-start;align-items:center;gap:.6rem;padding:.5rem .75rem;font-size:1.2rem;font-weight:650;display:flex}main.recipe-list .section-toggle:hover{border-color:var(--accent-border);color:var(--accent)}.section-chevron{color:var(--text);flex:none;transition:transform .18s;transform:rotate(-90deg)}.section-chevron.open{transform:rotate(0)}.section-toggle:hover .section-chevron{color:var(--accent)}.section-title{min-width:0}.section-count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);flex:none;margin-left:auto;padding:.05rem .5rem;font-size:.8rem;font-weight:500}main.recipe-list ul{margin:.5rem 0 1.5rem;padding:0;list-style:none}main.recipe-list li button{border:none;border-bottom:1px solid var(--border);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:row;justify-content:flex-start;align-items:center;gap:.7rem;padding:.6rem 0;display:flex}main.recipe-list .recipe-text{flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0;display:flex}.row-icon{border-radius:var(--r-sm);background:var(--accent-bg);width:2rem;height:2rem;color:var(--accent);flex:none;place-items:center;font-size:1rem;display:grid}li button:hover .row-icon{background:var(--accent);color:var(--accent-ink)}main.recipe-list .recipe-name{color:var(--text-h);font-size:1.1em}main.recipe-list .recipe-servings{opacity:.75;font-size:.85em}main.cooking-mode{text-align:left;max-width:40rem;font-size:1.15em;line-height:1.6}main.cooking-mode h1{font-size:1.8em}main.cooking-mode .servings{opacity:.75;text-align:center;margin-bottom:1rem}main.cooking-mode .wake-lock-warning{color:var(--warn);margin-bottom:1rem}main.cooking-mode .macro-controls{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.75rem;margin-bottom:1rem;display:flex}main.cooking-mode .recipe-macros{color:var(--text-h);margin:0;font-size:.95em}main.cooking-mode .macro-toggle{padding:.2rem .6rem;font-size:.8em}main.cooking-mode p{margin:0 0 .6rem}main.schedule{text-align:left}main.schedule ul{margin:0 0 1.5rem;padding:0;list-style:none}main.schedule li{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.4rem 0;display:flex}main.schedule .meal-slot{opacity:.7;flex:0 0 4.5rem;font-size:.85em}main.schedule li button{font:inherit;text-align:left;cursor:pointer;color:var(--text-h);background:0 0;border:none;flex:1;justify-content:flex-start;padding:0}main.schedule .dish-name{opacity:.85;flex:1}main.profile{text-align:left}.profile-form{flex-direction:column;gap:.9rem;display:flex}.profile-form label{flex-direction:column;gap:.25rem;display:flex}.profile-form input,.profile-form select{font:inherit;box-sizing:border-box;padding:.4rem}.profile-form h3{margin:.5rem 0 0}.unit-toggle{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.unit-toggle button.active{outline:2px solid var(--text-h);font-weight:700}.tdee-preview{border:1px solid var(--border);border-radius:.4rem;padding:.75rem 1rem}.tdee-preview p{margin:.3rem 0}.tdee-preview .hint{opacity:.75;font-size:.85em}.saved{color:var(--good)}.hub-head{text-transform:uppercase;letter-spacing:.08em;color:var(--text);opacity:.7;margin:1.75rem 0 .5rem;font-size:.75rem;font-weight:600}.hub-list{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.hub-row{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border-radius:0;justify-content:flex-start;align-items:center;gap:.8rem;padding:.8rem .85rem;display:flex}.hub-list .hub-row:last-child{border-bottom:none}.hub-row:hover{background:var(--accent-bg);color:var(--text-h)}.hub-row:hover .row-icon{background:var(--accent);color:var(--accent-ink)}.hub-text{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.hub-name{color:var(--text-h);font-weight:550}.hub-desc{color:var(--text);opacity:.75;font-size:.8rem}.hub-chev{color:var(--text);opacity:.5;flex:none}.hub-chev svg{width:1.1rem;height:1.1rem}.pref-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem .85rem;display:flex}.logout-btn{width:100%;color:var(--danger);background:var(--danger-bg);border-color:#0000;margin-top:1.75rem}.logout-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}main.dashboard{text-align:left}.dash-hero{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-2);width:100%;font:inherit;color:var(--text);cursor:pointer;flex-direction:column;align-items:center;gap:0;margin:.5rem 0 1rem;padding:1.75rem 1rem;display:flex;position:relative}.dash-hero:hover{border-color:var(--accent-border)}.card-go{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);align-items:center;gap:.15rem;font-size:.7rem;font-weight:600;display:inline-flex;position:absolute;top:.8rem;right:.85rem}.card-go svg{width:1em;height:1em}.dash-hero .hero-num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:3.25rem;font-weight:650;line-height:1}.dash-hero .hero-label{opacity:.8;margin-top:.3rem}.dash-hero .hero-bar{border-radius:var(--r-pill);background:var(--border);width:min(20rem,100%);height:8px;margin-top:1rem;display:block;overflow:hidden}.dash-hero .hero-bar>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.dash-hero.over .hero-bar>span{background:var(--danger)}.dash-hero .hero-sub{font-family:var(--mono);font-variant-numeric:tabular-nums;opacity:.75;margin-top:.5rem;font-size:.82rem}.dash-hero.under .hero-num{color:var(--good)}.dash-hero.over .hero-num{color:var(--danger)}.dash-cards{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.dash-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:.15rem;padding:.8rem .95rem;display:flex}.dash-card.notice{align-items:flex-start;gap:.6rem}button.dash-card{font:inherit;text-align:left;cursor:pointer;color:inherit;background:var(--surface);justify-content:flex-start;align-items:flex-start;padding-right:2rem;position:relative}button.dash-card:hover{border-color:var(--accent-border)}.dash-card .card-label{opacity:.7;text-transform:uppercase;letter-spacing:.03em;font-size:.8em}.dash-card .card-value{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--text-h);font-size:1.25em}.dash-card .card-sub{opacity:.75;font-size:.82em}.dash-card.macro .card-track{border-radius:var(--r-pill);background:var(--border);height:5px;margin-top:.5rem;display:block;overflow:hidden}.dash-card.macro .card-track>span{border-radius:inherit;height:100%;display:block}.dash-card.protein .card-track>span{background:var(--accent)}.dash-card.fiber .card-track>span{background:var(--good)}main.dashboard .hint{opacity:.75;margin-top:1rem;font-size:.85em}.screen-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text);opacity:.85;margin:0 0 .85rem;font-size:.8rem;font-weight:600}.group-head{color:var(--text-h);letter-spacing:-.01em;margin:1.6rem 0 .6rem;font-size:1rem;font-weight:600}.week-tiles{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.week-tile{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;font:inherit;color:inherit;justify-content:flex-start;align-items:center;gap:.7rem;padding:.8rem .85rem;display:flex}.week-tile:hover{border-color:var(--accent-border)}.week-tile .tile-ic{border-radius:var(--r-sm);background:var(--accent-bg);width:2.1rem;height:2.1rem;color:var(--accent);flex:none;place-items:center;display:grid}.week-tile .tile-ic svg{width:1.1rem;height:1.1rem}.week-tile .tile-text{flex-direction:column;gap:.05rem;min-width:0;display:flex}.week-tile .tile-name{color:var(--text-h);font-size:.95rem;font-weight:600}.week-tile .tile-desc{color:var(--text);opacity:.7;font-size:.78rem}main.weight{text-align:left}.weigh-in{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem;display:flex}.weigh-in label{flex-direction:column;gap:.25rem;display:flex}.weigh-in input{font:inherit;box-sizing:border-box;padding:.4rem}.weight-summary{font-size:1.05em}svg.weight-trend{width:100%;max-width:22rem;height:auto;color:var(--text-h);margin:.5rem 0 1rem;display:block}.weight-list{margin:0;padding:0;list-style:none}.weight-list li{border-bottom:1px solid var(--border);align-items:baseline;gap:.75rem;padding:.4rem 0;display:flex}.weight-list .w-date{opacity:.75;flex:0 0 6.5rem;font-size:.9em}.weight-list .w-value{color:var(--text-h);flex:1}.weight-list .w-delta{opacity:.8;font-size:.9em}main.log{text-align:left}main.log h3{border-bottom:1px solid var(--border);margin:1.25rem 0 .5rem;padding-bottom:.25rem}main.log .totals{font-size:1.05em}main.log ul{margin:0;padding:0;list-style:none}main.log li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}main.log .planned-list li{flex-wrap:wrap}main.log .planned-meal{flex:100%;align-items:baseline;gap:.6rem;display:flex}main.log .log-controls{align-items:center;gap:.6rem;margin-left:auto;display:flex}main.log .macros{opacity:.75;white-space:nowrap;font-size:.85em}main.log .portion{align-items:center;gap:.2rem;display:flex}main.log .portion input{width:3.5rem;font:inherit;padding:.2rem}main.log .logged-main{flex-direction:column;flex:10rem;align-items:flex-start;gap:.15rem;display:flex}main.log .logged-name{color:var(--text-h)}main.log .stacked-form{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}main.log .stacked-form input,main.log .stacked-form select{font:inherit;box-sizing:border-box;padding:.4rem}main.log .macro-inputs{flex-wrap:wrap;gap:.5rem;display:flex}main.log .macro-inputs input{flex:5rem;min-width:0}main.log .hint{opacity:.75;font-size:.85em}.notice{color:var(--accent);font-size:.9em}main.ingredient-lib .lib-filter{box-sizing:border-box;width:100%;font:inherit;margin-bottom:.25rem;padding:.4rem}main.ingredient-lib .ingredient-list li{flex-direction:column;align-items:stretch;gap:.4rem}.ingredient-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.ingredient-meta{align-items:center;gap:.5rem;display:flex}.ingredient-meta button.danger{color:var(--danger)}.ingredient-meta button.danger:disabled{color:var(--text);opacity:.55;cursor:not-allowed}.ingredient-picker,.merge-confirm{border-top:1px dashed var(--border);text-align:left;margin-top:.4rem;padding-top:.5rem}.picker-list{max-height:14rem;margin:.3rem 0;padding:0;list-style:none;overflow-y:auto}.picker-list li button{border:none;border-bottom:1px solid var(--border);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;padding:.35rem .4rem}.picker-list li button:hover{background:var(--accent-bg)}.merge-actions{gap:.5rem;margin-top:.4rem;display:flex}.ingredient-resolver{border-top:1px dashed var(--border);text-align:left;margin-top:.4rem;padding-top:.5rem}.resolve-fields{flex-wrap:wrap;gap:.6rem;margin:.4rem 0;display:flex}.resolve-fields label{flex-direction:column;gap:.15rem;font-size:.85em;display:flex}.resolve-fields input,.resolve-fields select{font:inherit;padding:.3rem}.resolve-fields input{width:6rem}.resolve-fields input[type=text]{width:12rem}.resolve-actions{gap:.5rem;display:flex}.create-entry-btn{align-self:flex-start}.create-entry-form{border:1px solid var(--border);border-radius:.5rem;margin-bottom:.5rem;padding:.75rem}.create-entry-form h3{margin:0 0 .5rem}.source-badge{text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--border);white-space:nowrap;border-radius:.7rem;padding:.1rem .4rem;font-size:.72em}.source-badge.source-manual{border-color:var(--accent);color:var(--accent)}.macro-editor{border-top:1px dashed var(--border);flex-direction:column;gap:.5rem;padding:.5rem 0 .25rem;display:flex}.macro-editor label{flex-direction:column;flex:5rem;gap:.15rem;font-size:.8em;display:flex}.macro-editor-actions{gap:.5rem;display:flex}.adjust-ingredients{border:1px dashed var(--border);border-radius:.4rem;margin-top:.5rem;padding:.5rem .6rem}.adjust-list{margin:.4rem 0;padding:0;list-style:none}.adjust-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.adjust-include{text-align:left;flex:12rem;align-items:center;gap:.4rem;display:flex}.adjust-list li.excluded .adjust-include span{opacity:.55;text-decoration:line-through}.macro-breakdown{text-align:left;border-top:1px solid var(--border);margin-top:1.5rem;padding-top:.5rem}.macro-breakdown .totals{font-size:.95em}.breakdown-list{margin:0;padding:0;list-style:none}.breakdown-list li{border-bottom:1px solid var(--border);padding:.4rem 0}.breakdown-list .logged-main{flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.breakdown-list .logged-name{color:var(--text-h)}.breakdown-list .macros{opacity:.75;font-size:.85em}.plan-help{text-align:left;border:1px solid var(--border);border-radius:.5rem;margin:.5rem 0;padding:.5rem .75rem}.plan-help summary{cursor:pointer;color:var(--accent);font-weight:500}.plan-help-body ol{padding-left:1.2rem}.plan-help-downloads{flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.plan-help-downloads button{font:inherit}main.log .totals,main.log .macros,main.log .portion input,.macro-breakdown .totals,.macro-breakdown .macros,.weight-summary,.weight-list .w-value,.weight-list .w-delta,main.cooking-mode .recipe-macros,.tdee-preview p,.hero-num,.card-value{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.top-actions{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1rem}.tdee-preview,.create-entry-form,.plan-help,.adjust-ingredients{border-radius:var(--r-md)}.tdee-preview,.create-entry-form{background:var(--surface);box-shadow:var(--shadow-sm)}.source-badge{border-radius:var(--r-pill);background:var(--surface-2)}.source-badge.source-manual{background:var(--accent-bg);color:var(--accent);border-color:#0000}main.recipe-list li button:hover .recipe-name,main.schedule li button:hover,svg.weight-trend{color:var(--accent)}
