:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#392c35;background:#fff7f5;font-synthesis:none;--rose:#a83262;--muted:#796572;--line:#e9dce1}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 92% 0,#f7cedc99,transparent 45%),radial-gradient(ellipse at 0 60%,#f5e5df,transparent 50%),#fff7f5;min-height:100vh}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#ffffffb8;color:inherit;border-radius:12px;padding:10px 15px;min-height:44px;transition:background .16s,transform .16s}button:hover{background:#fce3eb}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a8326299;outline-offset:3px}input,select{background:#fffdfc;border:1px solid #dfccd4;border-radius:10px;padding:11px;min-width:0;min-height:44px;color:inherit}input[type=checkbox]{accent-color:var(--rose);width:21px;height:21px;min-height:21px}label{font-size:14px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(32px,4vw,48px);letter-spacing:-1.3px;line-height:1.1;margin-bottom:12px}h2{font-size:23px;font-weight:600;letter-spacing:-.5px}h3{font-size:17px;line-height:1.4}.muted,small{color:var(--muted)}small{font-size:13px;line-height:1.5}.primary{background:var(--rose);color:white;border-color:var(--rose)}.primary:hover{background:#8e244f}.shell{max-width:1560px;margin:auto;padding:0 36px 48px}.topbar{display:flex;align-items:center;gap:30px;min-height:94px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:25px;white-space:nowrap}.brandmark{display:grid;place-items:center;background:#a83262;color:white;border-radius:14px;width:42px;height:42px;font-family:Georgia,serif;font-size:26px}.nav{display:flex;gap:6px;flex:1}.nav button{background:none;border-color:transparent;font-size:14px}.nav button.active{background:white;color:var(--rose);box-shadow:0 3px 12px #63384d08}.topright{font-size:14px;display:flex;align-items:center;gap:12px}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:35px 0 24px}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--rose);margin-bottom:13px}.intro p{margin-bottom:0;line-height:1.6;color:var(--muted)}.pill{display:inline-flex;gap:7px;align-items:center;border:1px solid var(--line);background:#fff8;padding:9px 13px;border-radius:99px;font-size:13px}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 22px}.toolbar .spacer{flex:1}.dategroup{display:flex;align-items:center;gap:8px}.dategroup input{max-width:160px}.glass{background:#ffffffb8;border:1px solid white;border-radius:23px;box-shadow:0 12px 40px #6f344e08;backdrop-filter:blur(16px)}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.day{min-width:0}.dayhead{padding:16px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #eee2e7;margin-bottom:10px}.dayhead strong{font:28px Georgia,serif}.dayhead span{font-size:13px;color:var(--muted)}.today .dayhead strong{color:var(--rose)}.meal{display:block;width:100%;text-align:left;border:0;border-radius:14px;background:#ffffffac;padding:15px 12px;margin-bottom:9px;min-height:151px}.meal:hover{background:white;box-shadow:0 5px 18px #71324c12;transform:translateY(-2px)}.meal .slot{display:flex;gap:6px;align-items:center;color:#8e6275;font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.meal .dot{width:6px;height:6px;border-radius:50%;background:#bd829b}.meal strong{display:block;font-size:14px;font-weight:600;line-height:1.5;margin-bottom:12px}.meal small{font-size:12px}.meal.empty{background:#ffffff40;border:1px dashed #d6bfc9;color:var(--muted)}.day:nth-child(2n) .meal{background:#fff9f4bb}.bottomnote{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding:18px 22px;font-size:14px;line-height:1.7}.tea{display:flex;gap:12px;align-items:center}.tea span{font-size:24px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.recipe{padding:24px}.recipe h3{margin:14px 0 10px}.recipe p{font-size:14px;line-height:1.6}.recipe button{margin-top:10px}.chip{display:inline-block;font-size:12px;padding:5px 9px;border-radius:7px;background:#f6e9ee;color:#8a4462}.shoplayout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.shopgroup{padding:23px;margin-bottom:18px}.shopgroup h3{color:#835269;margin:0 0 14px}.shoprow{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid #eee4e9}.shoprow .name{flex:1;min-width:0}.shoprow .name strong{font-size:15px;display:block}.shoprow small{display:block}.shoprow.done strong{text-decoration:line-through;color:#91818a}.quantity{font-weight:600;font-size:14px;white-space:nowrap}.aside{padding:24px;height:fit-content;position:sticky;top:20px}.aside p{font-size:14px;line-height:1.7}.aside h2{font:30px Georgia,serif}.aside button{width:100%;margin-top:8px}.pantryrow{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:12px 0}.pantryrow label{flex:1}.pantryrow input{width:110px}.pantryrow small{width:35px}.login{max-width:460px;margin:10vh auto;padding:42px}.login .brand{margin-bottom:35px}.login h1{font-size:39px}.login p{line-height:1.7;font-size:15px;color:var(--muted)}.login label{display:block;margin:22px 0 8px}.login input,.login button{width:100%}.login button{margin-top:25px}.error{color:#9b2444!important}.loading{text-align:center;padding:25vh 20px;color:var(--rose)}dialog{width:min(600px,calc(100% - 28px));max-height:90dvh;padding:28px;border:1px solid white;border-radius:24px;background:#fffaf9;color:inherit;box-shadow:0 24px 90px #4a233b30}dialog::backdrop{background:#37263265;backdrop-filter:blur(5px)}.dialoghead{display:flex;justify-content:space-between;gap:15px;align-items:start}.dialoghead h2{font:30px Georgia,serif}dialog label{display:block;margin:16px 0 8px}dialog select,dialog input{width:100%}dialog p{line-height:1.7;font-size:14px}.actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.actions .primary{flex:1}.ingredients{list-style:none;padding:0;font-size:14px}.ingredients li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#49333f;color:white;border-radius:14px;padding:14px 22px;box-shadow:0 8px 30px #0002;max-width:90%;z-index:100;display:none;font-size:14px}#notice.show{display:block}.search{flex:1;max-width:400px}.emptybox{padding:32px;text-align:center;color:var(--muted)}@media(min-width:1100px){.week{padding:12px}}@media(max-width:1100px){.shell{padding:0 20px 30px}.week{grid-template-columns:repeat(4,minmax(0,1fr));padding:12px}.topright .pill{display:none}.topbar{gap:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meal{min-height:140px}}@media(max-width:700px){.shell{padding:0 14px 24px}.topbar{flex-wrap:wrap;padding:20px 0 10px;gap:16px}.brand{font-size:23px}.topright{margin-left:auto}.nav{order:3;flex-basis:100%;justify-content:space-between}.nav button{padding:8px 11px}.intro{padding:28px 4px 20px}.intro>.pill{display:none}.intro p{font-size:14px}.week{grid-template-columns:1fr;background:none;border:0;padding:0;box-shadow:none;backdrop-filter:none;gap:20px}.day{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dayhead{grid-column:1/-1;margin:0;padding:8px 2px}.meal{margin:0;min-height:140px;padding:16px}.meal strong{font-size:15px}.meal .slot{font-size:12px}.meal small{font-size:13px}.bottomnote{align-items:start;flex-direction:column;padding:20px}.shoplayout{grid-template-columns:1fr}.aside{position:static;order:-1}.aside h2{font-size:25px}.grid{grid-template-columns:1fr}.login{margin:7vh 16px;padding:28px}.toolbar{gap:8px}.toolbar .spacer{display:none}.dategroup{width:100%;justify-content:space-between}.dategroup input{max-width:none;flex:1}.shopgroup{padding:18px}.quantity{font-size:13px}.pill{font-size:12px}}@media print{.topbar,.toolbar,.aside,.intro .pill,.bottomnote,button,#notice{display:none!important}.shell{padding:0}.shoplayout{display:block}.glass{box-shadow:none;border:0}.shopgroup{break-inside:avoid}body{background:white}.intro{padding:10px}.shoprow{padding:7px}.shoprow small{display:none}}

#fruitform{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:24px}#fruitform label{display:block;margin:12px 0 6px}#fruitform input,#fruitform select{width:100%}
.view-switch{display:flex;gap:4px;background:#ffffff80;padding:4px;border-radius:15px}.view-switch button{min-width:65px}.prep-panel{margin-bottom:22px}.prep-panel summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:19px 23px;min-height:72px;list-style:none;color:#853c5b}.prep-panel summary::-webkit-details-marker{display:none}.prep-panel small{display:block;margin-top:5px}.prep-content{padding:0 24px 24px}.prep-content ul{padding-left:22px;display:grid;grid-template-columns:1fr 1fr;gap:18px 30px}.prep-content li{font-size:14px;line-height:1.6}.prep-content li strong{font-weight:500}.daily-calendar{display:block;padding:18px}.daily-calendar .day{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.daily-calendar .dayhead{grid-column:1/-1}.daily-calendar .meal{min-height:160px}.month-calendar{padding:14px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays span{text-align:center;font-size:14px;color:var(--muted);padding:10px}.month-day{text-align:left;border-radius:0;border:1px solid #eadde466;min-height:145px;padding:12px;overflow:hidden;background:#ffffff65}.month-day>strong{font-size:21px;font-family:Georgia,serif}.month-day>small{display:block;font-size:12px;margin-top:5px}.month-day.outside{background:#eee7eb55;color:#8c7a85}.month-day.current-day{background:#fce3eb;border:2px solid #a83262}.month-meals{margin-top:10px;display:grid;gap:7px}.month-meals span{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.month-meals b{display:block;color:#8b536b;font-size:11px;font-weight:500}.month-day:hover{background:#fce3eb}@media(max-width:700px){.daily-calendar .day{grid-template-columns:1fr}.prep-content ul{grid-template-columns:1fr}.month-calendar{padding:5px}.month-day{padding:7px 3px;min-height:83px}.month-day>strong{font-size:18px}.month-day>small{font-size:11px}.month-meals{display:none}.month-weekdays span{font-size:12px;padding:10px 0}.prep-panel summary{padding:17px}.dategroup #caldate{width:180px;flex:1}.daily-calendar .meal{min-height:130px}}
.egg-note{display:block;color:#90571e;background:#fff0d8;padding:5px 7px;border-radius:6px;margin-bottom:8px;font-size:12px}

.birthday-banner{display:flex;align-items:center;gap:20px;margin-top:24px;padding:26px 30px;border-radius:23px;background:linear-gradient(120deg,#fbe1ec,#fff1dc);border:1px solid white;box-shadow:0 10px 30px #a8326210}.birthday-banner>span{font-size:46px}.birthday-banner h2{font-family:Georgia,serif;font-size:30px;color:#8e244f;margin:0 0 8px}.birthday-banner p{margin:0;line-height:1.7;color:#71505f;max-width:800px}@media(max-width:700px){.birthday-banner{padding:20px;gap:14px;align-items:flex-start}.birthday-banner>span{font-size:30px}.birthday-banner h2{font-size:25px}}

.nutrition-chart{display:block;margin-top:13px;padding-top:10px;border-top:1px solid #eadde4}.nutrition-chart>small{display:block;font-size:11px}.nutrition-chart .nutrition-energy{display:block;font-family:inherit;font-size:17px;margin:5px 0 9px}.nutrient-row{display:grid;grid-template-columns:43px minmax(15px,1fr) 33px;align-items:center;gap:5px;font-size:11px;margin:4px 0}.nutrient-row>b{text-align:right;font-weight:500}meter{width:100%;height:9px;appearance:none;background:#eee5e9;border-radius:6px;border:0}meter::-webkit-meter-bar{background:#eee5e9;border:0;border-radius:6px}meter::-webkit-meter-optimum-value{background:#ab537a;border-radius:6px}.nutrient-carbs::-webkit-meter-optimum-value{background:#b6883d}.nutrient-fat::-webkit-meter-optimum-value{background:#8373a9}.nutrient-fiber::-webkit-meter-optimum-value{background:#62937b}meter::-moz-meter-bar{background:#ab537a}.daily-nutrition{grid-column:1/-1;margin:12px 0;padding:14px 10px;border-top:1px solid #dfcdd6}.daily-nutrition h3{font-size:15px;margin:0 0 5px}.person-nutrition{display:grid;gap:11px;margin-top:12px}.person-nutrition>div{display:grid;gap:3px;font-size:12px}.person-nutrition small{font-size:11px}.daily-calendar .person-nutrition{grid-template-columns:repeat(4,1fr)}.daily-calendar .daily-nutrition{padding:22px}.daily-calendar .nutrition-chart{max-width:550px}.nutrition-explanation{margin-bottom:17px;font-size:14px;line-height:1.65;color:var(--muted)}.nutrition-explanation summary{cursor:pointer;color:#8e244f}.nutrition-explanation p{max-width:1000px;margin-top:12px}.nutrition-explanation a{color:#8e244f}.birthday-theme{background:radial-gradient(ellipse at top right,#ffd6e8,transparent 60%),radial-gradient(ellipse at bottom left,#fff0be,transparent 60%),#fff5fa}.birthday-theme .brandmark{background:#b52e71}.birthday-theme .birthday-banner{position:relative;border:2px solid #efbacc;background:linear-gradient(120deg,#ffdbea,#fff0c8);box-shadow:0 12px 36px #b52e7120}.birthday-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:99;animation:confetti-finish 6s forwards}.birthday-confetti i{position:absolute;top:-25px;width:9px;height:15px;background:#d96199;animation:confetti-fall 4.5s ease-in both}.birthday-confetti i:nth-child(3n){background:#eac364}.birthday-confetti i:nth-child(3n+1){background:#b39bd8}.birthday-confetti i:nth-child(2n){border-radius:50%;width:9px;height:9px}@keyframes confetti-fall{0%{transform:translateY(-30px) rotate(0deg);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(105vh) rotate(620deg);opacity:0}}@keyframes confetti-finish{to{visibility:hidden}}@media(prefers-reduced-motion:reduce){.birthday-confetti{display:none}.meal{transition:none}}@media(max-width:700px){.daily-calendar .person-nutrition{grid-template-columns:1fr 1fr}.person-nutrition{grid-template-columns:1fr 1fr}.nutrient-row{font-size:12px}.nutrition-chart>small{font-size:12px}.daily-nutrition small{font-size:12px}}
.birthday-confetti i:nth-child(1){left:37%;animation-delay:0.12s}
.birthday-confetti i:nth-child(2){left:74%;animation-delay:0.24s}
.birthday-confetti i:nth-child(3){left:11%;animation-delay:0.36s}
.birthday-confetti i:nth-child(4){left:48%;animation-delay:0.48s}
.birthday-confetti i:nth-child(5){left:85%;animation-delay:0.60s}
.birthday-confetti i:nth-child(6){left:22%;animation-delay:0.72s}
.birthday-confetti i:nth-child(7){left:59%;animation-delay:0.84s}
.birthday-confetti i:nth-child(8){left:96%;animation-delay:0.96s}
.birthday-confetti i:nth-child(9){left:33%;animation-delay:0.00s}
.birthday-confetti i:nth-child(10){left:70%;animation-delay:0.12s}
.birthday-confetti i:nth-child(11){left:7%;animation-delay:0.24s}
.birthday-confetti i:nth-child(12){left:44%;animation-delay:0.36s}
.birthday-confetti i:nth-child(13){left:81%;animation-delay:0.48s}
.birthday-confetti i:nth-child(14){left:18%;animation-delay:0.60s}
.birthday-confetti i:nth-child(15){left:55%;animation-delay:0.72s}
.birthday-confetti i:nth-child(16){left:92%;animation-delay:0.84s}
.birthday-confetti i:nth-child(17){left:29%;animation-delay:0.96s}
.birthday-confetti i:nth-child(18){left:66%;animation-delay:0.00s}
.birthday-confetti i:nth-child(19){left:3%;animation-delay:0.12s}
.birthday-confetti i:nth-child(20){left:40%;animation-delay:0.24s}
.birthday-confetti i:nth-child(21){left:77%;animation-delay:0.36s}
.birthday-confetti i:nth-child(22){left:14%;animation-delay:0.48s}
.birthday-confetti i:nth-child(23){left:51%;animation-delay:0.60s}
.birthday-confetti i:nth-child(24){left:88%;animation-delay:0.72s}
.birthday-confetti i:nth-child(25){left:25%;animation-delay:0.84s}
.birthday-confetti i:nth-child(26){left:62%;animation-delay:0.96s}
.birthday-confetti i:nth-child(27){left:99%;animation-delay:0.00s}
.birthday-confetti i:nth-child(28){left:36%;animation-delay:0.12s}
.birthday-confetti i:nth-child(29){left:73%;animation-delay:0.24s}
.birthday-confetti i:nth-child(30){left:10%;animation-delay:0.36s}
.birthday-confetti i:nth-child(31){left:47%;animation-delay:0.48s}
.birthday-confetti i:nth-child(32){left:84%;animation-delay:0.60s}
.birthday-confetti i:nth-child(33){left:21%;animation-delay:0.72s}
.birthday-confetti i:nth-child(34){left:58%;animation-delay:0.84s}
.birthday-confetti i:nth-child(35){left:95%;animation-delay:0.96s}
.birthday-confetti i:nth-child(36){left:32%;animation-delay:0.00s}

.recipe-steps{padding-left:23px;font-size:15px;line-height:1.8}.recipe-steps li{padding:4px 0 8px}
