@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght,SOFT,WONK@9..144,500,50,1;9..144,600,50,1&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#26382d;background:#fbf9f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}svg{flex:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.035em}h1{font-size:clamp(2.3rem,4vw,3.8rem);line-height:1.08;margin-bottom:13px}h2{font-size:1.35rem}p{line-height:1.6}.topbar{height:91px;padding:0 max(4vw,24px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eeeae1;background:#fffdf8;gap:20px}.brand{display:flex;align-items:center;gap:11px;min-width:230px}.brand-mark{display:grid;place-items:center;background:#dcebd9;color:#376e4c;border-radius:17px;width:44px;height:44px;font-size:31px;line-height:1}.brand strong,.auth-brand strong{display:block;font-family:Fraunces,Georgia,serif;font-size:25px;letter-spacing:-.055em;line-height:1}.brand strong span,.auth-brand strong span{color:#e88e69}.brand small{display:block;color:#899789;font-size:11px;letter-spacing:.03em;margin-top:4px}.main-nav{display:flex;gap:8px;background:#f5f5ee;padding:5px;border-radius:14px}.nav-link{border:0;background:transparent;border-radius:10px;padding:10px 19px;color:#728273;display:flex;align-items:center;gap:9px;font-weight:700;font-size:13px}.nav-link.active{background:#fff;box-shadow:0 2px 8px #243d1c10;color:#315f45}.account-button{display:flex;align-items:center;gap:8px;border:1px solid #e5e9e1;background:#fff;border-radius:100px;padding:10px 15px;color:#315f45;font-size:13px;font-weight:700;max-width:220px;overflow:hidden}.account-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:1460px;margin:auto;padding:55px max(4vw,24px) 60px;min-height:calc(100vh - 143px)}.page-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:43px}.eyebrow{color:#6f9977;font-size:11px;letter-spacing:.18em;font-weight:700;margin-bottom:17px}.eyebrow span{color:#e2a17d;padding:0 5px}.subtitle{margin:0;color:#879087;font-size:15px}.head-actions{padding-bottom:4px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:11px;padding:13px 18px;font-weight:700;font-size:13px;border:1px solid transparent;text-decoration:none;min-height:44px}.primary{background:#315f45;color:#fff;box-shadow:0 4px 12px #315f4520}.primary:hover{background:#244d36}.secondary{background:#fff;color:#315f45;border-color:#d9e3d7}.secondary:hover{background:#f2f7f1}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.week-controls{display:flex;align-items:center;gap:14px;font-weight:700;font-size:15px}.week-controls span{min-width:168px;text-align:center}.icon-button{width:35px;height:35px;display:grid;place-items:center;background:#fff;border:1px solid #e5e9df;border-radius:9px;color:#315f45}.icon-button:hover{background:#edf4ec}.muted{color:#94a094;font-size:12px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.day-card{background:#fff;border:1px solid #e7eae2;border-radius:16px;padding:17px 13px;min-height:265px;box-shadow:0 5px 18px #335a3410}.day-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eff0e9;padding-bottom:15px;margin-bottom:15px}.day-heading span{font-size:12px;font-weight:700}.day-heading strong{display:grid;place-items:center;color:#5e735e;font-size:12px;width:27px;height:27px}.day-heading strong.today{background:#e0efda;border-radius:50%;color:#315f45}.meal-slot{margin-bottom:15px}.meal-label{text-transform:uppercase;color:#abb5a8;font-size:9px;font-weight:700;letter-spacing:.12em;display:block;margin-bottom:7px}.empty-meal,.planned-meal{width:100%;min-height:61px;text-align:left;border-radius:9px;padding:10px 9px;display:flex;align-items:center;gap:5px}.empty-meal{border:1px dashed #d7dfd2;background:#fbfcf8;color:#a1ada0;font-size:11px;white-space:nowrap}.empty-meal:hover{border-color:#8cad92;color:#315f45}.planned-meal{border:1px solid #dcebdc;background:#f0f7ee;color:#315f45;display:grid;grid-template-columns:8px 1fr;column-gap:7px;align-content:center}.planned-meal:hover{background:#e5f0e1}.planned-meal .meal-dot{font-size:6px;grid-row:1/3;align-self:start;margin-top:5px}.planned-meal strong{font-size:11px;line-height:1.3;font-weight:700;overflow-wrap:anywhere}.planned-meal small{font-size:10px;color:#78947d;margin-top:3px}.tip-card{margin-top:28px;background:#eaf2e7;border-radius:15px;padding:24px 26px;display:flex;gap:18px;align-items:center}.tip-icon{color:#588768;font-size:31px;align-self:start}.tip-card div{flex:1}.tip-card strong{font-family:Fraunces,Georgia,serif;font-size:17px}.tip-card p{font-size:12px;color:#7e927c;margin:5px 0 0}.text-link{border:0;background:transparent;color:#315f45;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:5px 0;white-space:nowrap}.text-link:hover{text-decoration:underline}.footer{border-top:1px solid #eeece5;text-align:center;padding:16px;color:#a7ada4;font-size:11px;background:#fffdf8}.footer span{color:#e8a583;margin-left:5px}.recipe-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.search-field{position:relative;display:block;width:min(360px,100%)}.search-field span{position:absolute;left:15px;top:8px;font-size:25px;color:#9eae9d}.search-field input{padding-left:43px!important}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.recipe-card{border:1px solid #e7e9e0;background:#fff;border-radius:17px;overflow:hidden;box-shadow:0 4px 18px #335a340e}.recipe-art{height:150px;display:grid;place-items:center;font-size:64px}.art-0{background:#e2eedc}.art-1{background:#f5e6d5}.art-2{background:#f3e4d1}.art-3{background:#f7e2dc}.art-4{background:#e4eddf}.recipe-body{padding:20px 21px}.recipe-meta{color:#92a08f;font-size:11px;display:flex;align-items:center;gap:6px}.recipe-meta span{padding:0 3px}.recipe-body h2{margin:11px 0 6px;font-size:22px}.recipe-body p{font-size:12px;color:#8e9a8d;margin-bottom:18px;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-bottom{border-top:1px solid #eff0eb;padding-top:15px;display:flex;justify-content:space-between;align-items:center;color:#8ca08b;font-size:11px}.round-arrow{display:grid;place-items:center;border:0;border-radius:50%;background:#e7f0e5;color:#315f45;width:31px;height:31px}.round-arrow:hover{background:#d3e5d0}.empty-state{grid-column:1/-1;text-align:center;padding:70px 20px;background:#fff;border:1px dashed #dfe8dc;border-radius:17px}.empty-illustration{font-size:55px;color:#bad3b6}.empty-state h2{font-size:25px;margin:8px 0}.empty-state p{color:#929f90;font-size:13px}.shopping-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px}.shopping-main{background:#fff;border:1px solid #e7eae2;border-radius:16px;padding:25px;min-height:420px}.list-heading{display:flex;align-items:center;gap:9px;margin-bottom:12px}.list-heading h2{font-size:20px;margin:0}.list-heading span{font-size:10px;font-weight:700;color:#6b9673;background:#e6f0e4;padding:4px 7px;border-radius:100px}.list-heading.second{margin-top:30px}.shopping-list{border-top:1px solid #f0f1eb}.shopping-row{width:100%;min-height:61px;display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #f0f1eb;background:transparent;text-align:left;padding:10px 2px;color:#26382d}.shopping-row:hover{background:#fbfcf9}.shopping-row.done .item-name,.shopping-row.done>strong{color:#abb7aa;text-decoration:line-through}.checkbox{width:21px;height:21px;flex:none;border:1.6px solid #b8c8b6;border-radius:6px;display:grid;place-items:center;color:white}.done .checkbox{background:#5b8e67;border-color:#5b8e67}.item-name{flex:1;font-weight:700;font-size:13px}.item-name small{display:block;font-size:10px;font-weight:400;color:#a4ada3;margin-top:3px;text-decoration:none}.shopping-row>strong{font-size:12px;white-space:nowrap;color:#5a735d}.row-check{flex:1;display:flex;align-items:center;gap:12px;background:transparent;border:0;text-align:left;padding:0}.ghost-icon{border:0;background:transparent;color:#98a798;display:grid;place-items:center;padding:5px;border-radius:6px}.ghost-icon:hover{background:#f5ece8;color:#b16c5a}.list-empty{color:#a0aca0;background:#fafbf8;border:1px dashed #dce6d9;border-radius:9px;text-align:center;padding:37px 10px;font-size:12px}.list-empty.compact{padding:20px}.aside-card{background:#eaf2e7;border-radius:15px;padding:25px}.aside-icon{font-size:29px;color:#6e9b77;margin-bottom:18px}.aside-card h3{font-size:20px;margin-bottom:10px}.aside-card p{color:#788d78;font-size:12px;margin-bottom:0}.aside-line{height:1px;background:#cbdcc9;display:block;margin:20px 0}.aside-card .small{font-size:11px}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:radial-gradient(circle at 10% 5%,#e7f0e3,transparent 30%),radial-gradient(circle at 90% 90%,#f5e5d7,transparent 30%),#fbf9f4}.auth-brand{display:flex;align-items:center;gap:10px;font-size:31px;color:#558c61;margin-bottom:27px}.auth-brand strong{color:#26382d}.auth-card{background:#fff;border:1px solid #e8ece4;border-radius:20px;padding:38px;width:min(430px,100%);box-shadow:0 18px 65px #314b3020}.auth-card h1{font-size:34px}.auth-card>p:not(.eyebrow){font-size:13px;color:#8b998a;margin-bottom:26px}.auth-card form{display:grid;gap:16px}.auth-card .text-link.center{display:block;margin:16px auto 0}.auth-shell>small{color:#96a395;margin-top:20px}.separator{display:flex;align-items:center;gap:12px;color:#a8b4a8;font-size:11px;margin:22px 0}.separator:before,.separator:after{content:"";height:1px;background:#e5eae2;flex:1}.wide{width:100%}label:not(.search-field):not(.import-label){display:grid;gap:7px;font-size:12px;font-weight:700;color:#536a56}input,select{border:1px solid #dbe4d9;border-radius:9px;padding:11px 12px;background:#fff;color:#26382d;outline:none;min-width:0}input:focus,select:focus{border-color:#70a579;box-shadow:0 0 0 3px #72aa7d22}input::placeholder{color:#b0bbb0}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#172c20a8;display:flex;justify-content:center;align-items:center;padding:18px}.modal-scroll{max-height:calc(100vh - 36px);overflow:auto;width:min(620px,100%);border-radius:18px}.modal-panel{position:relative;background:#fffdf9;border-radius:18px;padding:34px;width:100%;box-shadow:0 25px 80px #0f261860}.modal-panel.narrow{max-width:470px;margin:auto}.modal-panel h2{font-size:31px;margin-bottom:20px;padding-right:25px}.modal-close{position:absolute;top:23px;right:23px;width:33px;height:33px;display:grid;place-items:center;background:#f0f3ed;color:#66826a;border:0;border-radius:50%}.modal-intro{font-size:13px;color:#819181;margin-bottom:22px}.modal-panel form{display:grid;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span-2{grid-column:span 2}.ingredient-heading{display:flex;align-items:center;justify-content:space-between;margin:5px 0 -4px}.ingredient-heading strong{font-family:Fraunces,Georgia,serif;font-size:18px}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) 75px 84px 29px;gap:7px;margin-bottom:8px}.ingredient-row input{width:100%;font-size:12px;padding:10px}.form-help{font-size:11px;color:#9ba99a;margin:0}.modal-actions{border-top:1px solid #e8ede5;padding-top:20px;margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:10px}.danger-link{border:0;background:transparent;color:#b86e5a;font-size:12px;font-weight:700;padding:6px 0}.detail-list{background:#f5f8f2;border-radius:11px;padding:18px;margin-bottom:22px}.detail-list>strong{font-family:Fraunces,Georgia,serif;font-size:17px;display:block;margin-bottom:10px}.detail-list div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-top:1px solid #e7eee4;font-size:12px}.detail-list b{white-space:nowrap}.invite-code{background:#eaf2e7;border:1px dashed #95ba97;border-radius:10px;padding:13px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.invite-code span{font-size:19px;font-weight:700;letter-spacing:.14em}.invite-code button{border:0;background:#fff;border-radius:7px;padding:8px 11px;color:#315f45;font-size:11px;font-weight:700}.settings-actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:17px}.import-label{cursor:pointer}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#274e37;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 7px 25px #17312150;z-index:40;font-size:13px}
@media(max-width:1100px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.day-card{min-height:240px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.topbar{height:70px;padding:0 16px}.brand{min-width:0}.brand-mark{width:37px;height:37px;font-size:25px;border-radius:13px}.brand strong{font-size:20px}.brand small{display:none}.main-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;border-radius:0;background:#fffdf8;border-top:1px solid #e7ece5;justify-content:space-around;padding:7px 10px max(8px,env(safe-area-inset-bottom));box-shadow:0 -4px 18px #29493210}.nav-link{flex-direction:column;gap:2px;font-size:10px;padding:5px 19px}.nav-link.active{box-shadow:none;background:#eaf3e8}.account-button{width:37px;height:37px;padding:0;justify-content:center}.account-button span{display:none}.page{padding:38px 16px 110px;min-height:calc(100vh - 70px)}.page-head{align-items:start;flex-direction:column;gap:22px;margin-bottom:31px}.page-head h1{font-size:clamp(2.4rem,10vw,3.5rem)}.head-actions{width:100%}.head-actions .primary{width:100%}.section-toolbar{align-items:start;flex-direction:column;gap:8px}.week-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 10px;gap:12px}.day-card{min-width:200px;max-width:200px;scroll-snap-align:start;min-height:246px}.tip-card{align-items:start;flex-wrap:wrap;padding:20px}.tip-card .text-link{margin-left:41px}.shopping-layout{display:block}.shopping-aside{margin-top:18px}.shopping-main{padding:20px}.recipe-grid{grid-template-columns:1fr}.recipe-art{height:160px}.footer{display:none}.modal-backdrop{align-items:flex-end;padding:0}.modal-scroll{max-height:95vh;width:100%;border-radius:18px 18px 0 0}.modal-panel,.modal-panel.narrow{border-radius:18px 18px 0 0;padding:30px 20px max(25px,env(safe-area-inset-bottom))}.ingredient-row{grid-template-columns:minmax(0,1fr) 63px 68px 22px;gap:5px}.ingredient-row input{padding:9px 6px;font-size:11px}.auth-card{padding:29px 23px}}@media(max-width:420px){.shopping-row{gap:8px}.shopping-row>strong{font-size:11px}.item-name{font-size:12px}.nav-link{padding:5px 13px}}
textarea{border:1px solid #dbe4d9;border-radius:9px;padding:11px 12px;background:#fff;color:#26382d;outline:none;min-width:0;resize:vertical;font:inherit;font-size:13px;line-height:1.5}textarea:focus{border-color:#70a579;box-shadow:0 0 0 3px #72aa7d22}.instructions{margin-bottom:22px}.instructions strong{font-family:Fraunces,Georgia,serif;font-size:17px}.instructions p{white-space:pre-wrap;font-size:13px;color:#637563;margin:9px 0 0}
