:root{--color-emerald: #2e7d32;--color-emerald-dark: #245f27;--color-sage: #a7c4a0;--color-mint: #d9ead7;--color-cream: #fff8ef;--color-peach: #f4a07a;--color-peach-bg: #fdece1;--color-warning: #b3541e;--color-warning-bg: #fdece1;--color-graphite: #2d2d2d;--color-graphite-muted: #6f7a6d;--color-white: #ffffff;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 999px;--shadow-card: 0 2px 14px rgba(45, 45, 45, .07)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-cream);color:var(--color-graphite);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100%;height:100dvh}.app--centered{align-items:center;justify-content:center;padding:16px;text-align:center}.app__header{padding:20px 16px 12px}.app__title{margin:0;font-size:22px;font-weight:700;color:var(--color-emerald);letter-spacing:-.01em}.app__subtitle{margin:2px 0 0;font-size:14px;color:var(--color-graphite-muted);font-weight:500}.app__content{flex:1;padding:0 16px 16px;overflow-y:auto}.screen{display:flex;flex-direction:column;gap:12px}.card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.card--warning{background:var(--color-warning-bg)}.card--accent{background:var(--color-mint);box-shadow:none}.card__title{margin:0 0 10px;font-size:16px;font-weight:600;color:var(--color-graphite)}.card__subtitle{margin:16px 0 6px;font-size:14px;font-weight:600;color:var(--color-graphite-muted)}.card__body{margin:0 0 10px;font-size:14px;color:var(--color-graphite-muted);line-height:1.5}.card__body--success{color:var(--color-emerald-dark)}.card__body--warning{color:var(--color-warning)}.status-block{font-size:14px;color:var(--color-graphite-muted);text-align:center;padding:12px 0}.status-block--error{color:var(--color-warning)}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--color-graphite-muted);margin-bottom:12px}.field--checkbox{flex-direction:row;align-items:center;gap:8px}.field input,.field select{font:inherit;font-size:15px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--color-mint);background:var(--color-cream);color:var(--color-graphite)}.field input:focus,.field select:focus{outline:2px solid var(--color-sage);outline-offset:1px}button{font:inherit;cursor:pointer}.card>button[type=button],.add-item-form>button[type=button],.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--color-emerald);color:var(--color-white);border:none;border-radius:var(--radius-pill);padding:13px 20px;font-weight:600;font-size:14px;box-shadow:0 3px 10px #2e7d3240}.card>button[type=button]:disabled,.add-item-form>button[type=button]:disabled,.btn-primary:disabled{opacity:.55;box-shadow:none}.link-button{background:var(--color-mint);border:none;color:var(--color-emerald-dark);font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--radius-pill)}.link-button--active{color:var(--color-white);background:var(--color-emerald)}.item-list{list-style:none;margin:0;padding:0}.item-list__row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-mint);font-size:14px}.item-list__row:last-child{border-bottom:none}.item-list__row--checked .item-list__label{color:var(--color-graphite-muted);text-decoration:line-through}.item-list__label{flex:1;min-width:0}.thumb{width:44px;height:44px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;background:var(--color-mint)}.item-list__meta{font-size:12px;color:var(--color-graphite-muted)}.item-list__badge{background:var(--color-peach-bg);color:var(--color-warning);border-radius:var(--radius-pill);padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap}.checkbox-dot{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--color-mint);background:var(--color-white);display:flex;align-items:center;justify-content:center;color:var(--color-white);padding:0}.checkbox-dot--checked{background:var(--color-emerald);border-color:var(--color-emerald)}.checkbox-dot svg{width:13px;height:13px}.quick-actions{display:flex;flex-direction:column;gap:8px}.quick-actions button{display:flex;align-items:center;gap:10px;background:var(--color-white);border:1px solid var(--color-mint);border-radius:var(--radius-md);padding:13px 14px;font-size:14px;font-weight:600;color:var(--color-emerald-dark);text-align:left}.quick-actions button svg{color:var(--color-emerald);flex:0 0 auto}.plan-day{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-mint)}.plan-day__title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--color-graphite-muted)}.plan-day__item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-cream);margin-bottom:8px;font-size:14px}.plan-day__item:last-child{margin-bottom:0}.plan-day__meal-type{display:inline-block;font-size:11px;color:var(--color-emerald-dark);background:var(--color-mint);border-radius:var(--radius-pill);padding:2px 9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.plan-day__kcal{font-size:12px;color:var(--color-graphite-muted)}.budget-bar{margin:6px 0 4px}.budget-bar__track{height:8px;border-radius:var(--radius-pill);background:var(--color-mint);overflow:hidden}.budget-bar__fill{height:100%;border-radius:var(--radius-pill);background:var(--color-emerald);transition:width .3s ease}.budget-bar__fill--over{background:var(--color-peach)}.budget-bar__caption{display:flex;justify-content:space-between;font-size:12px;color:var(--color-graphite-muted);margin-top:6px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--color-mint);color:var(--color-emerald-dark);border-radius:var(--radius-pill);padding:5px 12px;font-size:12px;font-weight:600;border:none}.chip svg{width:12px;height:12px}.add-item-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.app__nav{display:flex;justify-content:space-around;background:var(--color-white);border-top:1px solid var(--color-mint);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.app__nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;border:none;background:none;font-size:11px;color:var(--color-graphite-muted);padding:6px 2px;border-radius:var(--radius-md)}.app__nav-item svg{width:22px;height:22px}.app__nav-item--active{color:var(--color-emerald);font-weight:600}.recipe-detail{display:flex;flex-direction:column;height:100%;height:100dvh;background:var(--color-cream)}.recipe-detail__scroll{flex:1;overflow-y:auto;padding-bottom:24px}.recipe-detail__topbar{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;z-index:2}.icon-button{width:40px;height:40px;min-width:44px;min-height:44px;border-radius:50%;border:none;background:#ffffffeb;color:var(--color-graphite);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #2d2d2d2e;padding:0}.icon-button svg{width:20px;height:20px}.recipe-hero{position:relative;width:100%;aspect-ratio:4 / 3;max-height:38vh;background:var(--color-mint);overflow:hidden}.recipe-hero img{width:100%;height:100%;object-fit:cover;display:block}.recipe-hero__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--color-mint),var(--color-sage));color:var(--color-emerald-dark)}.recipe-hero__placeholder svg{width:56px;height:56px;opacity:.75}.recipe-detail__body{padding:16px;display:flex;flex-direction:column;gap:14px}.recipe-title{margin:0;font-size:21px;font-weight:700;color:var(--color-graphite);letter-spacing:-.01em}.recipe-meta-row{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-graphite-muted);font-weight:500}.recipe-meta-row__dot{opacity:.6}.recipe-price{font-size:15px;font-weight:700;color:var(--color-emerald-dark)}.recipe-price__approx{font-size:12px;font-weight:500;color:var(--color-graphite-muted);margin-left:6px}.nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.nutrition-grid__cell{background:var(--color-white);border-radius:var(--radius-md);padding:10px 6px;text-align:center}.nutrition-grid__value{font-size:15px;font-weight:700;color:var(--color-graphite)}.nutrition-grid__label{font-size:11px;color:var(--color-graphite-muted);margin-top:2px}.why-selected{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.why-selected li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-emerald-dark);font-weight:500}.why-selected svg{width:16px;height:16px;flex:0 0 auto;color:var(--color-emerald)}.servings-control{display:inline-flex;align-items:center;gap:14px;background:var(--color-mint);border-radius:var(--radius-pill);padding:6px 8px;align-self:flex-start}.servings-control button{width:32px;height:32px;border-radius:50%;border:none;background:var(--color-white);color:var(--color-emerald);display:flex;align-items:center;justify-content:center;padding:0}.servings-control button:disabled{opacity:.4}.servings-control__value{font-size:14px;font-weight:700;color:var(--color-graphite);min-width:60px;text-align:center}.ingredient-row{padding:10px 0;border-bottom:1px solid var(--color-mint)}.ingredient-row:last-child{border-bottom:none}.ingredient-row__top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px}.ingredient-row__name{font-weight:600;color:var(--color-graphite)}.ingredient-row__optional{font-size:11px;color:var(--color-graphite-muted);font-weight:500;margin-left:6px}.ingredient-row__amount{color:var(--color-graphite-muted);white-space:nowrap}.ingredient-row__status{margin-top:4px;font-size:12px;color:var(--color-graphite-muted)}.ingredient-row__status--missing{color:var(--color-warning);font-weight:600}.ingredient-row__substitute-btn{margin-top:6px;background:none;border:none;color:var(--color-emerald-dark);font-size:12px;font-weight:600;padding:0;text-decoration:underline}.step-card{background:var(--color-white);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:8px}.step-card__number{font-size:11px;font-weight:700;color:var(--color-emerald);text-transform:uppercase;letter-spacing:.04em}.step-card__text{font-size:14px;color:var(--color-graphite);line-height:1.5;margin:0}.step-card__tip{background:var(--color-mint);border-radius:var(--radius-md);padding:8px 12px;font-size:12px;color:var(--color-emerald-dark)}.step-card__timer-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:var(--color-peach-bg);color:var(--color-warning);border:none;border-radius:var(--radius-pill);padding:8px 14px;font-size:12px;font-weight:700}.feedback-row{display:flex;gap:10px}.feedback-row button{flex:1;background:var(--color-white);border:1px solid var(--color-mint);border-radius:var(--radius-md);padding:12px;font-size:20px}.feedback-row button.feedback-row__btn--active{border-color:var(--color-emerald);background:var(--color-mint)}.text-link{background:none;border:none;color:var(--color-graphite-muted);font-size:12px;text-decoration:underline;padding:0}.cooking-mode{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-cream);display:flex;flex-direction:column;z-index:50;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom)}.cooking-mode__topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 0}.cooking-mode__progress-text{font-size:13px;font-weight:700;color:var(--color-emerald-dark)}.cooking-mode__progress-track{height:6px;border-radius:var(--radius-pill);background:var(--color-mint);overflow:hidden;margin-bottom:20px}.cooking-mode__progress-fill{height:100%;background:var(--color-emerald);border-radius:var(--radius-pill);transition:width .25s ease}.cooking-mode__body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:24px;text-align:center}.cooking-mode__step-number{font-size:14px;font-weight:700;color:var(--color-graphite-muted)}.cooking-mode__step-text{font-size:24px;font-weight:600;color:var(--color-graphite);line-height:1.35;margin:0}.cooking-mode__tip{background:var(--color-mint);border-radius:var(--radius-lg);padding:14px 18px;font-size:14px;color:var(--color-emerald-dark)}.cooking-mode__timer{display:flex;flex-direction:column;align-items:center;gap:10px}.cooking-mode__timer-display{font-size:40px;font-weight:700;color:var(--color-emerald-dark);font-variant-numeric:tabular-nums}.cooking-mode__nav{display:flex;gap:12px;padding:16px 0 8px}.cooking-mode__nav button{flex:1;border:none;border-radius:var(--radius-pill);padding:16px;font-size:15px;font-weight:700;min-height:52px}.cooking-mode__nav-back{background:var(--color-mint);color:var(--color-emerald-dark)}.cooking-mode__nav-next{background:var(--color-emerald);color:var(--color-white);box-shadow:0 3px 10px #2e7d3240}.cooking-mode__nav button:disabled{opacity:.4}.confirm-sheet{display:flex;flex-direction:column;gap:10px}.confirm-sheet__item{display:flex;justify-content:space-between;font-size:14px;padding:8px 0;border-bottom:1px solid var(--color-mint)}.confirm-sheet__item:last-child{border-bottom:none}.confirm-sheet__amount{color:var(--color-graphite-muted)}
