:root { color-scheme: light; font-family: system-ui, sans-serif; color: #18382b; background: #faf8f1; }
* { box-sizing: border-box; }
body { margin: 0; }
header, main { max-width: 42rem; margin: auto; padding: 1rem; }
header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #dce5d9; }
header a, h1, h2 { font-family: Georgia, serif; }
header a { color: inherit; font-size: 1.8rem; text-decoration: none; font-weight: bold; }
h1 { font-size: clamp(2rem, 8vw, 3rem); margin: .5rem 0 1rem; }
h2 { margin: 1.4rem 0 .6rem; }
p { line-height: 1.5; }
.card { background: #fff; padding: 1rem; border-radius: 1.1rem; margin-bottom: .65rem; }
button, input, select { font: inherit; min-height: 44px; border: 1px solid #9aae9e; border-radius: .7rem; padding: .45rem .75rem; }
button { background: #e4eee2; color: inherit; font-weight: 600; cursor: pointer; }
button[aria-pressed="true"], form button { background: #205640; color: white; }
button:disabled { opacity: .6; }
label { display: grid; gap: .35rem; }
form, .actions { display: flex; flex-wrap: wrap; align-items: end; gap: .65rem; margin: .6rem 0; }
form input, select { max-width: 100%; }
h3 { margin: .25rem 0; }
small { color: #435e50; }
#status:empty { display: none; }
#status { padding: .6rem .9rem; background: #efe8ce; border-radius: .6rem; }
.item { display: flex; align-items: center; gap: .65rem; }
.item input { width: 1.25rem; }
.item:has(input:checked) span { text-decoration: line-through; }
.plan-summary h2, .counterproposal h4 { margin: 0 0 .35rem; }
.plan-summary p { margin: .45rem 0; }
.plan-summary a { color: #205640; font-weight: 650; }
.meal-card { border: 1px solid #e5e7df; scroll-margin-top: 1rem; }
.meal-card.mine { background: #fff7e9; border-color: #ead6af; }
.meal-card.ready { background: #eef5eb; border-color: #b6cdb9; }
.meal-state { display: inline-block; font-weight: 650; }
.counterproposal { background: #fff; border: 1px solid #dfded2; border-radius: .8rem; padding: .8rem; margin-top: .75rem; }
.bulk-actions { position: sticky; top: 0; z-index: 1; background: #faf8f1; padding: .45rem 0; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-top: .7rem; }
.bulk-choice { display: flex; align-items: center; gap: .55rem; margin-top: .5rem; min-height: 44px; }
.bulk-choice input { margin: 0; min-height: auto; width: 1.2rem; height: 1.2rem; accent-color: #205640; }
.recipe-choice-form { display: grid; align-items: stretch; }
.recipe-choice-form input, .recipe-choice-form select { min-width: 0; width: 100%; }

.meal-card.review { border-color: #ad592e; }
.compatibility-warning { color: #813d20; font-size: .92rem; font-weight: 650; }
