/* Gentle Table — mobile first. No external fonts, libraries or dependencies. */
:root{--bg:#f8f7f2;--surface:#fffefa;--ink:#273a32;--muted:#6b776e;--accent:#2f6a4c;--accent-soft:#e5eee5;--stroke:#e2e7df;--sand:#f2efe5;--shadow:0 14px 46px rgba(40,63,44,.045);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,.method-scroll:focus-visible{outline:3px solid #db9c56;outline-offset:3px}.site-shell{max-width:1030px;margin:auto;padding:0 17px 42px}.site-header{min-height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--stroke);gap:14px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand-mark{width:39px;height:39px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;border-radius:12px}.brand-text{display:flex;flex-direction:column;align-items:flex-start;gap:0}.brand-name{font-size:21px;font-weight:760;letter-spacing:-1px;line-height:1.17}.brand-byline{font-size:11px;font-weight:650;letter-spacing:.25px;color:var(--muted);line-height:1.5;margin-top:2px}.brand-period{color:#b9b06f}.header-eyebrow{font-size:10px;letter-spacing:2px;color:#738277;font-weight:770;text-align:right}.intro{position:relative;padding:37px 0 28px;overflow:hidden}.eyebrow{display:flex;align-items:center;gap:9px;letter-spacing:1.9px;color:var(--accent);font-size:10px;font-weight:800}.eyebrow-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#78ad82}.intro h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(37px,8.2vw,64px);letter-spacing:-2.5px;line-height:1.1;font-weight:500;margin:15px 0}.intro h1 em{color:var(--accent);font-weight:400}.intro-description{color:var(--muted);font-size:15.5px;line-height:1.68;max-width:540px;margin:0}.summary-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#64786a;font-size:12px;margin-top:20px;font-weight:700}.summary-dot{width:3px;height:3px;border-radius:50%;background:#9ba99c}.intro-art{display:none}.picker{margin:5px 0 24px;background:var(--surface);border:1px solid var(--stroke);border-radius:20px;padding:20px 15px 22px;box-shadow:var(--shadow)}.picker-heading{display:flex;align-items:center;gap:9px;min-height:28px;margin:1px 3px 15px}.step-number{font-size:11px;letter-spacing:1px;color:#6f927a;font-weight:800}.picker-heading h2{font-size:17px;letter-spacing:-.35px;margin:0;font-weight:770}.text-button{font-size:12px;font-weight:750;border:0;color:var(--accent);background:transparent;padding:8px 0;margin-left:auto}.day-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#c9d6c8 transparent;touch-action:pan-x;overscroll-behavior-x:contain;margin:0 -2px;padding:0 2px 9px}.day-buttons{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:8px;min-width:552px}.day-button{min-height:73px;padding:10px 6px 9px;background:#f7f8f4;border:1px solid #e9ece6;border-radius:12px;text-align:center;color:#516158;transition:background .16s,border-color .16s,color .16s;display:flex;flex-direction:column;justify-content:center;gap:2px}.day-button .day-short{font-weight:820;font-size:16px}.day-button .day-full{font-size:10px;letter-spacing:.3px;opacity:.87}.day-button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 5px 12px rgba(47,106,76,.16)}.day-button:hover:not([aria-pressed=true]){background:var(--accent-soft)}.meal-heading{margin-top:17px}.meal-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.meal-buttons button{border:1px solid var(--stroke);background:#fff;color:#53655a;font-size:13.5px;font-weight:720;border-radius:11px;min-height:51px;display:flex;justify-content:center;align-items:center;gap:7px;padding:7px 5px;transition:background .16s,border-color .16s}.meal-buttons button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:#bdd6c0}.meal-buttons button:hover:not([aria-pressed=true]){background:#f4f7f2}.meal-icon{font-size:18px;line-height:1}.recipe{max-width:860px;margin:0 auto}.recipe-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.recipe-category{font-size:11px;font-weight:850;letter-spacing:1.8px;color:var(--accent)}.print-button{display:flex;align-items:center;gap:8px;border:1px solid var(--stroke);border-radius:99px;background:var(--surface);font-size:13px;color:#63786b;font-weight:720;padding:8px 12px}.print-button:hover{border-color:#aac7b0}.recipe-title{font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,6.5vw,46px);font-weight:500;letter-spacing:-1.25px;line-height:1.16;margin:9px 0}.recipe-subtitle{font-size:14px;color:var(--muted);margin:0 0 22px}.recipe-note{margin:0 0 16px;background:#eff5eb;border-left:3px solid #92ad81;padding:11px 14px;font-size:13px;color:#425d48;border-radius:6px}.ingredients-panel,.method-panel{background:var(--surface);border:1px solid var(--stroke);border-radius:18px;margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden}.panel-header{padding:18px 18px 12px;display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.section-kicker{font-size:10px;font-weight:850;letter-spacing:1.65px;color:#729177}.panel-header h3{margin:2px 0 0;font-size:22px;font-weight:770;letter-spacing:-.6px}.panel-count{font-size:12px;font-weight:650;color:#89988b;margin-left:5px;vertical-align:middle;letter-spacing:0}.mini-hint,.scroll-label{color:#869588;font-size:11px;white-space:nowrap;margin-bottom:5px}.ingredient-list{list-style:none;padding:0 18px 18px;margin:0;display:grid;grid-template-columns:1fr;gap:6px}.ingredient-list li{min-width:0}.ingredient-list label{display:flex;align-items:flex-start;gap:11px;min-height:38px;padding:7px 2px;cursor:pointer;border-bottom:1px solid #f0f2ed;font-size:15.5px;line-height:1.5}.ingredient-list input{appearance:none;flex:0 0 auto;width:21px;height:21px;border-radius:6px;border:1.5px solid #bccabe;background:#fff;margin:1px 0 0;cursor:pointer;position:relative}.ingredient-list input:checked{background:var(--accent);border-color:var(--accent)}.ingredient-list input:checked::after{content:'✓';position:absolute;color:white;font-size:16px;line-height:18px;font-weight:800;left:3px;top:0}.ingredient-list input:checked+span{color:#93a096;text-decoration:line-through}.method-header{padding-bottom:15px;border-bottom:1px solid #edf0e9}.method-scroll{max-height:365px;overflow-y:auto;scrollbar-color:#bccbbb #f5f7f1;scrollbar-width:thin;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.method-list{list-style:none;margin:0;padding:11px 19px 20px;counter-reset:directions}.method-list li{display:grid;grid-template-columns:33px minmax(0,1fr);gap:13px;align-items:start;padding:15px 0;border-bottom:1px solid #eef0ea;font-size:15.5px;line-height:1.67;color:#3e5146}.method-list li:last-child{border-bottom:0}.method-list li::before{counter-increment:directions;content:counter(directions,decimal-leading-zero);width:31px;height:31px;display:grid;place-items:center;background:#eaf1e8;color:var(--accent);border-radius:50%;font-size:11px;font-weight:850;letter-spacing:.15px;margin-top:2px}.care-panel{display:flex;gap:14px;margin:26px auto 0;padding:19px;max-width:860px;border:1px solid #e6e4d6;border-radius:17px;background:#f2f0e7;color:#647064}.care-symbol{width:29px;height:29px;border-radius:50%;background:#e2e4d1;color:#5e725f;display:grid;place-items:center;font-family:Georgia,serif;font-style:italic;font-weight:bold;flex:0 0 auto}.care-panel h2{font-size:15px;color:#415d48;margin:1px 0 6px}.care-panel p{margin:0 0 9px;font-size:13px;line-height:1.65}.care-panel p:last-child{margin-bottom:0}.urgent-text strong{color:#79583c}.site-footer{margin:29px 2px 0;padding-top:18px;border-top:1px solid var(--stroke);font-size:11px;color:#8e9a90;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media(min-width:640px){.site-shell{padding:0 38px 48px}.site-header{min-height:88px}.intro{padding:51px 0 40px}.intro-art{display:grid;place-items:center;position:absolute;right:6px;top:19px;width:240px;height:215px;color:#83a388;opacity:.68;pointer-events:none}.intro-copy{position:relative;z-index:1;max-width:620px}.intro-description{font-size:16px}.picker{padding:24px 26px 27px}.day-buttons{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day-button{min-height:77px}.meal-buttons{gap:12px}.meal-buttons button{font-size:15px}.ingredients-panel,.method-panel{border-radius:19px}.panel-header{padding:23px 25px 15px}.ingredient-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 28px;padding:0 25px 24px}.method-header{padding-bottom:18px}.method-list{padding:11px 26px 23px}.method-scroll{max-height:390px}}
@media(min-width:900px){.site-shell{padding:0 53px 45px}.intro-art{right:40px}.intro h1{font-size:62px}.picker{margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{body{background:white;color:black}.site-shell{max-width:100%;padding:0 12px}.site-header{min-height:46px}.header-eyebrow,.intro,.picker,.print-button,.care-panel,.site-footer,.mini-hint,.scroll-label{display:none!important}.recipe{max-width:100%}.recipe-title{font-size:30px}.ingredients-panel,.method-panel{border:1px solid #aaa;box-shadow:none;break-inside:avoid}.ingredient-list{grid-template-columns:1fr 1fr}.ingredient-list input{border:1px solid #aaa}.method-scroll{max-height:none;overflow:visible}.method-list li{break-inside:avoid}.recipe-subtitle{margin-bottom:10px}}

/* Shopping list — mobile-first; the original recipes and method scrolling remain untouched. */
[hidden]{display:none!important}
.view-navigation{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#e9eee6;border-radius:16px;padding:6px;margin:0 0 21px;scroll-margin-top:12px}
.view-navigation button{min-height:48px;padding:10px 8px;border:1px solid transparent;border-radius:12px;background:transparent;color:#607468;font-size:14px;font-weight:760;display:flex;align-items:center;justify-content:center;gap:8px}
.view-navigation button[aria-pressed=true]{background:#fffefa;border-color:#dbe4d9;box-shadow:0 3px 12px rgba(40,63,44,.07);color:var(--accent)}
.shopping-view{max-width:860px;margin:0 auto}
.shopping-heading{margin:23px 0 23px}.shopping-heading h2{font:normal clamp(31px,6vw,45px)/1.13 Georgia,'Times New Roman',serif;letter-spacing:-1px;margin:7px 0 12px}.shopping-heading p{color:var(--muted);font-size:14px;max-width:670px;margin:0;line-height:1.65}
.shopping-days-panel,.shopping-choices,.shopping-empty,.shopping-category,.shopping-notes{background:var(--surface);border:1px solid var(--stroke);border-radius:17px;box-shadow:var(--shadow)}
.shopping-days-panel{padding:17px;margin-bottom:16px}.shopping-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:13px}.shopping-tools h3{margin:0;font-size:18px;letter-spacing:-.25px}.shopping-quick-actions{display:flex;gap:7px;margin-left:auto}.shopping-quick-actions button{background:#ecf4e9;border:1px solid #d8e6d6;color:var(--accent);font-size:12px;font-weight:750;border-radius:99px;padding:7px 11px}
.shopping-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.shopping-day{position:relative;display:flex;align-items:center;gap:10px;background:#f8faf5;border:1px solid #e4ebe0;border-radius:12px;padding:13px 12px;cursor:pointer;min-width:0;color:#4e6154;font-size:14px;font-weight:730}.shopping-day:has(input:checked){background:#e9f2e7;border-color:#a7c8ac;color:#24573e}.shopping-day input,.shopping-item-description+input{accent-color:var(--accent)}.shopping-day input{width:19px;height:19px;flex:0 0 19px;margin:0;cursor:pointer}.shopping-summary{font-size:12.5px;font-weight:730;color:#57745c;margin-top:13px;min-height:20px}
.shopping-choices{padding:17px;margin-bottom:16px}.shopping-choices h3{font-size:17px;margin:0 0 2px}.shopping-choices>p{font-size:12px;color:var(--muted);margin:0 0 13px}.shopping-option{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;color:#405448;font-size:13px;font-weight:740}.shopping-option:last-child{margin-bottom:0}.shopping-option select{width:100%;border:1px solid #d3e1d1;color:var(--ink);background:#fcfdf9;border-radius:10px;min-height:43px;padding:8px 10px;font:inherit;font-weight:550}
.shopping-empty{text-align:center;padding:42px 18px;color:var(--muted)}.shopping-empty-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#e8f0e5;color:var(--accent);font-size:25px;margin:0 auto 14px}.shopping-empty h3{margin:0 0 6px;color:var(--ink);font:normal 27px Georgia,serif}.shopping-empty p{font-size:13px;margin:0}
.shopping-results-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px;margin:29px 2px 18px}.shopping-results-heading h3{margin:3px 0 3px;font-size:23px;letter-spacing:-.5px}.shopping-results-heading p{margin:0;color:var(--muted);font-size:12px}.shopping-export{display:flex;gap:7px}.shopping-export button{border-radius:10px;min-height:39px}.shopping-feedback{color:var(--accent);font-size:13px;font-weight:700;min-height:0;margin:0 0 8px}
.shopping-categories{display:grid;gap:12px}.shopping-category{padding:0 15px 8px;break-inside:avoid}.shopping-category h3{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:16px;letter-spacing:-.2px;margin:0;padding:17px 3px 12px;border-bottom:1px solid var(--stroke)}.shop-count{font-size:11px;color:#79917e;background:#edf3e9;border-radius:99px;padding:3px 9px}.shopping-items{list-style:none;margin:0;padding:2px 0}.shopping-items li:not(:last-child){border-bottom:1px solid #f0f2ed}.shopping-items label{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:11px 3px;cursor:pointer}.shopping-items input{flex:0 0 auto;width:19px;height:19px;accent-color:var(--accent);margin:3px 0 0;cursor:pointer}.shopping-item-description{display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:space-between;align-items:baseline;flex:1;min-width:0}.shopping-item-name{font-size:14px;line-height:1.5;font-weight:630;max-width:100%}.shopping-item-quantity{font-size:13px;color:var(--accent);font-weight:760;white-space:nowrap}.shopping-items input:checked+.shopping-item-description .shopping-item-name{text-decoration:line-through;color:#a0ada1}.optional-label{font-size:10px;color:#8a947b;border:1px solid #dfe4d5;border-radius:99px;padding:1px 6px}
.shopping-notes{padding:18px 19px;margin-top:17px;background:#f4f5ec;color:#607263;font-size:12px}.shopping-notes>strong{font-size:13px;color:#40594a}.shopping-notes p{margin:6px 0 0;line-height:1.65}
@media(min-width:640px){.view-navigation{max-width:860px;margin:0 auto 25px}.shopping-days-panel{padding:22px}.shopping-days{grid-template-columns:repeat(4,minmax(0,1fr))}.shopping-choices{padding:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.shopping-choices h3,.shopping-choices>p{grid-column:1/-1}.shopping-category{padding:0 22px 9px}.shopping-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}.shopping-item-description{display:block}.shopping-item-quantity{display:block}.shopping-item-name{display:block}}
@media print{.view-navigation{display:none!important}.shopping-mode #mealView,.shopping-mode .intro,.shopping-mode .care-panel{display:none!important}.shopping-mode .shopping-view{display:block!important;max-width:100%}.shopping-mode .shopping-heading{margin:12px 0}.shopping-mode .shopping-days-panel,.shopping-mode .shopping-choices,.shopping-mode .shopping-empty,.shopping-mode .shopping-export,.shopping-mode .shopping-feedback,.shopping-mode .shopping-notes{display:none!important}.shopping-mode .shopping-results-heading{margin:6px 0}.shopping-mode .shopping-categories{display:block}.shopping-mode .shopping-category{box-shadow:none;margin:0 0 12px;padding:0 12px;border-radius:5px;break-inside:avoid}.shopping-mode .shopping-category h3{padding:9px 0}.shopping-mode .shopping-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.shopping-mode .shopping-items li{break-inside:avoid}.shopping-mode .shopping-item-name{font-size:12px}.shopping-mode .shopping-item-quantity{font-size:11px}}

/* Shopping list: protected bought/available items and long-press progress. */
.shopping-protected-note{margin:0 0 13px;padding:12px 14px;border:1px solid #cfdfd0;background:#eef5eb;border-radius:11px;color:#355841;font-size:13px;line-height:1.6}
.shopping-protected-note>span{font-weight:850;margin-right:5px}
.shopping-items li.shop-bought label{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.shopping-items li.shop-hold-active label{position:relative;background:#f1f7ef;border-radius:9px}
.shopping-items li.shop-hold-active label::after{content:"";height:4px;position:absolute;bottom:2px;left:3px;right:3px;border-radius:2px;background:#438b59;transform-origin:left;animation:shop-hold-fill 3s linear forwards}
.shopping-items li.shop-hold-ready label{background:#e8f4e4}
@keyframes shop-hold-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media print{.shopping-protected-note{display:none!important}.shopping-items li.shop-hold-active label::after{display:none!important}}
@media (prefers-reduced-motion:reduce){.shopping-items li.shop-hold-active label::after{animation:none;transform:scaleX(1)}}
