:root{--green:#14332d;--cream:#faf7f0;--mint:#e3eee5;--gold:#d9b979;scroll-behavior:smooth;scroll-padding-top:24px}
#printDocument{display:none}.exclusion-options{max-height:230px;overflow:auto;margin-top:12px;padding:4px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;border:1px solid #e1e7db;border-radius:12px;overscroll-behavior:contain}.exclusion-options label{border-radius:9px}.exclusion-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 16px;font-size:13px;color:#586c5a}
body{background:var(--cream);color:#263d34;font-size:16px;line-height:1.55;padding-bottom:env(safe-area-inset-bottom)}
header{padding:calc(24px + env(safe-area-inset-top)) 0 42px;background:#14332d}header .wrap{padding:0 24px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.3px;margin-bottom:26px}.brand img{border:1px solid #ffffff30;border-radius:12px}header h1{font:500 clamp(40px,7vw,66px)/1.04 Georgia,serif;letter-spacing:-2px;margin:9px 0 16px}header p{font-size:16px;max-width:410px;color:#d9e5da}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:10px;font-weight:750;color:#6a7a6d;margin:0 0 7px}.header-kicker{color:#d9b979;letter-spacing:2px}
main.wrap{padding-top:26px;padding-bottom:30px}.panel{padding:24px;border:1px solid #e5e7dc;border-radius:22px;box-shadow:none;margin-bottom:24px}h2{font:500 28px/1.2 Georgia,serif;letter-spacing:-.5px;margin-bottom:18px}h3{letter-spacing:-.3px}.fields{gap:14px}label{font-size:13px;color:#3c5044}select,input{border-color:#d4ddd2;border-radius:12px;min-height:48px;padding:12px;background:#fff}button{min-height:46px;transition:background .15s,color .15s;touch-action:manipulation}button.primary{background:#14332d;padding:15px 24px;box-shadow:0 4px 12px #14332d15}button.primary:hover{background:#285e47}button.secondary{background:#e4eee3}button.light{background:#f3f4ed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bf963e;outline-offset:3px}.chips{gap:7px}.chips label{min-height:44px;cursor:pointer;font-weight:500;padding:9px 12px;background:#fff;border-color:#d9e2d8}.chips label:has(input:checked){background:#e4eee3;border-color:#779982}.chips input{min-height:0;accent-color:#14332d;width:16px;height:16px}.hint{color:#68756b;line-height:1.6}.badge{display:inline-block;font:500 12px/1.4 system-ui,sans-serif;background:#eef1e7;color:#536951;padding:6px 10px;vertical-align:middle}.cards{gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr))}.card{border-color:#e2e6da;border-radius:18px;align-self:start}.photo{height:auto;aspect-ratio:16/9}.photo-button{width:100%;padding:0;border:0;border-radius:0;display:block;background:#e6e5dc;min-height:0}.photo img{object-fit:cover}.cardbody{padding:20px}.card h3{font:500 24px/1.18 Georgia,serif;margin-bottom:10px}.meta{font-size:12px;color:#6b786e}.tag{padding:5px 10px;background:#edf2e6;color:#4d6749;text-transform:capitalize}details{border-top:1px solid #e7ebdf;margin-top:15px;padding-top:12px}summary{cursor:pointer;font-size:14px;font-weight:650;min-height:40px;display:list-item;margin-left:17px}details ul,details ol{font-size:14px}.card .actions{gap:7px}.card .actions button{flex:1;font-size:13px;padding:10px}
.shopping{column-gap:32px}.shopping label{display:flex;align-items:center;gap:12px;min-height:48px;border-bottom:1px solid #edf0e6;padding:10px 0}.shopping input{min-height:0;width:21px;height:21px;flex:none;margin:0;accent-color:#14332d}.shopping label:has(input:checked) span{text-decoration:line-through;color:#8b9489}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.section-head h2{margin:0}.search-label{margin-bottom:22px}.search-label input{display:block;margin-top:7px}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.browse-card{padding:0;text-align:left;background:white;border:1px solid #e0e6d9;border-radius:16px;overflow:hidden;color:inherit;min-width:0;align-self:start}.browse-card:hover{border-color:#70937a;background:#fcfdf9}.browse-card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.browse-body{display:block;padding:14px}.browse-body strong{font:500 21px/1.2 Georgia,serif;display:block}.browse-body small{display:block;font-size:11px;color:#6a786d;margin-top:9px;text-transform:capitalize}
.bottom-nav{position:fixed;z-index:80;bottom:calc(15px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(460px,calc(100% - 32px));display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #dce3d5;border-radius:20px;background:#fffffff5;box-shadow:0 5px 30px #193d2420;backdrop-filter:blur(18px);padding:5px}.bottom-nav a{text-align:center;text-decoration:none;color:#36523e;font-size:12px;font-weight:650;min-height:48px;display:grid;place-items:center;border-radius:14px}.bottom-nav a:hover,.bottom-nav a:focus-visible{background:#e7efe2}footer{padding-bottom:110px}dialog{width:min(650px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:0;border-radius:24px;padding:0;box-shadow:0 24px 100px #0005;color:inherit}dialog::backdrop{background:#102c25bb;backdrop-filter:blur(4px)}.detail-photo{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.detail-body{padding:26px}.detail-body h2{font-size:32px}.detail-body h4{margin-bottom:7px}.detail-body ul,.detail-body ol{padding-left:22px}.detail-body li{margin-bottom:9px}.close-dialog{position:absolute;right:12px;top:12px;background:#fffffff2;border:1px solid #e5e5dc;border-radius:50%;width:46px;padding:0;color:#14332d;box-shadow:0 2px 8px #0001}.notice{position:fixed;bottom:calc(92px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 30px));padding:15px;border-radius:15px;z-index:100;background:#14332d;color:white;box-shadow:0 8px 30px #0003;font-size:14px}.notice button{margin-left:8px;background:#e6f1dc;color:#14332d}hr{border:0;border-top:1px solid #e3e7dc;margin:24px 0}#installPanel p{font-size:14px}#offlineStatus{font-weight:650}.sharebox input{min-width:0}#plan,#recipesPanel,#groceryPanel,#installPanel{scroll-margin-top:20px}
@media(max-width:700px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panel{padding:20px}.browse-body{padding:12px}.browse-body strong{font-size:18px}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.fields label:last-child{grid-column:1/-1}header .wrap{padding:0 22px}main.wrap{padding-left:12px;padding-right:12px}.shopping{columns:1}.cardbody{padding:18px}.cards{grid-template-columns:1fr}.actions button.primary{width:100%}.actions #reset{width:100%}h2{font-size:26px}.detail-body{padding:22px}#menuCount{display:block;width:fit-content;margin-top:10px}.section-head .badge{white-space:nowrap}}
@media(max-width:360px){.recipe-grid{grid-template-columns:1fr}.bottom-nav{width:calc(100% - 16px)}.panel{padding:16px}.fields{grid-template-columns:1fr}.fields label:last-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}#intro{animation:none;display:flex}}
@media print{body{padding:0;font-size:10px}.bottom-nav,#recipesPanel,#installPanel,dialog,.notice,.close-dialog{display:none!important}header{padding:8px}.brand,.header-kicker{display:none}header h1{font-size:24px;letter-spacing:0}header h1 br{display:none}header p{font-size:12px}.panel{padding:8px;margin-bottom:8px;border-radius:0}.cards{grid-template-columns:1fr 1fr;gap:8px}.cardbody{padding:8px}.card h3{font-size:16px}.photo{height:94px;aspect-ratio:auto}.photo-button{display:block!important}details{border:0;margin:0;padding:0}details>summary{display:none}details:not([open])>*:not(summary){display:block!important}details ul,details ol{font-size:10px}.shopping{columns:3}.shopping label{min-height:0;font-size:10px;padding:3px 0}.shopping input{width:10px;height:10px}.panel h2{font-size:20px}.eyebrow{font-size:8px}}
@media print{
 @page{size:auto;margin:14mm}
 html,body{height:auto!important;min-height:0!important;background:white!important;padding:0!important;margin:0!important}
 body>*{display:none!important}
 body>#printDocument{display:block!important;font:11pt/1.4 system-ui,sans-serif;color:#111}
 #printDocument *{box-shadow:none!important;text-shadow:none!important}
 #printDocument .print-heading{margin:0 0 18pt;padding:0;break-before:auto!important;page-break-before:auto!important}
 #printDocument h1{font:700 26pt Georgia,serif;letter-spacing:0;margin:0 0 5pt}
 #printDocument h2{font:700 19pt/1.2 Georgia,serif;margin:16pt 0 7pt;break-after:avoid;page-break-after:avoid}
 #printDocument h4{font-size:12pt;margin:12pt 0 5pt;break-after:avoid;page-break-after:avoid}
 #printDocument p{margin:4pt 0 10pt}
 #printDocument .print-recipe{display:block;border:0;margin:0 0 20pt;padding:0;break-before:auto;page-break-before:auto;break-inside:auto;page-break-inside:auto}
 #printDocument .print-recipe img{display:block;width:192pt;height:108pt;object-fit:cover;margin:8pt 0}
 #printDocument ul,#printDocument ol{padding-left:20pt;margin:5pt 0 12pt}
 #printDocument li{margin-bottom:5pt;break-inside:avoid;page-break-inside:avoid}
 #printDocument .print-groceries{break-before:auto;page-break-before:auto;display:block}
}

.brand{font:500 27px/1.1 Georgia,serif;letter-spacing:-.6px}.brand img{width:52px;height:52px;border:0;border-radius:13px}#intro .intro-mark img{display:block;margin:auto;border-radius:26px;box-shadow:0 12px 40px #0003}#intro .intro-sub{letter-spacing:2.4px}

.selected-exclusions{margin:14px 0 4px}.selected-exclusions h4{font-size:13px;margin:0 0 8px}.selected-exclusions ul{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0}.selected-exclusion{background:#e4eee3;color:#14332d;border:1px solid #b9cfb8;border-radius:18px;padding:8px 12px;min-height:44px;font-size:13px;font-weight:600}.selected-exclusion span{margin-left:7px;font-size:17px}

.swap-dialog{width:min(940px,calc(100% - 24px))}.swap-header{position:sticky;top:0;z-index:2;background:#faf7f0;padding:24px 24px 12px;border-bottom:1px solid #e0e6d9}.swap-header h2{padding-right:48px;margin:0 0 8px}.swap-header p{margin:7px 0}.swap-body{padding:24px}.swap-body section{margin-bottom:28px}.swap-body h3{font:500 25px/1.2 Georgia,serif;margin:0 0 8px}.swap-unavailable{opacity:.52;filter:grayscale(1);cursor:not-allowed}.browse-card:disabled:hover{background:white;border-color:#e0e6d9}.swap-status{display:block;font-size:12px;font-weight:700;color:#385b3b;margin-top:10px}.swap-shared{display:block;font-size:11px;font-weight:400;color:#68756b;margin-top:5px}.swap-body>#cancelSwap{width:100%}@media(max-width:600px){.swap-header{padding:20px 18px 10px}.swap-body{padding:18px}.swap-dialog{max-height:94dvh}}

#swapRecommendationsSection{padding:20px;background:#edf3e8;border:1px solid #c9d9c1;border-radius:18px}.swap-recommendations-end{margin-top:20px;padding-top:16px;border-top:2px solid #bccfb2;text-align:center;font-size:12px;font-weight:700;letter-spacing:.6px;color:#486440}.swap-other-recipes{padding-top:10px}.swap-other-recipes>h3{font-size:28px}@media(max-width:600px){#swapRecommendationsSection{padding:14px}}
