:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#2f1c19;background:#fbebe4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 15%,oklch(92% .08 85 / .9),transparent 24%),radial-gradient(circle at 85% 10%,oklch(90% .09 340 / .6),transparent 22%),radial-gradient(circle at 20% 90%,oklch(90% .08 160 / .8),transparent 22%),linear-gradient(180deg,#fff2ec,#f4e0d1);background:radial-gradient(circle at 15% 15%,oklch(92% .08 85 / .9),transparent 24%),radial-gradient(circle at 85% 10%,oklch(90% .09 340 / .6),transparent 22%),radial-gradient(circle at 20% 90%,oklch(90% .08 160 / .8),transparent 22%),linear-gradient(180deg,color(xyz 0.886 0.908 0.909),#f4e0d1)}button,input{font:inherit}button{cursor:pointer}.app-shell{position:relative;overflow:hidden}.ambient{position:fixed;border-radius:999px;filter:blur(90px);opacity:.55;pointer-events:none;animation:drift 10s ease-in-out infinite alternate}.ambient-a{top:-8rem;right:-5rem;width:22rem;height:22rem;background:#fb947bbf}.ambient-b{bottom:6rem;left:-7rem;width:18rem;height:18rem;background:#6dc88fb3;animation-duration:13s}.ambient-c{top:35%;right:10%;width:14rem;height:14rem;background:#deb86673;animation-duration:8.5s}.layout{position:relative;z-index:1;width:min(1240px,calc(100vw - 2rem));margin:0 auto;padding:1.5rem 0 3rem;display:grid;gap:1rem}.auth-layout{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:min(560px,100%);padding:1.6rem;border:1px solid oklch(84% .03 50 / .9);background:#fff7f1e0;box-shadow:0 24px 60px #36232014,inset 0 1px #ffffffa6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-form{display:grid;gap:.75rem;margin-top:1.2rem}.auth-label{font-size:.9rem;font-weight:700}.auth-input{width:100%;padding:.9rem 1rem;border:1px solid oklch(82% .03 45);background:#fffc;color:inherit}.auth-input:focus{outline:2px solid oklch(62% .15 30 / .35);outline-offset:2px;border-color:#d15d4d}.auth-hint{margin:0;color:#5d4f4b;font-size:.92rem}.auth-submit{justify-self:start}.hero,.stepper,.wizard{border:1px solid oklch(84% .03 50 / .9);background:#fff7f1d6;box-shadow:0 24px 60px #36232014,inset 0 1px #ffffffa6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero{padding:1.5rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);gap:1rem;align-items:stretch}.hero-copy,.hero-stage,.wizard-summary,.wizard-panel{min-width:0}.eyebrow,.summary-kicker,.panel-kicker{margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:700;color:#ae4538}.hero h1{margin:.35rem 0 0;max-width:15ch;font-family:Avenir Next,IBM Plex Sans,sans-serif;font-size:clamp(2.15rem,4vw,3.6rem);line-height:.94;letter-spacing:-.05em}.lead{margin:1rem 0 0;max-width:60ch;color:#52403c;font-size:1rem}.hero-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.hero-stat,.step-card,.counter-card,.day-tile,.meal-card,.shopping-row,.shopping-empty,.swap-box,.toolbar,.wizard-summary{border:1px solid oklch(86% .03 50);background:linear-gradient(180deg,#fffc,#fff7f1b8)}.hero-stat{padding:1rem;display:grid;gap:.2rem;transform:translateY(0);animation:lift-in .48s ease-out both}.hero-stat span{font-size:1.9rem;font-weight:700;line-height:1}.hero-stat small,.counter-card small,.step-card small,.panel-head p,.shopping-empty p,.feedback,.tags,.wizard-summary p{color:#5d4f4b}.hero-stat-wide{grid-column:1 / -1}.hero-stat-wide strong{font-size:1.08rem;line-height:1.4}.stepper{padding:.55rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.step-card{padding:.65rem .75rem;display:grid;gap:.1rem;text-align:left;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,opacity .18s ease}.step-card:hover:not(:disabled){transform:translateY(-2px)}.step-card:disabled{opacity:.5;cursor:not-allowed}.step-index{width:1.55rem;height:1.55rem;display:inline-grid;place-items:center;border-radius:999px;background:#f4e0d1;font-weight:700;font-size:.82rem}.step-label{font-weight:700;font-size:.92rem;line-height:1.1}.step-card small{font-size:.72rem}.step-active{border-color:#d15d4d;background:radial-gradient(circle at top right,oklch(92% .11 35 / .55),transparent 35%),linear-gradient(180deg,#fffffff2,#fff3e9eb);background:radial-gradient(circle at top right,oklch(92% .11 35 / .55),transparent 35%),linear-gradient(180deg,#fffffff2,color(xyz 0.88 0.91 0.893 / 0.922))}.step-active .step-index{background:#ce5342;color:#fffbf4}.step-done .step-index{background:#7cc58c}.wizard{padding:1rem;display:grid;grid-template-columns:300px minmax(0,1fr);gap:1rem;align-items:start}.wizard-summary{padding:1.1rem;position:sticky;top:1rem;display:grid;gap:.9rem}.wizard-summary h2,.panel-head h3{margin:.15rem 0 0;font-size:1.55rem;line-height:1.08}.wizard-summary p{margin:0}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.summary-grid div{padding:.85rem;border:1px solid oklch(87% .03 55);background:#ffffff80}.summary-grid span{display:block;font-size:1.5rem;font-weight:700}.wizard-panel{padding:.2rem}.panel-content{display:grid;gap:1.1rem}.import-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.95rem 1rem;border:1px solid oklch(86% .03 50);background:radial-gradient(circle at top right,oklch(91% .09 160 / .3),transparent 40%),linear-gradient(180deg,#ffffffd1,#fff7f1b8)}.import-card span{display:block;font-size:.85rem;color:#5d4f4b}.import-card strong{display:block;margin-top:.2rem;font-size:1rem;line-height:1.35}.panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:end}.panel-head h3,.panel-head p{max-width:34rem}.day-grid,.counter-grid,.plan-grid,.summary-grid{display:grid}.day-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.day-tile{padding:1rem;display:grid;gap:.2rem;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.day-tile:hover{transform:translateY(-2px)}.day-tile span{font-size:.85rem;color:#65504a}.day-tile strong{font-size:1.1rem}.day-tile-active{border-color:#cd5a4a;box-shadow:0 14px 28px #a35f5524;background:radial-gradient(circle at top right,oklch(93% .11 35 / .5),transparent 38%),linear-gradient(180deg,#fffbf8,#feeee6);background:radial-gradient(circle at top right,oklch(93% .11 35 / .5),transparent 38%),linear-gradient(180deg,color(xyz 0.93 0.968 0.993),#feeee6)}.counter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.counter-card{padding:1rem;display:grid;gap:.55rem}.counter-card span{color:#68524d}.counter-card input{width:100%;border:1px solid oklch(82% .03 45);padding:.8rem .9rem;background:#ffffffd1}.counter-card strong{font-size:2rem;line-height:1}.counter-card-highlight{background:radial-gradient(circle at top right,oklch(91% .09 160 / .55),transparent 40%),linear-gradient(180deg,#ffffffdb,#fff3e9bd);background:radial-gradient(circle at top right,oklch(91% .09 160 / .55),transparent 40%),linear-gradient(180deg,#ffffffdb,color(xyz 0.88 0.91 0.893 / 0.741))}.toolbar,.swap-box,.panel-actions,.card-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.toolbar{justify-content:space-between;padding:.9rem 1rem}.sticky-toolbar{position:sticky;top:.65rem;z-index:4;box-shadow:0 14px 28px #36232014}.toolbar-group{display:flex;flex-wrap:wrap;gap:.75rem}.swap-box{padding:.75rem}.swap-box-active{border-color:#cd5a4a;background:radial-gradient(circle at top right,oklch(93% .11 35 / .4),transparent 40%),linear-gradient(180deg,#ffffffd9,#fff3e9b8);background:radial-gradient(circle at top right,oklch(93% .11 35 / .4),transparent 40%),linear-gradient(180deg,#ffffffd9,color(xyz 0.88 0.91 0.893 / 0.722))}.swap-copy{display:grid;gap:.35rem;min-width:220px}.swap-box span{font-size:.85rem;color:#5d4f4b}.swap-copy strong{font-size:1rem;line-height:1.3}.action{border:1px solid oklch(81% .03 45);background:#ffffff94;color:inherit;padding:.82rem 1.05rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.action:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 22px #34211e14}.action:disabled{opacity:.45;cursor:not-allowed}.action-primary{border-color:#ca5747;background:linear-gradient(180deg,#f66947,#ca5747);color:#fffbf6;color:oklch(99% .01 70)}.action-subtle{padding:.58rem .78rem;font-size:.9rem}.swap-toggle-active{border-color:#3f7f4f;background:#c4f2cc}.action-import{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.action-import input{position:absolute;inset:0;opacity:0;cursor:pointer}.action-small{padding:.68rem .88rem}.feedback{margin:0}.feedback.error{color:#a92229}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.meal-card{position:relative;overflow:hidden;padding:.9rem;min-height:148px;display:grid;align-content:start;gap:.7rem;transition:transform .22s ease,box-shadow .22s ease}.meal-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,#f18b71,#bca97a 50%,#9bb57e,#6fc082);opacity:.6}.meal-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px #36232014}.meal-card-empty{opacity:.74}.meal-card-swap-candidate{cursor:pointer;border-color:#dbaa9e}.meal-card-swap-selected{border-color:#ca5747;box-shadow:0 0 0 2px #ffd2c7,0 18px 34px #36232014;box-shadow:0 0 0 2px oklch(90% .09 35),0 18px 34px #36232014}.meal-topline{display:flex;justify-content:space-between;gap:.5rem;color:#65504a;font-size:.88rem;text-transform:uppercase;letter-spacing:.06em;align-items:start}.meal-card h3{margin:0;font-size:clamp(1.02rem,1.45vw,1.45rem);line-height:1.06;letter-spacing:-.03em;max-width:100%;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.badge{padding:.22rem .5rem;font-size:.72rem;font-weight:700}.badge-favorite{background:#ffd0cb;background:oklch(90% .1 25)}.badge-new{background:#b7f3c2}.badge-regular{background:#f5e0d2}.slot-machine{display:grid;gap:.75rem}.card-actions{display:flex;justify-content:flex-end}.icon-lock{width:2rem;height:2rem;display:inline-grid;place-items:center;border:1px solid oklch(82% .03 45);background:#ffffffb3;font-size:.9rem;line-height:1;color:#46322f}.icon-lock-active{border-color:#3f7f4f;background:#c4f2cc}.ui-icon{width:1rem;height:1rem;display:block}.slot-window{position:relative;overflow:hidden;min-height:140px;border-radius:18px;border:1px solid oklch(82% .03 45);background:linear-gradient(180deg,#ffeee58c,#fffc 20% 80%,#ffeee58c);background:linear-gradient(180deg,color(xyz 0.866 0.879 0.832 / 0.549),#fffc 20% 80%,color(xyz 0.866 0.879 0.832 / 0.549))}.slot-window:before,.slot-window:after{content:"";position:absolute;left:0;right:0;height:24px;z-index:1}.slot-window:before{top:0;background:linear-gradient(180deg,oklch(98% .02 50),transparent)}.slot-window:after{bottom:0;background:linear-gradient(0deg,oklch(98% .02 50),transparent)}.slot-track{display:grid;gap:.55rem;padding:.8rem .9rem;animation:reel-spin 1.1s cubic-bezier(.16,1,.3,1) infinite}.slot-track-abstract{min-height:140px;align-content:center}.slot-pill{display:block;height:1rem;border-radius:999px;background:linear-gradient(90deg,#ffd2c7,#c1e1c6);background:linear-gradient(90deg,color(xyz 0.754 0.715 0.618),#c1e1c6);opacity:.85}.slot-pill-large{width:82%}.slot-pill-small{width:54%}.swap-hint{margin:0;color:#68524d;font-size:.92rem}.detail-hint{margin:0;color:#68524d;font-size:.85rem}.shopping-list{display:grid;border:1px solid oklch(86% .03 50)}.shopping-row,.shopping-empty{padding:.95rem 1rem}.shopping-row{display:grid;grid-template-columns:1fr auto;gap:1rem;border-top:1px solid oklch(88% .03 55)}.shopping-row:first-child{border-top:0}.panel-actions{justify-content:space-between}.panel-actions-top{display:grid;grid-template-columns:auto 1fr 1fr;gap:.75rem;align-items:center}.action-criteria{justify-self:start;white-space:nowrap}.action-main{width:100%}.swap-toolbar-label{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#65504a}.mobile-plan-nav{display:none}.overlay-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:1rem;background:#1a0e0e6b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.recipe-overlay{width:min(720px,100%);max-height:min(82vh,900px);overflow:auto;border:1px solid oklch(84% .03 50 / .95);background:#fff7f1fa;box-shadow:0 26px 64px #22101038}.overlay-head{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:1rem 1rem .75rem;border-bottom:1px solid oklch(88% .03 55)}.overlay-head h3{margin:.25rem 0 0;font-size:clamp(1.2rem,2vw,1.75rem);line-height:1.05}.overlay-meta,.overlay-empty,.overlay-instructions{margin:0;color:#574946}.overlay-close{width:2.2rem;height:2.2rem;display:inline-grid;place-items:center;border:1px solid oklch(84% .03 45);background:#ffffffb3}.overlay-section{padding:1rem;display:grid;gap:.7rem}.overlay-section h4{margin:0;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;color:#6b5550}.overlay-ingredient-list{display:grid;border:1px solid oklch(88% .03 55)}.overlay-ingredient-row{display:grid;grid-template-columns:1fr auto;gap:.8rem;padding:.82rem .9rem;border-top:1px solid oklch(88% .03 55)}.overlay-ingredient-row:first-child{border-top:0}.overlay-ingredient-row span,.overlay-ingredient-row strong{min-width:0}.overlay-instructions{white-space:pre-wrap;line-height:1.6}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(18px,-16px,0) scale(1.06)}}@keyframes lift-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes reel-spin{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media(max-width:1100px){.hero,.wizard{grid-template-columns:1fr}.wizard-summary{position:static}.counter-grid,.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.layout{width:min(100vw - 1rem,100%);padding-top:.5rem;padding-bottom:5.5rem}.hero,.stepper,.wizard{padding:.8rem}.day-grid,.counter-grid,.plan-grid,.hero-stage,.summary-grid{grid-template-columns:1fr}.stepper{grid-template-columns:repeat(4,minmax(0,1fr));gap:.28rem;padding:.3rem}.step-card{padding:.38rem .38rem .34rem;gap:.05rem}.step-index{width:1.2rem;height:1.2rem;font-size:.68rem}.step-label{font-size:.66rem;line-height:1.02}.step-card small{font-size:.54rem}.panel-head,.toolbar,.panel-actions,.panel-actions-top{display:grid}.panel-actions-top{grid-template-columns:auto 1fr 1fr;gap:.55rem;align-items:center}.action-criteria{grid-column:1 / -1}.hero{gap:.8rem}.hero h1{max-width:100%;font-size:clamp(1.9rem,8vw,2.5rem)}.wizard-summary{display:none}.sticky-toolbar{top:.45rem}.swap-box{width:100%}.import-card{display:grid}.meal-card{min-height:146px}.mobile-plan-nav{position:sticky;top:4.9rem;z-index:3;display:grid;gap:.55rem;padding:.7rem;border:1px solid oklch(86% .03 50);background:#fff7f1f0;box-shadow:0 12px 24px #36232014;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-plan-controls{display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center}.mobile-current-day{min-width:0;padding:.5rem .6rem;border:1px solid oklch(84% .03 45);background:#ffffffb8;text-align:center}.mobile-current-day span{display:block;font-size:.72rem;color:#5d4f4b}.mobile-current-day strong{display:block;margin-top:.12rem;font-size:.92rem}.mobile-day-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:.5rem}.mobile-day-pill{min-width:0;padding:.58rem .4rem;border:1px solid oklch(84% .03 45);background:#ffffffb8;text-align:center;font-size:.82rem;font-weight:700}.mobile-day-pill-active{border-color:#ca5747;background:radial-gradient(circle at top right,oklch(92% .11 35 / .4),transparent 45%),linear-gradient(180deg,#fffbf8,#feeee6);background:radial-gradient(circle at top right,oklch(92% .11 35 / .4),transparent 45%),linear-gradient(180deg,color(xyz 0.93 0.968 0.993),#feeee6)}.plan-grid{display:block}.meal-card-mobile-hidden{display:none}.meal-card-mobile-active{display:grid}.shopping-row{grid-template-columns:1fr}.overlay-backdrop{align-items:end;padding:0}.recipe-overlay{width:100%;max-height:88vh}.overlay-ingredient-row{grid-template-columns:1fr}}
