.planner-main { max-width: 1480px; margin: 0 auto; padding: 26px 40px 64px; }
.plan-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin: 14px 0 18px; }
.plan-title .eyebrow { margin: 0 0 6px; }
.plan-title h1 { margin: 0; font-size: clamp(30px,3.4vw,46px); line-height: 1.02; }
.plan-title h1 em { color: var(--orange); font-weight: 600; }

.week-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.week-toolbar > button { min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 12px; color: var(--green); background: var(--paper); cursor: pointer; font-size: 16px; font-weight: 700; }
.week-toolbar > button:hover, .week-toolbar > button:focus-visible { background: #eef3d7; }
.week-toolbar strong { min-width: 148px; font-family: "Fraunces",serif; font-size: 18px; text-align: center; }
.week-toolbar .today-button { padding: 0 14px; font-size: 13px; }

.plan-bar { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; margin-bottom: 12px; padding: 10px 10px 10px 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.plan-bar p { margin: 0; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.35; }
.plan-bar-shop { color: var(--green); font-size: 14px; font-weight: 700; text-underline-offset: 3px; }
.suggest-week { min-height: 44px; padding: 0 18px; border: 0; border-radius: 12px; color: white; background: var(--green); cursor: pointer; font-size: 14px; font-weight: 700; }
.suggest-week:hover, .suggest-week:focus-visible { background: var(--green-deep,#173d2b); }

.use-first { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; padding: 10px 10px 10px 18px; border-radius: 14px; color: var(--ink); background: #fff1e4; font-size: 14px; line-height: 1.4; }
.use-first[hidden] { display: none; }
.use-first button { flex: none; min-height: 44px; padding: 0 14px; border: 1px solid var(--orange); border-radius: 11px; color: #9a4312; background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; }

.planner-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(340px,.8fr); align-items: start; gap: 18px; }
.week-board { min-width: 0; }
.week-grid { display: grid; gap: 8px; }
.past-days { margin-bottom: 8px; border: 1px solid var(--line); border-radius: 16px; background: rgba(251,250,245,.58); }
.past-days summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 0 16px; color: var(--muted); cursor: pointer; font-size: 14px; font-weight: 600; }
.past-days small { font-size: 13px; font-weight: 400; }
.past-days .day-row { margin: 0 8px 8px; }

.day-row { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 8px; padding: 10px; border: 1px solid rgba(28,43,34,.1); border-radius: 16px; background: var(--paper); }
.day-row.today { border-color: var(--orange); box-shadow: 0 0 0 2px rgba(238,123,58,.12); }
.day-row.past { background: rgba(251,250,245,.6); }
.day-row.drag-over { border-color: var(--orange); background: #fff7ed; box-shadow: inset 0 0 0 2px rgba(238,123,58,.18); }
.day-label { display: flex; flex-direction: column; gap: 1px; padding: 4px 0 0 6px; }
.day-label span { color: var(--ink); font-family: "Fraunces",serif; font-size: 22px; font-weight: 600; line-height: 1.1; }
.day-label strong { color: var(--muted); font-size: 13px; font-weight: 500; }
.day-label small { color: #b5531c; font-size: 12px; font-weight: 800; }
.day-meals { display: grid; grid-template-columns: repeat(auto-fill,minmax(290px,1fr)); gap: 8px; min-width: 0; }

.meal-tile { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 48px; align-items: center; min-width: 0; border-radius: 13px; background: #f0efe7; }
.meal-tile[draggable="true"] { cursor: grab; }
.meal-tile.dragging { opacity: .45; }
.meal-tile.cooked img { opacity: .55; }
.meal-tile.cooked .meal-copy strong { color: var(--muted); }
.meal-tile.gone { padding: 8px 12px; }
.meal-open { display: grid; grid-template-columns: 122px minmax(0,1fr); align-items: center; gap: 10px; min-width: 0; padding: 8px; border: 0; border-radius: 13px; color: inherit; background: transparent; cursor: pointer; font: inherit; text-align: left; }
.meal-open:hover strong { text-decoration: underline; text-underline-offset: 2px; }
.meal-open img { width: 100%; aspect-ratio: 3/2; display: block; border-radius: 8px; object-fit: cover; }
.meal-copy { display: grid; gap: 2px; min-width: 0; }
.meal-copy strong { font-size: 14px; line-height: 1.25; }
.meal-copy small { color: var(--muted); font-size: 12px; line-height: 1.3; }
.meal-status { justify-self: start; display: inline-block; margin-top: 2px; font-size: 12px; font-weight: 700; line-height: 1.3; }
.meal-status.ready, .meal-status.done { color: var(--green); }
.meal-status.first { color: #b5531c; }
.meal-status.missing { color: var(--muted); font-weight: 500; }
.meal-check { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.meal-check span { display: grid; place-items: center; width: 28px; height: 28px; border: 1.5px solid #aeb89c; border-radius: 50%; color: transparent; background: white; font-size: 14px; }
.meal-check:hover span { border-color: var(--green); color: var(--green); }
.meal-check[aria-pressed="true"] span { border-color: var(--green); color: white; background: var(--green); }
.meal-gone-remove { justify-self: end; grid-column: 1/-1; min-height: 44px; border: 0; color: #945d49; background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; }

.leftover-chip { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 0 8px; align-items: center; min-height: 58px; padding: 8px 12px; border: 1px solid #d7e3bd; border-radius: 13px; color: var(--ink); background: #f5f8e9; cursor: pointer; font: inherit; text-align: left; }
.leftover-chip span { grid-row: 1/3; color: var(--green); font-size: 12px; font-weight: 800; }
.leftover-chip strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.leftover-chip small { color: var(--muted); font-size: 12px; }

.add-meal { min-height: 58px; border: 1px dashed rgba(38,79,59,.35); border-radius: 13px; color: var(--green); background: transparent; cursor: pointer; font-size: 14px; font-weight: 700; }
.add-meal:not(.compact) { grid-column: 1 / -1; }
.add-meal.compact { justify-self: start; width: 48px; min-height: 48px; align-self: center; font-size: 18px; }
.add-meal:hover, .add-meal:focus-visible { border-style: solid; background: #eef3d7; }

.weekly-shop { position: sticky; top: calc(var(--chrome-h) + 16px); max-height: calc(100vh - var(--chrome-h) - 32px); padding: 22px; overflow-y: auto; border: 1px solid var(--line); border-radius: 22px; color: var(--ink); background: var(--paper); box-shadow: var(--shadow); scroll-margin-top: calc(var(--chrome-h) + 16px); }
.shop-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.shop-heading h2 { margin: 0; font-size: 25px; }
.week-price { flex: 0 0 auto; text-align: right; }
.week-price span, .week-price strong { display: block; }
.week-price span { color: var(--muted); font-size: 12px; }
.week-price strong { margin-top: 2px; color: #b5531c; font-size: 20px; }
.shop-intro { margin: 8px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.shop-tools { margin-top: 12px; border-top: 1px solid var(--line); }
.shop-tools summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; color: var(--green); cursor: pointer; font-size: 14px; font-weight: 700; }
.shop-tools summary small { color: var(--muted); font-size: 12px; font-weight: 500; }
.offer-controls { display: grid; grid-template-columns: 1fr 96px; gap: 8px; padding: 10px; border-radius: 14px; background: #f0efe7; }
.offer-controls .plus-feature-badge { grid-column: 1/-1; }
.offer-controls label { color: var(--muted); font-size: 12px; font-weight: 700; }
.offer-controls select, .offer-controls input { width: 100%; min-width: 0; height: 44px; margin-top: 4px; border: 1px solid transparent; border-radius: 9px; padding: 7px; color: var(--ink); background: var(--paper); font-size: 14px; }
.offer-controls button { grid-column: 1/-1; min-height: 44px; border: 0; border-radius: 10px; color: white; background: var(--green); cursor: pointer; font-size: 14px; font-weight: 700; }
.offer-controls button:disabled { opacity: .65; cursor: wait; }
.offer-status { margin: 9px 2px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.budget-box { margin: 0 0 12px; padding: 12px; border: 1px solid #d9dfbf; border-radius: 14px; background: #f7f8ed; }
.budget-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--green); font-size: 14px; font-weight: 700; }
.budget-head div { display: flex; align-items: center; gap: 4px; }
.budget-head input { width: 84px; height: 44px; border: 1px solid var(--line); border-radius: 9px; padding: 5px 7px; background: white; font-size: 14px; text-align: right; }
.budget-track { height: 6px; margin-top: 9px; border-radius: 99px; background: #e2e6cf; overflow: hidden; }
.budget-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--green); transition: width .25s ease; }
.budget-track span.over { background: var(--orange); }
.budget-box p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.weekly-shopping-list { margin: 0; padding: 0; list-style: none; }
.weekly-shopping-list li { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.weekly-shopping-list .item-price { grid-column: 2; grid-row: 1/3; align-self: center; text-align: right; }
.weekly-shopping-list .item-price strong, .weekly-shopping-list .item-price small { display: block; }
.weekly-shopping-list .item-price strong { color: var(--green); font-size: 14px; }
.weekly-shopping-list .item-price small { color: var(--muted); font-size: 12px; }
.weekly-shopping-list .shopping-category { display: block; padding: 14px 2px 5px; border: 0; color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.weekly-shopping-list .shopping-item { grid-template-columns: 44px minmax(0,1fr) auto; align-items: start; }
.shop-check { position: relative; grid-row: 1/3; display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; }
.shop-check input { position: absolute; opacity: 0; pointer-events: none; }
.shop-check span { display: grid; place-items: center; width: 26px; height: 26px; border: 1.5px solid #bdc6aa; border-radius: 7px; color: transparent; background: white; font-size: 13px; }
.shop-check input:checked + span { color: white; border-color: var(--green); background: var(--green); }
.shop-check input:focus-visible + span { outline: 3px solid var(--green); outline-offset: 2px; }
.shop-item-copy strong, .shop-item-copy small { display: block; }
.shop-item-copy strong { font-size: 14px; }
.shop-item-copy > small { margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 1.3; }
.shopping-item.checked .shop-item-copy { opacity: .5; text-decoration: line-through; }
.shop-amount { display: flex; gap: 4px; margin-top: 6px; }
.shop-amount input, .shop-amount select { width: 72px; height: 40px; min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 3px 6px; color: var(--ink); background: white; font-size: 14px; }
.weekly-shopping-list .shopping-item .item-price { grid-column: 3; grid-row: 1/3; }
.item-price button { display: block; min-width: 44px; min-height: 44px; margin: 2px 0 0 auto; border: 0; color: #945d49; background: transparent; cursor: pointer; font-size: 16px; }
.custom-item-form { display: grid; grid-template-columns: minmax(0,1fr) 60px 72px 44px; gap: 5px; margin: 12px 0; }
.custom-item-form input, .custom-item-form select { min-width: 0; height: 44px; border: 1px solid var(--line); border-radius: 9px; padding: 6px 8px; background: white; font-size: 14px; }
.custom-item-form button { border: 0; border-radius: 9px; color: white; background: var(--green); cursor: pointer; font-size: 18px; }
.smart-suggestions { margin: 12px 0; padding: 12px; border-radius: 14px; background: #fff4e9; }
.smart-suggestions.deals { background: #eef3d7; }
.suggestion-heading span, .suggestion-heading small { display: block; }
.suggestion-heading span { color: #b5531c; font-size: 13px; font-weight: 800; }
.smart-suggestions.deals .suggestion-heading span { color: var(--green); }
.suggestion-heading small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.smart-suggestions article { display: flex; justify-content: space-between; align-items: center; gap: 9px; margin-top: 9px; padding-top: 9px; border-top: 1px solid rgba(28,43,34,.1); }
.smart-suggestions article strong, .smart-suggestions article small { display: block; }
.smart-suggestions article strong { font-size: 13px; }
.smart-suggestions article small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.smart-suggestions article button { flex: none; min-height: 44px; border: 0; border-radius: 9px; padding: 5px 10px; color: white; background: var(--green); cursor: pointer; font-size: 13px; font-weight: 700; }
.shopping-empty { display: block !important; padding: 22px 8px !important; color: var(--muted); text-align: center; font-size: 13px; }
.savings-row { display: flex; justify-content: space-between; gap: 12px; margin-top: 13px; padding: 10px 12px; border-radius: 11px; color: var(--green); background: #eef3d7; font-size: 13px; }
.price-disclaimer { margin: 12px 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.bring-week { width: 100%; min-height: 50px; border: 0; border-radius: 12px; color: white; background: var(--green); cursor: pointer; font-size: 14px; font-weight: 800; }
.bring-week:disabled { opacity: .45; cursor: not-allowed; }
.bring-week-status { margin: 8px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.bring-week-status:empty { display: none; }

.balance-panel { margin-top: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.balance-intro { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 10px 18px; cursor: pointer; }
.balance-intro > span:first-child { display: grid; gap: 2px; }
.balance-intro .kicker { margin: 0; }
.balance-intro strong { font-family: "Fraunces",serif; font-size: 20px; }
#balance-score { color: var(--green); font-size: 14px; font-weight: 700; }
#balance-copy { margin: 0; padding: 0 18px 12px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.balance-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; padding: 0 18px 18px; }
.balance-metric { display: flex; flex-direction: column; justify-content: center; min-height: 104px; padding: 14px; border-radius: 14px; background: #f0efe7; }
.balance-metric strong, .balance-metric span, .balance-metric small { display: block; }
.balance-metric strong { color: var(--green); font-family: "Fraunces",serif; font-size: 26px; }
.balance-metric span { margin-top: 6px; font-size: 13px; font-weight: 700; }
.balance-metric small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.balance-empty { grid-column: 1/-1; color: var(--muted); font-size: 14px; text-align: center; }

.recipe-picker { width: min(880px,calc(100% - 28px)); max-height: min(780px,calc(100vh - 28px)); padding: 0; border: 0; border-radius: 26px; color: var(--ink); background: var(--paper); box-shadow: 0 28px 90px rgba(20,35,27,.28); }
.recipe-picker::backdrop { background: rgba(22,35,28,.55); backdrop-filter: blur(5px); }
.picker-shell { position: relative; padding: 28px; }
.picker-shell h2 { margin: 0 0 14px; padding-right: 48px; font-size: 28px; }
.picker-close { position: absolute; z-index: 2; right: 18px; top: 18px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #f0efe7; cursor: pointer; font-size: 21px; }
.picker-search input { width: 100%; height: 48px; border: 1px solid var(--line); border-radius: 13px; padding: 0 15px; color: var(--ink); background: white; font-size: 16px; }
.picker-filters, .suggest-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.picker-filters { margin-top: 10px; }
.picker-filters i { width: 1px; height: 22px; margin: 0 4px; background: var(--line); }
.picker-filters button, .suggest-chips button { min-height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: white; cursor: pointer; font-size: 13px; font-weight: 600; }
.picker-filters button[aria-pressed="true"], .suggest-chips button[aria-pressed="true"] { border-color: var(--green); color: white; background: var(--green); }
.picker-count { margin: 10px 0 8px; color: var(--muted); font-size: 13px; }
.picker-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.picker-recipe { display: grid; grid-template-columns: 112px minmax(0,1fr) auto; align-items: center; gap: 11px; min-width: 0; padding: 8px; border: 1px solid transparent; border-radius: 13px; color: inherit; background: #f0efe7; font: inherit; text-align: left; cursor: pointer; }
.picker-recipe:hover, .picker-recipe:focus-visible { border-color: var(--green); background: #eef3d7; }
.picker-recipe img { width: 112px; aspect-ratio: 3/2; border-radius: 8px; object-fit: cover; }
.picker-recipe strong, .picker-recipe small { display: block; }
.picker-recipe strong { font-size: 14px; line-height: 1.25; }
.picker-recipe small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.picker-recipe > span:last-child { color: #b5531c; font-size: 20px; font-weight: 700; }
.picker-more { width: 100%; min-height: 48px; margin-top: 10px; border: 1px solid var(--green); border-radius: 12px; color: var(--green); background: transparent; cursor: pointer; font-size: 14px; font-weight: 700; }
.picker-more[hidden] { display: none; }

.plan-sheet { width: min(560px,calc(100% - 28px)); }
.sheet-photo { position: relative; overflow: hidden; width: calc(100% + 56px); max-width: none; aspect-ratio: 3/2; display: block; margin: -28px -28px 18px; object-fit: cover; }
.sheet-photo > img { width: 100%; height: 100%; display: block; object-fit: cover; }
.plan-sheet .picker-close { background: rgba(255,255,255,.88); }
.plan-sheet h2 { padding-right: 0; margin-bottom: 4px; }
.sheet-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; color: var(--muted); font-size: 14px; }
.sheet-meta .meal-status { margin: 0; font-size: 14px; }
.sheet-missing { margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.sheet-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.sheet-actions button, .sheet-move button, .sheet-footer button, .suggest-actions button { min-height: 48px; padding: 0 12px; border: 1px solid var(--green); border-radius: 12px; color: var(--green); background: transparent; cursor: pointer; font-size: 14px; font-weight: 700; }
.sheet-actions .sheet-primary, .sheet-primary { border: 0; color: white; background: var(--green); }
.sheet-primary:disabled { opacity: .45; cursor: not-allowed; }
.sheet-done { grid-column: 1/-1; }
.sheet-done[aria-pressed="true"] { border-color: transparent; background: #eef3d7; }
.sheet-section { display: grid; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.sheet-stepper { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sheet-stepper > span strong, .sheet-stepper > span small { display: block; }
.sheet-stepper > span strong { font-size: 14px; }
.sheet-stepper > span small { color: var(--muted); font-size: 12px; }
.sheet-stepper > div { display: flex; align-items: center; gap: 4px; }
.sheet-stepper output { min-width: 28px; font-size: 16px; font-weight: 700; text-align: center; }
.sheet-stepper button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; color: var(--green); background: white; cursor: pointer; font-size: 18px; font-weight: 700; }
.sheet-stepper button:disabled { opacity: .35; cursor: default; }
.sheet-total { margin: 0; color: var(--green); font-size: 13px; font-weight: 700; }
.prep-split { display: grid; gap: 6px; }
.prep-allocation { display: grid; grid-template-columns: minmax(0,1fr) 92px 44px; align-items: center; gap: 6px; }
.prep-allocation select, .sheet-move select { width: 100%; height: 44px; min-width: 0; padding: 6px; border: 1px solid var(--line); border-radius: 10px; background: white; font-size: 14px; }
.prep-allocation label { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: 13px; }
.prep-allocation input { width: 50px; height: 44px; min-width: 0; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: white; font-size: 14px; }
.prep-allocation input[readonly] { color: var(--green); background: #eef3d7; font-weight: 700; }
.prep-allocation button { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 10px; color: #945d49; background: #f6e5dd; cursor: pointer; }
.split-prep { min-height: 44px; border: 1px dashed rgba(38,79,59,.35); border-radius: 10px; color: var(--green); background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; }
.meal-extras { margin-top: 16px; padding-top: 6px; border-top: 1px solid var(--line); }
.meal-extras summary { display: flex; align-items: center; justify-content: space-between; min-height: 44px; color: var(--green); cursor: pointer; font-size: 14px; font-weight: 700; }
.meal-extras summary b { min-width: 22px; padding: 1px 6px; border-radius: 11px; color: white; background: var(--green); font-size: 12px; text-align: center; }
.meal-extras label { display: flex; gap: 10px; align-items: center; min-height: 44px; color: var(--ink); font-size: 14px; line-height: 1.3; }
.meal-extras input { width: 20px; height: 20px; accent-color: var(--green); }
.sheet-move label { display: grid; gap: 4px; color: var(--muted); font-size: 13px; font-weight: 600; }
.sheet-move > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sheet-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.sheet-footer button { flex: 1 1 auto; }
.sheet-footer .sheet-remove { border-color: transparent; color: #945d49; }
.recipe-primary-actions [hidden] { display: none; }

.suggest-note { margin: 0 0 6px; color: var(--muted); font-size: 14px; line-height: 1.5; }
#suggest-body h3 { margin: 16px 0 6px; font-family: inherit; font-size: 13px; font-weight: 700; }
.suggest-go { width: 100%; min-height: 50px; margin-top: 20px; border-radius: 12px; cursor: pointer; font-size: 14px; font-weight: 700; }
.suggest-list { display: grid; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.suggest-list li { display: grid; grid-template-columns: 30px 96px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; background: #f0efe7; }
.suggest-day { font-family: "Fraunces",serif; font-size: 17px; font-weight: 600; }
.suggest-list img { width: 96px; aspect-ratio: 3/2; border-radius: 7px; object-fit: cover; }
.suggest-copy strong, .suggest-copy small { display: block; }
.suggest-copy strong { font-size: 14px; line-height: 1.25; }
.suggest-copy small { margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 1.3; }
.suggest-list button { min-height: 44px; padding: 0 10px; border: 0; color: var(--green); background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.suggest-actions { display: grid; grid-template-columns: auto 1fr; gap: 8px; margin-top: 14px; }

.plan-toast { position: fixed; z-index: 40; left: 50%; bottom: 24px; display: flex; align-items: center; gap: 14px; width: max-content; max-width: min(520px,calc(100% - 32px)); margin: 0; padding: 8px 10px 8px 18px; border-radius: 14px; color: white; background: var(--ink); box-shadow: 0 14px 40px rgba(20,35,27,.3); font-size: 14px; line-height: 1.35; transform: translateX(-50%); }
.plan-toast[hidden] { display: none; }
.plan-toast button { min-height: 44px; padding: 0 10px; border: 0; color: var(--lime,#dce98e); background: transparent; cursor: pointer; font-size: 14px; font-weight: 700; }
.plan-toast button[hidden] { display: none; }

@media (max-width: 1050px) {
  .planner-layout { grid-template-columns: 1fr; }
  .weekly-shop { position: static; max-height: none; overflow: visible; }
  .balance-metrics { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px) {
  .planner-main { padding-top: 10px; padding-bottom: 36px; }
  .plan-head { flex-direction: column; align-items: stretch; gap: 12px; margin: 8px 0 12px; }
  .plan-title h1 { font-size: 30px; letter-spacing: -.03em; }
  .week-toolbar { justify-content: space-between; }
  .week-toolbar .today-button { order: 4; width: 100%; }
  .plan-bar { grid-template-columns: minmax(0,1fr) auto; padding: 12px; }
  .plan-bar-shop { font-size: 13px; white-space: nowrap; }
  .suggest-week { grid-column: 1/-1; }
  .use-first { flex-direction: column; align-items: stretch; padding: 12px; }
  .day-row { grid-template-columns: 1fr; gap: 6px; padding: 8px; }
  .day-label { flex-direction: row; align-items: baseline; gap: 8px; padding: 2px 4px; }
  .day-meals { grid-template-columns: minmax(0,1fr); }
  .meal-open { grid-template-columns: 116px minmax(0,1fr); }
  .add-meal.compact { width: 100%; }
  .add-meal.compact::after { content: " Noch ein Gericht"; font-size: 14px; }
  .weekly-shop { padding: 18px; border-radius: 18px; }
  .shop-amount input, .shop-amount select { font-size: 16px; }
  .offer-controls select, .offer-controls input, .custom-item-form input, .custom-item-form select, .budget-head input, .prep-allocation select, .prep-allocation input, .sheet-move select { font-size: 16px; }
  .picker-list { grid-template-columns: 1fr; }
  .picker-shell { padding-bottom: calc(22px + env(safe-area-inset-bottom)); }
  .sheet-photo { width: calc(100% + 32px); margin: -24px -16px 16px; }
  .picker-recipe { grid-template-columns: 104px minmax(0,1fr) 24px; }
  .picker-recipe img { width: 104px; }
  .suggest-list li { grid-template-columns: 26px minmax(0,1fr) auto; }
  .suggest-list .ai-image-frame { display: none; }
  .plan-toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
