:root{--bg:#faf6ef;--card:#fffdf8;--ink:#23241f;--muted:#6b6f66;--line:#e6ded0;--green:#7bb661;--green-dark:#5d9247;--amber:#d99a2b;--red:#c0562f;--chip:#f1ecdd;--shadow-card:0 1px 2px #0000000a, 0 4px 16px #0000000f;--radius:18px;--font-round:ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", Quicksand, "Nunito", system-ui, sans-serif;--fs-xs:.72rem;--fs-sm:.8rem;--fs-base:.9rem;--fs-md:1rem;--fs-lg:1.1rem;--space-4:.25rem;--space-8:.5rem;--space-12:.75rem;--space-16:1rem;--space-20:1.25rem;--space-24:1.5rem;--space-64:4rem;--meal-fruehstueck:#d1a552;--meal-mittag:#5297d1;--meal-abend:#8852d1;--meal-snack:#52d1c0;--first-time:#d1528c;--hit-min:2.75rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1e1a15;--card:#282219;--ink:#ecebe3;--muted:#9a9d91;--line:#3d362a;--chip:#332c1f;--shadow-card:0 1px 2px #0000004d, 0 4px 20px #00000059}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}.wrap{min-height:100vh;padding:var(--space-20);justify-content:center;align-items:center;display:flex}.app{max-width:720px;margin:0 auto;padding:0}.topbar{z-index:5;background:var(--bg);padding:var(--space-12) var(--space-16) var(--space-8);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar h1{font-size:var(--fs-lg);margin:0 0 var(--space-8);font-family:var(--font-round)}.tabs{gap:var(--space-4);display:flex;overflow-x:auto}.tab{color:var(--muted);padding:var(--space-8) var(--space-12);font-size:var(--fs-base);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px}.tab.active{background:var(--chip);color:var(--ink);font-weight:600}.bottom-nav{z-index:6;background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-tab{justify-content:center;align-items:center;gap:var(--space-4);min-height:var(--hit-min);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;padding:var(--space-8) var(--space-4);background:0 0;border:none;flex-direction:column;flex:1;display:flex}.nav-tab.active{color:var(--green-dark);font-weight:600}.nav-icon{font-size:var(--fs-lg);line-height:1}.nav-label{white-space:nowrap}.app{padding-bottom:calc(var(--hit-min) + var(--space-16) + env(safe-area-inset-bottom))}@media (width>=640px){.bottom-nav{border-top:none;border-bottom:1px solid var(--line);padding:var(--space-8) var(--space-16) 0;position:static}.nav-tab{font-size:var(--fs-base);flex-direction:row;flex:none}.nav-icon{font-size:var(--fs-md)}.app{padding-bottom:var(--space-64)}}.content{padding:var(--space-16);gap:var(--space-16);flex-direction:column;display:flex}.card{background:var(--card);box-shadow:var(--shadow-card);border-radius:var(--radius);padding:var(--space-16)}.card.login{gap:var(--space-12);flex-direction:column;width:min(360px,92vw);display:flex}.card h2{margin:0 0 var(--space-8);font-size:var(--fs-lg);font-family:var(--font-round)}.card-inset{background:var(--bg)}.overlay-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.overlay-panel{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:85vh;margin:0;overflow-y:auto}@media (width>=640px){.overlay-backdrop{padding:var(--space-20);align-items:flex-start;overflow-y:auto}.overlay-panel{width:min(560px,100%);max-height:none;margin:var(--space-24) 0;border-radius:var(--radius)}}.sheet-block{margin-top:var(--space-16)}.sheet-block+.sheet-block{padding-top:var(--space-16);border-top:1px solid var(--line)}.sheet-block h3{font-size:var(--fs-md);margin:0}label{gap:var(--space-4);font-size:var(--fs-sm);color:var(--muted);flex-direction:column;display:flex}input,select{padding:var(--space-8) var(--space-12);border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:var(--fs-md);border-radius:12px}.input-sm{width:4.5rem}.btn{background:var(--green);color:#fff;padding:var(--space-8) var(--space-16);font-size:var(--fs-md);cursor:pointer;min-height:var(--hit-min);border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.btn:hover{background:var(--green-dark)}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn.small{padding:var(--space-4) var(--space-8);font-size:var(--fs-sm)}.row{gap:var(--space-8);flex-wrap:wrap;align-items:center;display:flex}.row.spread{justify-content:space-between}.row.top{align-items:flex-start}.muted{color:var(--muted);font-size:var(--fs-base)}.error{color:var(--red);font-size:var(--fs-sm)}.tight-margin{margin:var(--space-4) 0}.top-gap{margin-top:var(--space-8)}.field-fixed{flex:none}.week-first-time{color:var(--first-time);font-size:var(--fs-sm);margin:0}.celebration-toast{margin:var(--space-8) var(--space-16);padding:var(--space-12) var(--space-16);border-radius:var(--radius);background:color-mix(in srgb, var(--first-time) 14%, var(--card));border:1px solid color-mix(in srgb, var(--first-time) 35%, transparent);color:var(--ink);font-size:var(--fs-base);font-family:var(--font-round);animation:.3s ease-out celebration-in}@keyframes celebration-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes dot-pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.celebration-toast,.food .dot.established,.mini-dot.known{animation:none}}.week-grid-outer{width:100vw;margin-left:-50vw;position:relative;left:50%}.week-grid-wrap{max-width:min(1200px,100vw);padding:0 var(--space-16);box-sizing:border-box;margin:0 auto;overflow-x:auto}.week-grid{gap:var(--space-8);padding:var(--space-16) 0;display:grid}.week-grid-cell{min-width:0}.week-grid-corner{background:0 0}.week-grid-rowlabel{font-size:var(--fs-sm);color:var(--muted);align-items:center;font-weight:600;display:flex}.week-grid-rowlabel.slot-label{padding-left:var(--space-8);margin-left:0}.week-col-head{gap:var(--space-4);padding-bottom:var(--space-8);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.week-col-head-name{font-family:var(--font-round);font-size:var(--fs-md)}.week-col-head-actions{gap:var(--space-4);flex-wrap:wrap;display:flex}.week-col-head.day-disabled{opacity:.65}.week-iron-cell{padding-top:var(--space-8);align-items:flex-end;display:flex}.iron-bar-track{background:var(--chip);border-radius:6px;align-items:flex-end;width:100%;height:3rem;display:flex;position:relative;overflow:hidden}.iron-bar{border-radius:6px 6px 0 0;width:100%}.iron-bar-ok{background:color-mix(in srgb, var(--green) 55%, transparent)}.iron-bar-low{background:color-mix(in srgb, var(--amber) 55%, transparent)}.iron-bar-target{border-top:1px dashed var(--muted);position:absolute;left:0;right:0}.chip{align-items:center;gap:var(--space-4);background:var(--chip);padding:var(--space-4) var(--space-8);font-size:var(--fs-sm);color:var(--ink);border-radius:999px;display:inline-flex}.chip.warn{background:color-mix(in srgb, var(--amber) 22%, transparent)}.chip.iron-ok{background:color-mix(in srgb, var(--green) 22%, transparent)}.chip.iron-low{background:color-mix(in srgb, var(--amber) 22%, transparent)}.chip.expired{background:color-mix(in srgb, var(--red) 22%, transparent)}.chip.first-time{background:color-mix(in srgb, var(--first-time) 22%, transparent)}.context-chips{margin-top:var(--space-4)}.day{gap:var(--space-8);flex-direction:column;display:flex}.day-head{justify-content:space-between;align-items:baseline;display:flex}.day-head h3{font-size:var(--fs-md);margin:0}.slot{border-top:1px solid var(--line);padding-top:var(--space-8)}.slot:first-child{border-top:none;padding-top:0}.slot-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-left:var(--space-8);margin-left:calc(var(--space-8) * -1);border-left:3px solid #0000}.slot-label[data-slot=fruehstueck],[data-slot=fruehstueck] .slot-label{border-left-color:var(--meal-fruehstueck)}.slot-label[data-slot=mittag],[data-slot=mittag] .slot-label{border-left-color:var(--meal-mittag)}.slot-label[data-slot=abend],[data-slot=abend] .slot-label{border-left-color:var(--meal-abend)}.slot-label[data-slot=snack],[data-slot=snack] .slot-label{border-left-color:var(--meal-snack)}.day.day-disabled{opacity:.65}.slot.slot-disabled{justify-content:space-between;align-items:center;display:flex}.snack-section{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px dashed var(--line)}.snack-section .slot{opacity:.85}.snack-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:var(--space-4);border-left:3px solid var(--meal-snack);padding-left:var(--space-8);margin-left:calc(var(--space-8) * -1)}.slot-menu{position:relative}.slot-menu-trigger{padding-left:var(--space-12);padding-right:var(--space-12)}.slot-menu-list{right:0;top:calc(100% + var(--space-4));z-index:10;background:var(--card);border:1px solid var(--line);min-width:10rem;padding:var(--space-4);border-radius:14px;flex-direction:column;display:flex;position:absolute;box-shadow:0 4px 16px #0000002e}.slot-menu-item{color:var(--ink);text-align:left;padding:var(--space-8) var(--space-12);font-size:var(--fs-sm);cursor:pointer;min-height:var(--hit-min);background:0 0;border:none;border-radius:10px}.slot-menu-item:hover{background:var(--chip)}.slot-menu-item:disabled{opacity:.6;cursor:default}.options{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.option{justify-content:space-between;align-items:center;gap:var(--space-8);border:1px solid var(--line);padding:var(--space-8);cursor:pointer;background:var(--bg);border-radius:12px;display:flex}.option.selected{border-color:var(--green);background:color-mix(in srgb, var(--green) 12%, var(--card))}.option .name{font-size:var(--fs-base)}.option .tags{gap:var(--space-4);flex-wrap:wrap;display:flex}.option-body{gap:var(--space-4);flex-direction:column;flex:1;min-width:0;display:flex}.list{gap:var(--space-8);flex-direction:column;display:flex}.list-item{justify-content:space-between;align-items:flex-start;gap:var(--space-8);padding:var(--space-8) 0;border-bottom:1px solid var(--line);display:flex}.list-item:last-child{border-bottom:none}.recipe-wish-row-btn{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;display:flex}.recipe-wish-row-btn:hover,.recipe-wish-row-btn:focus-visible{background:var(--chip)}.shopping-recipes{font-size:var(--fs-sm);margin-top:var(--space-4)}.shopping-item{cursor:pointer;min-height:var(--hit-min);box-sizing:border-box}.shopping-item.checked{opacity:.55}.shopping-item.checked .item-name{text-decoration:line-through}.shopping-item.in-stock:not(.checked){opacity:.75}.shopping-item .chip{margin-left:var(--space-8)}.cat-head{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:var(--space-8) 0 var(--space-4)}.progress-bar{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.progress-bar>span{background:var(--green);height:100%;display:block}.food{align-items:center;gap:var(--space-8);padding:var(--space-4) 0;display:flex}.food .dot{border:1px solid var(--line);border-radius:50%;flex:none;width:10px;height:10px}.food .dot.on{background:var(--green);border-color:var(--green)}.food .dot.established{background:var(--green);border-color:var(--green);color:#fff;justify-content:center;align-items:center;width:17px;height:17px;font-size:12px;font-weight:800;line-height:1;animation:.25s ease-out dot-pop;display:inline-flex}.food.animal .name{color:var(--muted)}.food .name{font-size:var(--fs-base);flex:1}.food .count{font-size:var(--fs-sm);color:var(--muted)}.food .known-badge{font-size:var(--fs-xs);color:var(--green);font-weight:700}.cat-progress-list{gap:var(--space-8);margin:var(--space-8) 0;flex-direction:column;display:flex}.cat-progress-row{align-items:center;gap:var(--space-8);display:flex}.dot-field{flex-wrap:wrap;gap:3px;max-width:40%;display:flex}.mini-dot{background:var(--line);border-radius:50%;flex:none;width:7px;height:7px}.mini-dot.tried{background:var(--amber)}.mini-dot.known{background:var(--green);animation:.25s ease-out dot-pop}.cat-progress-label{font-size:var(--fs-sm)}.steps{margin:var(--space-8) 0 0;padding-left:var(--space-16)}.steps li{margin:var(--space-4) 0;font-size:var(--fs-base)}.recipe-detail{gap:var(--space-8);flex-direction:column;display:flex}.pill-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.zone-label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:var(--space-4)}.zone-kommt{gap:var(--space-16);opacity:.9;flex-direction:column;display:flex}.day.today{border:1px solid var(--green)}.chip-remove{color:inherit;cursor:pointer;padding:0 0 0 var(--space-4);font-size:var(--fs-md);background:0 0;border:none;line-height:1}input[type=checkbox]{width:var(--hit-min);height:var(--hit-min);flex:none}
