.weekly-planner{--weekly-border:#e8864a61;margin-top:42px}.weekly-planner__layout{grid-template-columns:minmax(0,1fr) minmax(260px,.38fr);align-items:start;gap:clamp(22px,3vw,38px);display:grid}.weekly-planner__catalog{min-width:0}.weekly-planner__recipes{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.recipe-card--compact{justify-content:flex-end;min-height:200px;position:relative}.recipe-card--compact .recipe-card__media{aspect-ratio:auto;z-index:1;width:100%;height:100%;position:absolute;inset:0}.recipe-card--compact .recipe-card__overlay{display:none}.recipe-card--compact.recipe-card--no-image .recipe-card__media{aspect-ratio:auto;height:100%;min-height:0;position:absolute;inset:0}.recipe-card--compact .recipe-card__img{object-fit:cover;width:100%;height:100%}.recipe-card--compact .recipe-card__fallback{width:100%;height:100%}.recipe-card--compact.recipe-card--no-image .recipe-card__fallback-icon{font-size:1.75rem;display:block}.recipe-card--compact.recipe-card--no-image .recipe-card__badges{top:12px;transform:none}.recipe-card--compact .recipe-card__body{z-index:2;-webkit-backdrop-filter:blur(6px);background:#0a0705c2;border-top:1px solid #e8864a29;flex-grow:0;gap:3px;margin-top:auto;padding:10px 14px;position:relative}.recipe-card--compact .recipe-card__title{color:var(--food-cream);text-shadow:0 1px 3px #000000b3;margin:0;font-size:clamp(1rem,2vw,1.28rem);line-height:1.15}.recipe-card--compact .recipe-card__ingredients{-webkit-line-clamp:1;color:#fff4e8d1;text-shadow:0 1px 2px #000000b3;-webkit-box-orient:vertical;font-size:.82rem;line-height:1.25;display:-webkit-box;overflow:hidden}.recipe-card--compact .recipe-card__footer{display:none}.recipe-card--selectable{border-color:var(--weekly-border)}.recipe-card--selectable[aria-pressed=true]{border-color:var(--food-copper-light);box-shadow:0 0 0 2px #e8864a4d,0 12px 26px #00000040}.recipe-card__selection-mark{z-index:5;color:#0000;-webkit-backdrop-filter:blur(4px);background:#0e0a08b3;border:1px solid #fff4e873;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:800;transition:color .2s,background .2s,border-color .2s;display:grid;position:absolute;top:10px;right:10px}.recipe-card__portions{z-index:5;-webkit-backdrop-filter:blur(6px);min-height:30px;color:var(--food-paper);background:#0e0a08d9;border:1px solid #e8864a80;border-radius:17px;align-items:center;display:none;position:absolute;inset:10px auto auto 10px;overflow:hidden;box-shadow:0 2px 10px #0006}.recipe-card--selectable[aria-pressed=true] .recipe-card__portions{display:inline-flex}.recipe-card__portions button{width:32px;min-height:30px;color:var(--food-copper-light);font:700 1.1rem/1 var(--sans);cursor:pointer;background:0 0;border:0;padding:0;transition:background-color .15s,color .15s}.recipe-card__portions button:hover{background:#e8864a26}.recipe-card__portions button:disabled{opacity:.35;cursor:not-allowed}.recipe-card__portions span{min-width:44px;color:var(--food-paper);font:650 .72rem/1 var(--sans);text-align:center;white-space:nowrap;padding:0 2px}.recipe-card--selectable[aria-pressed=true] .recipe-card__selection-mark{color:#1c1511;background:var(--food-copper-light);border-color:var(--food-copper-light)}.weekly-shopping{--weekly-border:#e8864a61;overscroll-behavior:contain;border:1px solid var(--weekly-border);scrollbar-width:thin;scrollbar-color:#e8864a73 transparent;background:#140f0cf0;border-radius:12px;max-height:calc(100dvh - 16px);padding:20px;position:sticky;top:0;overflow-y:auto;box-shadow:0 18px 42px #00000038}.weekly-shopping::-webkit-scrollbar{width:6px}.weekly-shopping::-webkit-scrollbar-track{background:0 0}.weekly-shopping::-webkit-scrollbar-thumb{background:#e8864a66;border-radius:4px}.weekly-shopping::-webkit-scrollbar-thumb:hover{background:var(--food-copper-light)}.weekly-shopping__handle{display:none}@keyframes weeklyRecipeAdded{0%,to{transform:scale(1)}45%{transform:scale(1.018)}}@keyframes weeklyListUpdated{0%,to{border-color:var(--weekly-border)}45%{border-color:var(--food-copper-light)}}.recipe-card--selectable.is-just-added{animation:.55s ease-out weeklyRecipeAdded}.weekly-shopping.is-updating{animation:.6s ease-out weeklyListUpdated}.weekly-shopping__heading{border-bottom:1px solid #e8864a3d;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;display:flex}.weekly-shopping__eyebrow{color:var(--food-copper-light);letter-spacing:.12em;text-transform:uppercase;margin:0 0 3px;font-size:.76rem;font-weight:700}.weekly-shopping h2{color:var(--food-cream);font:500 1.7rem/1.1 var(--serif);margin:0}.weekly-shopping__clear{min-height:44px;color:var(--food-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 8px}.weekly-shopping__empty{color:var(--food-muted);margin:20px 0 4px;line-height:1.55}.weekly-shopping__recipes{border-bottom:1px solid #e8864a33;margin-top:14px;padding-bottom:12px}.weekly-shopping__recipes h3{color:var(--food-copper-light);font:700 .7rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:0 0 7px}.weekly-shopping__recipes ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.weekly-shopping__recipes li{color:var(--food-paper);font-size:.82rem;line-height:1.35}.weekly-shopping__recipes a{color:var(--food-paper);text-underline-offset:3px;font-weight:700;text-decoration-color:#e8864a8c}.weekly-shopping__recipes a:hover,.weekly-shopping__recipes a:focus-visible{color:var(--food-copper-light)}.weekly-shopping__recipes span{color:var(--food-muted)}.weekly-shopping__list{margin:14px 0 0;padding:0;list-style:none}.weekly-shopping__section-heading{color:var(--food-copper-light);font:700 .7rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-top:18px;padding-bottom:5px}.weekly-shopping__section-heading:first-child{margin-top:0}.weekly-shopping__item{color:var(--food-paper);border-bottom:1px solid #ffffff0e;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;padding:9px 0;display:grid}.weekly-shopping__item input{width:20px;height:20px;accent-color:var(--food-copper-light);margin:1px 0 0}.weekly-shopping__item:has(input:checked) span{color:var(--food-muted-faint);text-decoration:line-through}.weekly-shopping__copy{border:1px solid var(--food-copper);background:var(--food-copper);color:#fff8ef;width:100%;min-height:46px;font:650 .95rem var(--sans);cursor:pointer;border-radius:8px;margin-top:18px}.weekly-variant-dialog{border:1px solid var(--weekly-border);width:min(92vw,470px);color:var(--food-paper);background:#17110e;border-radius:14px;padding:0;box-shadow:0 24px 70px #0000008c}.weekly-variant-dialog::backdrop{backdrop-filter:blur(3px);background:#080504b8}.weekly-variant-dialog__panel{padding:24px}.weekly-variant-dialog h2{color:var(--food-cream);font:500 clamp(1.45rem, 5vw, 2rem)/1.15 var(--serif);margin:2px 0 4px}.weekly-variant-dialog__recipe{color:var(--food-muted);margin:0 0 18px}.weekly-variant-dialog__options{gap:9px;display:grid}.weekly-variant-dialog__option{width:100%;min-height:54px;color:var(--food-paper);text-align:left;cursor:pointer;background:#e8864a14;border:1px solid #e8864a59;border-radius:9px;justify-content:space-between;align-items:center;gap:14px;padding:11px 13px;display:flex}.weekly-variant-dialog__option:hover,.weekly-variant-dialog__option:focus-visible{border-color:var(--food-copper-light);background:#e8864a29}.weekly-variant-dialog__option[aria-pressed=true]{border-color:var(--food-copper-light);box-shadow:inset 0 0 0 1px var(--food-copper-light);background:#e8864a3d}.weekly-variant-dialog__option span{color:var(--food-muted);flex:none;font-size:.78rem}.weekly-variant-dialog__confirm{border:1px solid var(--food-copper);background:var(--food-copper);color:#fff8ef;width:100%;min-height:46px;font:650 .95rem var(--sans);cursor:pointer;border-radius:8px;margin-top:16px}.weekly-variant-dialog__confirm:disabled{opacity:.4;cursor:not-allowed}.weekly-variant-dialog__cancel{width:100%;min-height:44px;color:var(--food-muted);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:12px}@media (width<=820px){.weekly-planner{padding-bottom:210px}.weekly-planner__layout{grid-template-columns:1fr}.weekly-shopping{--weekly-sheet-height:190px;z-index:1000;height:var(--weekly-sheet-height);max-height:80dvh;padding:8px max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));overscroll-behavior:contain;border-bottom:0;border-left:0;border-right:0;border-radius:12px 12px 0 0;transition:height .28s cubic-bezier(.16,1,.3,1),border-color .2s;position:fixed;inset:auto 0 0;overflow-y:auto}.weekly-shopping.is-expanded{--weekly-sheet-height:min(80dvh, 680px)}.weekly-shopping.is-dragging{user-select:none;transition:none}.weekly-shopping__handle{z-index:2;cursor:ns-resize;touch-action:none;background:#17110e;border:0;place-items:center;width:100%;height:30px;padding:0;display:grid;position:sticky;top:-8px}.weekly-shopping__handle span{background:#fff4e86b;border-radius:3px;width:44px;height:4px}.weekly-shopping__heading{z-index:1;background:#17110e;position:sticky;top:22px}}@media (width<=520px){.weekly-planner{margin-top:28px}.weekly-planner__intro{align-items:flex-end;font-size:.9rem}.weekly-planner__intro p:first-child{max-width:230px}.weekly-planner__recipes{gap:9px}.recipe-card--compact{min-height:155px}.recipe-card--compact .recipe-card__media,.recipe-card--compact.recipe-card--no-image .recipe-card__media{aspect-ratio:auto}.recipe-card--compact .recipe-card__body{padding:10px 10px 8px}.recipe-card--compact .recipe-card__title{font-size:.95rem;line-height:1.12}.recipe-card--compact .recipe-card__ingredients{display:none}.recipe-card--compact .recipe-card__badges{max-width:calc(100% - 48px);top:8px;left:8px}.recipe-card--compact .card-badge{padding:3px 5px;font-size:.58rem}.recipe-card__selection-mark{width:26px;height:26px;font-size:.85rem;top:7px;right:7px}.recipe-card__portions{min-height:28px;top:7px;left:7px}.recipe-card__portions button{width:28px;min-height:28px;font-size:1rem}.recipe-card__portions span{min-width:38px;font-size:.68rem}}@media (prefers-reduced-motion:reduce){.recipe-card--selectable.is-just-added,.weekly-shopping.is-updating{animation:none}.weekly-shopping{transition:none}}
