@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#19372f;background:#f8f9f5;font-size:16px;line-height:1.55;--green:#153f33;--muted:#62736a;--border:#d9e0d8}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1120px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}a{color:var(--green);text-underline-offset:4px}nav{display:flex;gap:20px;align-items:center}.brand{font-weight:700;font-size:22px;text-decoration:none;display:flex;gap:10px;align-items:center}.brand span{background:var(--green);color:#d9ee8d;border-radius:13px;padding:0 10px;font:bold 36px Georgia}main{padding-top:52px}.eyebrow{font-weight:700;font-size:12px;letter-spacing:.17em;margin:0 0 12px}h1{font-size:clamp(42px,6vw,70px);letter-spacing:-.055em;line-height:1.08;margin:0 0 24px}h1 em{font-style:normal;color:#608648}h2{font-size:clamp(25px,3vw,34px);line-height:1.2;letter-spacing:-.035em;margin:10px 0 20px}.intro{max-width:650px;color:var(--muted);font-size:18px}.panel{background:white;padding:36px;border:1px solid var(--border);border-radius:24px;margin:28px 0}.progress{display:flex;gap:12px;list-style:none;padding:0;margin:0 0 38px;counter-reset:steps}.progress li{flex:1;padding:10px 0;color:var(--muted);border-top:3px solid var(--border);font-size:14px}.progress li.active{color:var(--green);border-color:#719547;font-weight:bold}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin:24px 0}label{display:block;font-weight:600}input,select,button{font:inherit}input[type=number],select{display:block;width:100%;margin-top:8px;border:1px solid #acbdb1;border-radius:10px;padding:13px;background:#fff;color:#19372f;min-height:50px}fieldset{border:0;padding:0;margin:26px 0}legend{font-weight:700;margin-bottom:12px}.choices{display:flex;gap:12px;flex-wrap:wrap}.choices label{border:1px solid var(--border);border-radius:10px;padding:12px 18px;font-weight:500}.choices label:has(input:checked){background:#edf4df;border-color:#6f904b}input[type=checkbox],input[type=radio]{accent-color:var(--green);width:18px;height:18px;vertical-align:middle}.help{font-size:13px;color:var(--muted)}.notice{background:#ecf2e3;border:1px solid #d3dfc5;border-radius:12px;padding:16px;font-size:14px}.error{color:#9b2626;font-weight:600}.error:empty{display:none}.actions{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}button,.primary{cursor:pointer;border-radius:10px;padding:13px 22px;min-height:48px;font-weight:600;text-decoration:none;display:inline-block}.primary{background:var(--green);color:white;border:1px solid var(--green)}.secondary{background:white;color:var(--green);border:1px solid #b3c2b6}button:disabled{opacity:.55;cursor:wait}:focus-visible{outline:3px solid #83a044;outline-offset:4px}[hidden]{display:none!important}details{margin:18px 0;border:1px solid var(--border);border-radius:12px;padding:16px}summary{cursor:pointer;font-weight:600}.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding-top:20px;max-height:280px;overflow:auto}.checks label{font-weight:400;font-size:14px}.checkline{display:flex;align-items:flex-start;gap:10px;font-weight:400;margin:20px 0}.checkline input{flex-shrink:0;margin-top:5px}.summary{display:grid;grid-template-columns:1fr 2fr;gap:12px;background:#f5f7f0;padding:20px;border-radius:12px}.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:600}.result-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.stat{background:white;border:1px solid var(--border);border-radius:14px;padding:20px}.stat strong{display:block;font-size:26px}.stat span{font-size:12px;color:var(--muted)}.tabs{gap:0;border-bottom:1px solid var(--border);margin:28px 0}.tabs button{border:0;background:none;color:var(--muted);border-radius:0}.tabs .active{border-bottom:3px solid var(--green);color:var(--green)}.day{padding:20px 0;border-bottom:1px solid var(--border)}.day-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.day-head h3{font-size:22px;margin:0}.day-head p{font-size:13px;color:var(--muted)}.meals{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.meal{background:white;border:1px solid var(--border);border-radius:14px;padding:18px}.meal small{font-weight:700;color:#617448}.meal h4{font-size:18px;line-height:1.3;margin:12px 0}.meal details{border:0;padding:0;font-size:13px}.meal ul,.meal ol{padding-left:18px}.meal p{font-size:13px}.shop-item{padding:14px;background:white;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:center;font-weight:400}.shop-item b{margin-left:auto;font-size:14px}.shop-item:has(input:checked){opacity:.5;text-decoration:line-through}.data-controls{margin-top:44px;padding-top:24px;border-top:1px solid var(--border)}.text-button{padding:4px 0;background:none;border:0;color:#795240;text-decoration:underline;font-size:14px}footer{display:flex;gap:20px;border-top:1px solid var(--border);margin-top:48px;font-size:13px;color:var(--muted)}footer span{margin-right:auto}@media(max-width:600px){header,main,footer{padding:18px}header nav{font-size:12px;gap:10px}.brand{font-size:16px}.brand span{font-size:28px}main{padding-top:34px}.panel{padding:20px}.progress{gap:8px;margin-bottom:25px}.progress li{font-size:11px}.fields{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.result-top{align-items:flex-start;flex-direction:column}.day-head{display:block}.meals{grid-template-columns:1fr}.actions{gap:8px}.actions button{padding:12px}#stepStatus{font-size:12px}.tabs button{font-size:13px;padding:10px}.summary{grid-template-columns:1fr}.summary dd{margin-bottom:8px}footer{flex-wrap:wrap}}@media print{header,form,.tabs,#edit,#regenerate,.data-controls,footer,#reviewBanner{display:none!important}body{background:white}.meal,.day{break-inside:avoid}.meal details{display:block}.meal details>*{display:block!important}main{max-width:none;padding:0}h1,.intro{display:none}.notice{font-size:10px}.stats{grid-template-columns:repeat(4,1fr)}}
