:root{--bg:#faf6f0;--surface:#fff;--text:#2b2520;--muted:#7d7268;--line:#ebe3d8;--accent:#6d3a68;--accent-soft:#f1e5ee;--danger:#a83a2c;--danger-soft:#f7e3de;--vegan:#4d7a35;--vegan-soft:#e6f0dd;--protein:#c0563a;--carbs:#d6a032;--fat:#6f8f4e;--fiber:#3f8577;--radius:14px;-webkit-font-smoothing:antialiased;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.75rem}h2{margin:1.5rem 0 .6rem;font-size:1.05rem}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;font-size:.8rem;font-weight:600}.page{max-width:720px;margin:0 auto;padding:1.25rem 16px 3rem}.page-header{justify-items:start;gap:.35rem;margin-bottom:1rem;display:grid}.brand{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.75rem;font-weight:700}.back{margin-bottom:.75rem;font-weight:500;text-decoration:none;display:inline-block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.meta{color:var(--muted);margin:0;font-size:.875rem}.status{color:var(--muted);text-align:center;padding:2rem 0}.status.error{color:var(--danger)}.hint{color:var(--muted);margin:.5rem 0 0;font-size:.8rem}.chip{color:var(--muted);white-space:nowrap;background:var(--line);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.chip.vegan{color:var(--vegan);background:var(--vegan-soft)}.search{width:100%;font:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1rem;padding:.7rem .9rem}.search:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.recipe-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.recipe-row{color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;text-decoration:none;display:flex}.recipe-row:hover{border-color:var(--accent)}.recipe-row-main,.recipe-row-side{gap:.2rem;display:grid}.recipe-row-main{flex:1}.recipe-row-side{flex-shrink:0;justify-items:end}.recipe-row-name{font-weight:600}.recipe-row-kcal{font-variant-numeric:tabular-nums;font-weight:500}.factor{justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.6rem .6rem .6rem 1rem;font-weight:500;display:flex}.stepper{align-items:center;gap:.25rem;display:flex}.stepper button{width:2.25rem;height:2.25rem;font:inherit;color:var(--accent);cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:50%;font-size:1.2rem}.stepper button:disabled{color:var(--line);cursor:default}.stepper output{font-variant-numeric:tabular-nums;text-align:center;min-width:3.5rem;font-weight:600}.nutrition{margin-bottom:.75rem;padding:1rem}.nutrition-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.nutrition h2{color:var(--muted);margin:0;font-size:.95rem;font-weight:500}.nutrition-kcal{font-variant-numeric:tabular-nums;margin:0;font-size:1.5rem;font-weight:700}.macro-bar{border-radius:999px;gap:2px;height:8px;margin:.75rem 0;display:flex;overflow:hidden}.macro-bar .macro-protein{background:var(--protein)}.macro-bar .macro-carbs{background:var(--carbs)}.macro-bar .macro-fat{background:var(--fat)}.macros{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;display:grid}.macro dt{color:var(--muted);align-items:center;gap:.35rem;font-size:.75rem;display:flex}.macro dt:before{content:"";border-radius:50%;flex-shrink:0;width:8px;height:8px}.macro-protein dt:before{background:var(--protein)}.macro-carbs dt:before{background:var(--carbs)}.macro-fat dt:before{background:var(--fat)}.macro dd{font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-weight:600}.macro-share{color:var(--muted);margin-left:.35rem;font-size:.8rem;font-weight:400}.ingredients{margin-bottom:.5rem;padding:.85rem 1rem}.ingredients ul{margin:0;padding:0;list-style:none}.ingredients li{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.45rem 0;display:flex}.ingredients li:first-child{border-top:none}.ingredients li.optional{opacity:.65}.ingredient-main{flex:1;gap:.1rem;display:grid}.ingredient-food{flex-wrap:wrap;align-items:center;gap:.4rem;font-weight:500;display:flex}.ingredient-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.steps{gap:.6rem;margin:0;padding:.85rem 1rem .85rem 2.25rem;display:grid}.steps li::marker{color:var(--accent);font-weight:700}.notes{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:.85rem 1rem}@media (width<=420px){.macros{gap:.35rem}.macro-share{margin-left:0;display:block}}.top-bar{z-index:10;background:var(--bg);justify-content:space-between;align-items:center;max-width:720px;margin:0 auto;padding:.6rem 16px;display:flex;position:sticky;top:0}.page{padding-bottom:6rem}.search-button{font:inherit;color:var(--muted);cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.4rem;margin:0 .5rem 0 auto;padding:.35rem .7rem;font-size:.85rem;display:flex}.search-button:hover{color:var(--text);border-color:var(--accent)}.search-kbd{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:0 .3rem;font-family:inherit;font-size:.75rem}@media (width<=480px){.search-label,.search-kbd{display:none}}.search-dialog{width:min(560px,100% - 32px);max-height:min(70vh,560px);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:10vh auto auto;padding:0;box-shadow:0 12px 40px #2b25202e}.search-dialog[open]{flex-direction:column;display:flex}.search-dialog::backdrop{background:#2b252059}.search-input{width:100%;font:inherit;color:var(--text);border:none;border-bottom:1px solid var(--line);background:0 0;outline:none;padding:.9rem 1rem;font-size:1rem}.search-results{flex:1;padding:.25rem .5rem .5rem;overflow-y:auto}.search-group{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:.6rem .5rem .25rem;font-size:.75rem;font-weight:700}.search-hit{cursor:pointer;border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .5rem;display:flex}.search-hit[aria-selected=true]{background:var(--accent-soft)}.search-name{flex:1;font-weight:500}.search-arrow{width:28px;height:28px;color:var(--muted);place-items:center;display:grid}.search-hint{border-top:1px solid var(--line);margin:0;padding:.5rem 1rem}@media (width<=480px){.search-hint{display:none}}.signed-in{align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.signed-in button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.signed-in button:hover{color:var(--accent)}.tabs{z-index:10;padding:.5rem 16px calc(.5rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);justify-content:center;gap:.5rem;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{max-width:160px;color:var(--muted);text-align:center;border-radius:10px;flex:1;padding:.55rem 0;font-size:.9rem;font-weight:600;text-decoration:none}.tabs a.active{color:var(--accent);background:var(--accent-soft)}.button{font:inherit;color:var(--text);cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);justify-content:center;align-items:center;gap:.4rem;padding:.75rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.button.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.button.danger{color:var(--danger);background:0 0}.button:disabled{cursor:default;opacity:.45}.button.wide{width:100%;margin:.75rem 0;display:flex}.links{gap:1rem;margin:.5rem 0 0;font-size:.9rem;display:flex}.form{gap:.75rem;display:grid}.form h2{margin-bottom:0}.field{color:var(--muted);gap:.3rem;font-size:.85rem;font-weight:500;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.field>input,.field>select{width:100%;min-width:0;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .8rem;font-size:1rem}.check input,.choice input,.cooking-row-name input{width:1.1rem;height:1.1rem;accent-color:var(--accent);flex-shrink:0}.grams-input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;padding-right:.8rem;display:flex}.grams-input input{width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);background:0 0;border:none;padding:.65rem .8rem;font-size:1rem}.grams-input input:focus{outline:none}.grams-input:focus-within{border-color:var(--accent)}.grams-input span{color:var(--muted)}.grams-input.small{width:6.5rem;padding-right:.6rem}.grams-input.small input{text-align:right;padding:.4rem .5rem}.check{align-items:center;gap:.5rem;font-weight:500;display:flex}.check.small{color:var(--muted);gap:.3rem;font-size:.8rem;font-weight:400}.segmented{background:var(--line);border-radius:var(--radius);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:11px;padding:.55rem;font-weight:600}.segmented button[aria-pressed=true]{color:var(--text);background:var(--surface);box-shadow:0 1px 2px #00000014}.choices-box .search{margin-bottom:.5rem}.choice-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.choice{cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:.75rem;padding:.7rem .9rem;display:flex}.choice:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.choice-main{flex:1;font-weight:500;display:grid}.choice>.meta{white-space:nowrap}.measures{flex-wrap:wrap;gap:.4rem;display:flex}.chip-button{font:inherit;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.35rem .75rem;font-size:.85rem}.rows{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.row{color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;text-decoration:none;display:flex}.row:hover{border-color:var(--accent)}.row-main{flex:1;gap:.15rem;display:grid}.row-name{font-weight:600}.row-side{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.cooking-rows{margin:0;padding:.25rem 1rem;list-style:none}.cooking-rows li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.cooking-rows li:first-child{border-top:none}.cooking-row-name{align-items:flex-start;gap:.6rem;font-weight:500;display:flex}.cooking-row-name>span{display:grid}.cooking-rows li.left-out .cooking-row-name{opacity:.55}.cooking-row-amount{flex-shrink:0;justify-items:end;gap:.2rem;display:grid}.weights{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;padding:.85rem 1rem;display:grid}.weights div{display:grid}.weights strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.weigh{gap:.6rem;margin-bottom:.75rem;padding:.85rem 1rem;display:grid}.weigh-row{gap:.5rem;display:flex}.weigh-row .grams-input{flex:1}ul.ingredients{margin:0;list-style:none}.actions{margin-top:1.5rem}.day-nav{justify-content:space-between;align-items:center;margin:.25rem 0 1rem;display:flex}.day-nav a{padding:.25rem .75rem;font-size:1.6rem;line-height:1;text-decoration:none}.day-summary{gap:.85rem;padding:1rem;display:grid}.goal-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.goal-label{color:var(--muted);font-size:.85rem}.goal-numbers{font-variant-numeric:tabular-nums;color:var(--muted)}.goal-numbers strong{color:var(--text)}.goal-kcal .goal-numbers strong{font-size:1.3rem}.goal-bar{background:var(--line);border-radius:999px;height:6px;margin-top:.3rem;overflow:hidden}.goal-bar span{background:var(--accent);border-radius:999px;height:100%;display:block}.goal-protein .goal-bar span{background:var(--protein)}.goal-carbs .goal-bar span{background:var(--carbs)}.goal-fat .goal-bar span{background:var(--fat)}.goal-bar span.over{background:repeating-linear-gradient(-45deg, var(--danger), var(--danger) 4px, #d97a52 4px, #d97a52 8px)}.portions{margin:0;padding:.25rem 1rem;list-style:none}.portions li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.6rem 0;display:flex}.portions li:first-child{border-top:none}.portion-person{flex:1;min-width:6rem;font-weight:600}.portion-amount{justify-items:end;gap:.2rem;display:grid}.portions li.left-out .portion-amount{opacity:.55}.portion-kcal{font-variant-numeric:tabular-nums;text-align:right;justify-items:end;min-width:5.5rem;margin-left:auto;font-weight:500;display:grid}.portion-kcal .meta{white-space:nowrap;font-size:.78rem}.field-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.field textarea{font:inherit;color:var(--text);resize:vertical;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .8rem;font-size:1rem}.icon-button{width:2rem;height:2rem;font:inherit;color:var(--muted);cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:50%;flex-shrink:0}.icon-button:disabled{cursor:default;opacity:.35}.plain-input{width:100%;min-width:0;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.45rem .6rem;font-size:.9rem}.measure-rows{margin:0;padding:.25rem 1rem;list-style:none}.measure-rows li{align-items:center;gap:.5rem;padding:.45rem 0;display:flex}.recipe-rows{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.recipe-rows>li{gap:.5rem;padding:.75rem .9rem;display:grid}.recipe-row-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.row-buttons{gap:.3rem;display:flex}.recipe-row-amount,.recipe-row-flags{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;display:flex}.section-input{flex:0 auto;width:8rem}.food-picker .search{margin-bottom:.4rem}.picker-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.picker-list button{width:100%;font:inherit;text-align:left;cursor:pointer;border:none;border-top:1px solid var(--line);background:0 0;justify-content:space-between;gap:1rem;padding:.65rem .9rem;display:flex}.picker-list li:first-child button{border-top:none}.picker-list button:hover{background:var(--accent-soft)}.planned{margin:0 0 .5rem;padding:.25rem 1rem;list-style:none}.dish-header{align-items:center;gap:.75rem;display:flex}.dish-header h1{margin:0}.dish-header .meta{margin:.15rem 0 0}.chips{flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;display:flex}.chips:empty{display:none}.dish-to-list{gap:.6rem;margin-bottom:.5rem;padding:.85rem 1rem;display:grid}.dish-to-list p{margin:0}.planned-row{justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.planned-name{gap:.1rem;display:grid}.planned-name .meta{font-weight:400}.planned-dish-recipes{border-left:2px solid var(--line);margin:0;padding:0 0 0 1.25rem;list-style:none}.planned-dish+li{border-top:1px solid var(--line)}.planned a{color:var(--text);font-weight:600;text-decoration:none}.shopping-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.shopping-list>li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .9rem}.shopping-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.shopping-name{flex:1;font-weight:600;display:grid}.shopping-for{margin:.2rem 0 0 1.6rem;font-size:.78rem}.shopping-list.muted .shopping-name,.shopping-list.done .shopping-name{color:var(--muted);font-weight:500}.shopping-list.done .shopping-name{text-decoration:line-through}.have-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 0 1.6rem;display:flex}.extra-form{gap:.5rem;margin-top:.5rem;display:flex}.extra-form .plain-input{border-radius:var(--radius);padding:.65rem .8rem;font-size:1rem}.plate{overflow:hidden}.plate-head{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none}.plate.open{border-color:var(--accent)}.plate-parts{padding:0 .75rem .25rem}.plate-cooking{flex-basis:100%}.plate-cooking select{width:100%;font:inherit;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.4rem .5rem;font-size:.85rem}.nutrition-foot{border-top:1px solid var(--line);flex-wrap:wrap;gap:.25rem 1rem;margin:.75rem 0 0;padding-top:.6rem;display:flex}.chip.gi-nizak{color:var(--vegan);background:var(--vegan-soft)}.chip.gi-visok{color:var(--danger);background:var(--danger-soft)}.gi-estimated{align-self:end;padding-bottom:.7rem}.goal-fiber .goal-bar span{background:var(--fiber)}.food-icon{flex-shrink:0;display:block}.picker-food{align-items:center;gap:.5rem;display:flex}.icon-choices{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:.35rem;max-height:14rem;padding:.6rem;display:grid;overflow-y:auto}.icon-choice{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:3px}.icon-choice[aria-pressed=true]{border-color:var(--accent)}.icon-field{align-items:center;gap:.75rem;display:flex}.planned-recipe{align-items:center;gap:.5rem;display:flex}.ingredients .food-icon{align-self:center}.facts{margin:0 0 1rem;padding:.25rem 1rem;list-style:none}.facts li{justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;display:flex}.facts li+li{border-top:1px solid var(--line)}.ingredients a{color:inherit;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.ingredients a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.confirm-dialog{width:min(400px,100% - 32px);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:0 12px 40px #2b25202e}.confirm-dialog::backdrop{background:#2b252059}.confirm-dialog h2{margin:0 0 .4rem;font-size:1.1rem}.confirm-dialog .meta{margin:0}.confirm-buttons{justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}.sign-in{gap:1rem;max-width:420px;padding-top:15vh;display:grid}.sign-in .form{padding:1.25rem}.sign-in .status{text-align:left;padding:0}
