:root{--bg:#fbfaf7;--surface:#fff;--text:#1f2421;--muted:#5d665f;--accent:#2f6b4f;--border:#e3e1da;--danger:#b3261e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161a18;--surface:#1e2320;--text:#e9ece9;--muted:#a3ada6;--accent:#7cc4a0;--border:#2e3531;--danger:#f2a7a1}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.shell{max-width:64rem;margin:0 auto;padding:1rem}.shell-header h1{color:var(--accent);margin:0;font-size:1.5rem}.tagline{color:var(--muted);margin:.25rem 0 0}.shell-main{margin-top:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.75rem;max-width:28rem;padding:1rem;display:flex}.card h2,.card h3,.card p{margin:0}.muted,.field-hint{color:var(--muted);font-size:.875rem}.field{flex-direction:column;gap:.25rem;display:flex}.field label{font-weight:600}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem}input[aria-invalid=true],.field-hint.invalid,.form-error{border-color:var(--danger);color:var(--danger)}button{font:inherit;color:var(--surface);background:var(--accent);cursor:pointer;border:0;border-radius:.5rem;padding:.625rem 1rem;font-weight:600}button.secondary{color:var(--accent);border:1px solid var(--accent);background:0 0;align-self:flex-start}button:disabled{opacity:.6;cursor:default}a{color:var(--accent)}@media (width>=48rem){.shell{padding:2rem}.shell-header h1{font-size:2rem}}.stack{flex-direction:column;gap:1rem;display:flex}.card h4{margin:.5rem 0 0}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.5rem;display:flex}.nav{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin-top:1rem;display:flex}.nav a{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .75rem;font-weight:600;text-decoration:none}.nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.week-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.week-header h2,.week-header p{margin:0}.week{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.day{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem}.day.today{border-color:var(--accent)}.day h3{align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;display:flex}.badge{color:var(--surface);background:var(--accent);border-radius:999px;padding:0 .5rem;font-size:.75rem;font-weight:600}.day-slots{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;display:grid}.slot{flex-direction:column;gap:.375rem;min-width:0;display:flex}.slot h4{color:var(--muted);margin:0;font-size:.875rem}.slot.retired h4{font-style:italic}.meals{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.meal{background:var(--bg);border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .5rem;padding:.375rem .5rem;display:flex}.meal.editing{display:block}.meal-title{overflow-wrap:anywhere}.meal-actions{gap:.25rem;display:flex}button.link-button{color:var(--accent);background:0 0;padding:.25rem .375rem;font-size:.875rem}button.link-button.danger{color:var(--danger)}.recipe-form{gap:.375rem;display:flex}.recipe-form input{flex:1;min-width:0;padding:.375rem .5rem}.recipe-form button{padding:.375rem .75rem}.meal-summary{flex-direction:column;min-width:0;display:flex}.meal-run{font-size:.8125rem}.meal.run{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.meal.continues-before{border-top-style:dashed;border-top-left-radius:0;border-top-right-radius:0}.meal.continues-after{border-bottom-style:dashed;border-bottom-right-radius:0;border-bottom-left-radius:0}.meal.highlighted{outline:2px solid var(--accent);outline-offset:1px}.meal.ended:not(.editing) .meal-title{color:var(--muted)}.run-form{flex-direction:column;gap:.5rem;display:flex}.run-form p{margin:0}.position-picker{border:1px solid var(--border);border-radius:.5rem;grid-template-columns:auto 1fr;align-items:center;gap:.375rem .5rem;margin:0;padding:.5rem;display:grid}.position-picker legend{padding:0 .25rem;font-weight:600}.position-picker label{color:var(--muted);font-size:.875rem}.position-picker input,.position-picker select{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.375rem .5rem}.run-form .actions button{padding:.375rem .75rem}.card.shopping{max-width:36rem}.add-item{gap:.5rem;display:flex}.add-item input{flex:1;min-width:0}.items{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.item{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;display:flex}.item .tick{text-align:left;min-height:3rem;color:var(--text);background:0 0;border-radius:0;flex:1;align-items:center;gap:.75rem;padding:.5rem 0;font-weight:400;display:flex}.tick-box{border:2px solid var(--accent);border-radius:.375rem;flex:none;width:1.5rem;height:1.5rem}.item.is-bought .tick-box{background:var(--accent);box-shadow:inset 0 0 0 3px var(--surface)}.item.is-bought .item-text{color:var(--muted);text-decoration:line-through}.item-text{overflow-wrap:anywhere}.item .edit{flex:none;align-self:center;padding:.375rem .625rem;font-size:.875rem}.item.editing form{flex-direction:column;flex:1;gap:.5rem;padding:.5rem 0;display:flex}button.secondary.danger{color:var(--danger);border-color:var(--danger)}.meal-group,.shopping .ungrouped{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.75rem 0;display:flex}.meal-group h3,.shopping .ungrouped h3{overflow-wrap:anywhere;margin:0;font-size:1.0625rem}.card p.meal-group-run{margin:-.375rem 0 0;font-size:.875rem}.meal-group-description summary{color:var(--muted);cursor:pointer;padding:.25rem 0;font-size:.875rem}.meal-group-description p.recipe-description{max-height:12rem;margin:.25rem 0 0;overflow-y:auto}.bought summary{cursor:pointer;min-height:3rem;padding:.75rem 0;font-weight:600}select{font:inherit;max-width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem}select[aria-invalid=true]{border-color:var(--danger)}.card.recipes{max-width:40rem}.recipe-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recipe-entry{border-bottom:1px solid var(--border);flex-direction:column;gap:.375rem;padding:.75rem 0;display:flex}.recipe-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .5rem;display:flex}.card .recipe-heading h3{overflow-wrap:anywhere;font-size:1rem}.recipe-actions{gap:.25rem;display:flex}.card p.recipe-description{white-space:pre-wrap;overflow-wrap:anywhere}.recipe-edit{flex-direction:column;gap:.75rem;display:flex}.recipe-edit textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:.5rem;padding:.625rem .75rem}.archived-recipes summary{cursor:pointer;min-height:3rem;padding:.75rem 0;font-weight:600}
