@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{--green:#244c3b;--cream:#f7f5ee;--ink:#253b30;--muted:#72786e;--orange:#bc603d;--line:#dedfd3}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif}header,main,footer{max-width:1320px;margin:auto}header{display:flex;align-items:center;gap:28px;padding:25px 36px;border-bottom:1px solid var(--line)}.brand{font:600 27px Georgia,serif;color:var(--green);text-decoration:none}header span{color:var(--muted);flex:1}button{font:inherit;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green);padding:10px 16px;cursor:pointer}button:hover{background:#e7ecdf}button.primary,#newRecipe,#draftImport,#print{background:var(--green);color:white;border-color:var(--green)}main{padding:0 36px}.hero{display:flex;align-items:center;justify-content:space-between;min-height:300px;padding:35px 0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--orange)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500}h1{font-size:48px;line-height:1.13;margin:14px 0}h2{font-size:30px;margin:8px 0 18px}h3{font-size:23px;margin:10px 0}.hero p:not(.eyebrow){color:var(--muted)}.hero-art{width:280px;height:235px;border-radius:50% 45% 45% 40%;background:#e6eadb;display:grid;place-content:center;font-size:105px;transform:rotate(-7deg)}.hero-art small{font:italic 17px Georgia;text-align:center}nav{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:26px;overflow:auto}nav button{white-space:nowrap;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:15px 4px}nav button.active{border-bottom-color:var(--green);font-weight:700}.hidden{display:none!important}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0}.section-head input{width:310px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card,.panel,.day{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.card{cursor:pointer}.card:hover{box-shadow:0 8px 22px #244c3b13;transform:translateY(-2px)}.card-top{height:125px;background:#e7ebde;display:flex;align-items:center;justify-content:center;font-size:65px}.card:nth-child(3n+2) .card-top{background:#f1e3d6}.card:nth-child(3n) .card-top{background:#e6e4d8}.card-content{padding:20px}.card p{color:var(--muted);font-size:13px}.tag{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--orange)}.macroline{border-top:1px solid var(--line);padding-top:12px;display:flex;gap:13px;font-size:12px}.macroline strong{color:var(--green)}#filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}#filters button{border-radius:30px;font-size:12px;padding:8px 15px}#filters .active{background:var(--green);color:white}input,textarea,select{display:block;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:7px;font:inherit;background:#fff;color:var(--ink)}label{display:block;font-size:13px;font-weight:600;margin:15px 0}label input,label textarea,label select{margin-top:6px}textarea{resize:vertical}.muted{color:var(--muted);font-size:13px;line-height:1.6}.panel{padding:24px}.import-panel{max-width:750px;line-height:1.7}.totals{display:flex;gap:15px;flex-wrap:wrap;margin:20px 0}.total{flex:1;min-width:140px;background:#e7ecdf;padding:18px;border-radius:10px}.total strong{display:block;font-size:25px;margin-top:6px}.days{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.day{padding:20px}.day-head{display:flex;justify-content:space-between;align-items:center}.meal{background:var(--cream);padding:12px;border-radius:7px;margin:10px 0}.meal-title{display:flex;justify-content:space-between;gap:10px}.meal button{padding:2px 8px}.week-nav{display:flex;align-items:center;gap:12px}.shopping-row{display:flex;align-items:center;gap:13px;padding:15px;background:white;border-bottom:1px solid var(--line)}.shopping-row input{width:20px;height:20px}.shopping-row.checked span{text-decoration:line-through;color:var(--muted)}dialog{border:0;border-radius:15px;max-width:740px;width:calc(100% - 30px);max-height:90vh;padding:30px;color:var(--ink)}dialog::backdrop{background:#172b2377}.close{position:absolute;right:14px;top:14px;padding:6px 10px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}.form-grid .wide{grid-column:1/-1}.actions{display:flex;gap:10px;margin-top:20px}.recipe-instructions li{padding:8px;line-height:1.6}.nutrition-note{padding:12px;background:var(--cream);font-size:13px}#notice{color:var(--orange);padding:5px 0}footer{padding:45px 36px;font-family:Georgia;border-top:1px solid var(--line);margin-top:45px}footer span{float:right;color:var(--muted);font:12px system-ui}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}@media(max-width:760px){header{padding:18px;gap:12px}header span{display:none}.brand{font-size:22px;flex:1}main{padding:0 18px}.hero{min-height:255px}.hero-art{display:none}h1{font-size:38px}.grid,.days{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.section-head input{width:100%}nav{gap:18px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.total{min-width:110px}.week-nav{font-size:13px}.card-top{height:110px}}@media print{header,.hero,nav,footer,#notice,.section-head button{display:none!important}.tab{display:none!important}#shopping{display:block!important}body{background:white;color:black}main{padding:0;max-width:none}.shopping-row{break-inside:avoid;padding:9px;border-color:#bbb}.shopping-row.checked{display:none}h2{font-size:24px}}
.auth-screen{max-width:520px;margin:50px auto;padding:20px}.auth-screen .panel{margin-top:30px}.auth-screen h1{font-size:36px}.auth-screen button{width:100%}.auth-pending>header,.auth-pending>main,.auth-pending>footer{display:none}.auth-pending #modal{display:none}body:not(.auth-pending)>.auth-screen{display:none}#authError{color:#a53b29;line-height:1.5}.invite-row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.invite-link{word-break:break-all;background:var(--cream);padding:12px}.account-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.password-control{display:flex;gap:8px;align-items:center}.password-control input{flex:1;min-width:0}.auth-screen .password-control button{width:auto;flex-shrink:0;font-size:13px;padding:12px}
