/* Recipe Book follows the site's locally hosted Bitter / Public Sans brand. */
/* Weekly choices inherit the same real typefaces and stay within the private Book. */
.mp-recipes .mp-book-planning { padding:30px; border:1px solid #ccd6c3; border-top:4px solid var(--book-forest); border-radius:4px 14px 14px 4px; background:#f4f6ee; scroll-margin-top:100px; min-width:0; }
.mp-book-planning-head { display:flex; align-items:start; justify-content:space-between; gap:24px; }
.mp-book-planning-head h2 { font-size:clamp(1.7rem,3vw,2.2rem); margin:8px 0 12px; }
.mp-book-planning-head .mp-book-planning-week { margin:0; font-weight:600; }
.mp-book-planning-head .mp-book-planning-deadline { max-width:24ch; margin:0; padding:10px 14px; border-radius:8px; background:#e5ebdf; font-size:.85rem; }
.mp-book-planning-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; border:0; padding:0; margin:24px 0; min-width:0; }
.mp-book-planning-legend { margin-bottom:16px; font-weight:700; }
.mp-book-planning-slot { min-width:0; }
.mp-book-planning-source-note { color:var(--book-muted); font-size:.88rem; }
.mp-book-planning-slot label span { float:right; font-size:.8rem; font-weight:400; color:var(--book-muted); }
.mp-book-planning-slot select { max-width:100%; }
.mp-book-planning-slot select[aria-invalid=true] { border-color:#9b402c; }
.mp-book-planning-slot-warning,.mp-book-planning-error { color:#843726; font-size:.9rem; }
.mp-book-planning-review { display:flex; gap:12px; align-items:start; margin:22px 0; font-weight:400; line-height:1.6; }
.mp-book-planning-review input { margin-top:3px; }
.mp-book-planning-status p,.mp-book-planning-empty { border-left:3px solid #728664; padding:10px 14px; background:#fffdf8; }
.mp-book-planning-notes { margin-top:20px; border-top:1px solid #ccd6c3; font-size:.9rem; line-height:1.6; }
.mp-book-planning-notes ul { padding-left:20px; margin:0 0 16px; }
.mp-book-planning-notes li+li { margin-top:10px; }
.mp-book-planning-unavailable li span { display:block; color:var(--book-muted); }
.mp-book-planning-unavailable a { color:var(--book-forest); font-weight:600; }
@media(max-width:700px) { .mp-recipes .mp-book-planning { padding:22px 18px; } .mp-book-planning-head { display:block; } .mp-book-planning-head .mp-book-planning-deadline { max-width:none; margin:18px 0 0; } .mp-book-planning-slots { grid-template-columns:1fr; gap:18px; } .mp-book-planning-review { font-size:.94rem; } .mp-book-planning form>.ksl-mp-button { width:100%; } }
.mp-recipes { --book-forest:var(--mp-forest,#244b3b); --book-cream:var(--mp-cream,#f7f3ea); --book-ink:var(--mp-ink,#263a30); --book-muted:var(--mp-muted,#58695f); display:grid; gap:26px; color:var(--book-ink); min-width:0; font-family:"Public Sans",sans-serif; }
.mp-recipes h1,.mp-recipes h2,.mp-recipes h3 { font-family:"Bitter",Georgia,serif; color:var(--book-forest); letter-spacing:-.025em; line-height:1.2; }
.mp-recipes h1 { font-size:clamp(2.3rem,5vw,3.6rem); margin:10px 0 18px; }
.mp-recipes p { line-height:1.65; }
.mp-recipes li,.mp-recipes p,.mp-recipes a { overflow-wrap:anywhere; }
.mp-recipes .ksl-mp-eyebrow { color:var(--book-forest); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
.mp-recipe-book-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:30px; padding:34px 0 24px; border-bottom:1px solid #d6ddcf; }
.mp-recipe-book-head p { max-width:58ch; margin:10px 0; }
.mp-recipe-book-actions { display:grid; gap:10px; min-width:190px; padding-top:20px; }
.mp-recipe-book-actions .ksl-mp-button { width:100%; box-sizing:border-box; justify-content:center; }
.mp-recipes .ksl-mp-button { background:var(--book-forest); border:1px solid var(--book-forest); color:#fff; border-radius:8px; padding:12px 18px; font-family:inherit; font-weight:700; line-height:1.35; min-height:44px; }
.mp-recipes .ksl-mp-button.ghost { color:var(--book-forest); background:transparent; }
.mp-recipes .ksl-mp-button:hover { filter:brightness(.93); }
.mp-recipes :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #9d5c2d; outline-offset:4px; }
.mp-recipes .mp-recipe-capacity { display:inline-block; background:#e5ebdf; border-radius:50px; padding:6px 12px; font-size:.84rem; font-weight:700; }
.mp-recipes .mp-recipe-retention { font-size:.84rem; color:var(--book-muted); }
.mp-recipe-search { display:flex; align-items:end; flex-wrap:wrap; gap:14px; padding:18px; background:var(--book-cream); border:1px solid #e4dfd3; border-radius:10px; }
.mp-recipe-search > div:first-child { flex:1 1 260px; }
.mp-recipe-search > div:nth-child(2) { flex:0 1 200px; }
.mp-recipes label:not(:has(input[type="checkbox"])) { display:block; font-size:.94rem; font-weight:700; margin-bottom:8px; }
.mp-recipes input:not([type="checkbox"]):not([type="hidden"]),.mp-recipes textarea,.mp-recipes select { font:inherit; width:100%; box-sizing:border-box; padding:12px; background:#fff; color:var(--book-ink); border:1px solid #aab7aa; border-radius:6px; min-height:44px; }
.mp-recipes input[type="file"] { max-width:100%; }
.mp-recipes textarea { resize:vertical; line-height:1.55; }
.mp-recipes input[type="checkbox"] { accent-color:var(--book-forest); width:20px; height:20px; flex:none; vertical-align:middle; }
.mp-recipes .ksl-mp-field { margin-bottom:20px; }
.mp-recipe-result-count { font-size:.88rem; margin:0; color:var(--book-muted); }
.mp-recipe-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; list-style:none; padding:0; margin:0; }
.mp-recipe-list-item { position:relative; display:flex; flex-direction:column; align-items:start; min-width:0; padding:26px 24px; background:#fffdf8; border:1px solid #dedfd4; border-top:4px solid var(--book-forest); border-radius:4px 12px 12px 4px; box-shadow:3px 4px 0 #eeeee6; transition:box-shadow .18s ease,border-color .18s ease; }
.mp-recipe-list-item:focus-within,.mp-recipe-list-item:hover { border-color:#91a18c; box-shadow:3px 7px 0 #e3e7dc; }
.mp-recipe-list-item h2 { font-size:1.38rem; margin:20px 0 14px; }
.mp-recipe-list-item h2 a { color:inherit; text-decoration:none; }
.mp-recipe-list-item h2 a::after { content:""; position:absolute; inset:0; }
.mp-recipe-list-item p { font-size:.93rem; margin:16px 0; }
.mp-recipe-badge { display:inline-block; background:#e9eddf; color:#36533e; padding:5px 9px; font-size:.72rem; border-radius:4px; letter-spacing:.035em; font-weight:700; }
.mp-recipe-card-meta { font-size:.8rem; color:var(--book-muted); }
.mp-recipes small { font-size:.8rem; color:var(--book-muted); }
.mp-recipe-open { margin-top:auto; padding-top:24px; font-size:.82rem; color:var(--book-forest); font-weight:700; }
.mp-recipe-empty { text-align:center; padding:46px 24px; background:var(--book-cream); border:1px dashed #c5ceb9; border-radius:14px; }
.mp-recipe-empty h2 { font-size:clamp(1.5rem,4vw,2rem); margin:16px 0; }
.mp-recipe-empty p { max-width:52ch; margin:16px auto 26px; }
.mp-recipe-book-mark { display:block; width:58px; margin:auto; font:700 1.25rem "Bitter",serif; color:var(--book-forest); border:1px solid #abb99e; border-left:5px solid var(--book-forest); border-radius:3px 7px 7px 3px; padding:18px 0; }
.mp-recipe-capture { padding:32px; border-radius:12px; background:var(--book-cream); border:1px solid #e4dfd3; scroll-margin-top:100px; }
.mp-recipe-capture h2 { font-size:1.7rem; margin:12px 0; }
.mp-recipe-add { border-top:1px solid #d5dbcb; margin-top:18px; }
.mp-recipes summary { cursor:pointer; font-weight:700; padding:18px 0; color:var(--book-forest); min-height:24px; }
.mp-recipe-add > form { display:grid; gap:14px; }
.mp-recipe-add .ksl-mp-panel { border:0; padding:18px 0; background:transparent; box-shadow:none; }
.mp-recipe-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.mp-recipes .mp-recipe-detail { border:1px solid #dedfd4; border-radius:14px; background:#fffdf8; padding:38px; box-shadow:none; }
.mp-recipe-reading-head { border-bottom:1px solid #dde2d4; padding-bottom:24px; }
.mp-recipe-reading-head h2 { font-size:clamp(1.9rem,4vw,2.7rem); margin:16px 0; }
.mp-recipe-facts { display:flex; flex-wrap:wrap; gap:10px 20px; font-size:.88rem; color:var(--book-muted); }
.mp-recipe-cook-help { color:var(--book-muted); font-size:.86rem; }
.mp-recipe-cook-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:40px; margin:22px 0 32px; }
.mp-recipe-cook-grid h3 { font-size:1.4rem; margin:12px 0 22px; }
.mp-recipe-checklist { list-style:none; margin:0; padding:0; }
.mp-recipe-checklist li { border-bottom:1px solid #e8e9df; padding:12px 0; }
.mp-recipe-checklist label,.mp-recipe-steps label { display:flex; gap:12px; line-height:1.7; font-weight:400; }
.mp-recipe-checklist input,.mp-recipe-steps input { margin-top:4px; }
.mp-recipe-checklist small { display:block; margin-top:6px; }
.mp-recipe-checklist input:checked + span,.mp-recipe-steps input:checked + span { text-decoration:line-through; color:var(--book-muted); }
.mp-recipe-steps { list-style:none; padding:0; margin:0; }
.mp-recipe-steps li { padding:10px 0 18px; }
.mp-recipe-steps label { display:grid; grid-template-columns:3ch 20px minmax(0,1fr); align-items:start; }
.mp-recipe-step-number { color:var(--book-forest); font-family:"Bitter",serif; font-weight:700; text-align:right; }
.mp-recipe-steps input { margin:.3em 0 0; }
.mp-recipe-steps input + span { min-width:0; }
.mp-recipe-note { background:#eef1e7; border-left:3px solid #728664; padding:16px 20px; border-radius:0 8px 8px 0; line-height:1.65; font-size:.9rem; }
.mp-recipe-note ul { margin-bottom:0; }
.mp-recipe-source { margin-top:24px; border-top:1px solid #dde2d4; }
.mp-recipe-source pre { white-space:pre-wrap; overflow-wrap:anywhere; max-height:420px; overflow:auto; font:inherit; line-height:1.6; padding:16px; background:var(--book-cream); border:1px solid #dedfd4; border-radius:8px; }
.mp-recipe-review-actions { padding:24px; background:var(--book-cream); border-radius:10px; }
.mp-recipe-review-actions form + form { margin-top:18px; }
.mp-recipe-delete { border-top:1px solid #d6ddcf; padding-top:8px; }
.mp-recipe-back { font-weight:700; color:var(--book-forest); }
@media(max-width:1000px) { .mp-recipe-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .mp-recipe-book-head { grid-template-columns:1fr; gap:8px; padding-top:12px; } .mp-recipe-book-actions { display:flex; flex-wrap:wrap; min-width:0; padding:0; } .mp-recipe-book-actions .ksl-mp-button { width:auto; } .mp-recipe-list { grid-template-columns:1fr; } .mp-recipe-cook-grid { grid-template-columns:1fr; gap:12px; } .mp-recipes .mp-recipe-detail,.mp-recipe-capture { padding:22px; } .mp-recipe-numbers { grid-template-columns:1fr; gap:0; } .mp-recipes .ksl-mp-panel { padding:22px; } .mp-recipe-search > div:nth-child(2) { flex:1 1 200px; } }
@media(prefers-reduced-motion:reduce) { .mp-recipe-list-item { transition:none; } }

/* The same accessible heart appears in private weekly cards and recipe details. */
.mp-recipe-favorite{padding:1rem 0;font-family:'Public Sans',sans-serif}
.daily-meal-card>.mp-recipe-favorite{padding:0 1.5rem 1.25rem}
.mp-recipe-favorite form{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}
.mp-recipe-heart{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:44px;padding:.65rem 1rem;border:1px solid #355347;border-radius:999px;background:#fffaf0;color:#244b37;font:600 .9rem/1.3 'Public Sans',sans-serif;cursor:pointer}
.mp-recipe-heart svg{flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.mp-recipe-heart[aria-pressed=true]{background:#244b37;color:#fffaf0}
.mp-recipe-heart[aria-pressed=true] svg{fill:currentColor}
.mp-recipe-heart:hover{box-shadow:0 2px 8px #244b3720}
.mp-recipe-heart:focus-visible,.mp-recipe-privacy summary:focus-visible{outline:3px solid #b87832;outline-offset:4px}
.mp-recipe-favorite small{color:#526253;font-size:.85rem}
.mp-recipe-locked{max-width:760px;margin:auto}
.mp-recipe-privacy{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #d6ded1}
.mp-recipe-privacy>form{margin:1rem 0}
@media(max-width:420px){.daily-meal-card>.mp-recipe-favorite{padding:0 1rem 1rem}.mp-recipe-heart{max-width:100%;text-align:left}}

body .meal-plan-print-button.meal-plan-print-button-inline{position:static;margin:0;box-shadow:none}

/* Upload is an ordinary labeled form: readable without drag/drop or scripting. */
.mp-recipe-import{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.3rem,4vw,2.5rem);border:1px solid #d4dfd2;border-radius:18px;background:linear-gradient(120deg,#f1f5ec,#fffcf5);min-width:0}
.mp-recipe-import h2{font-size:clamp(1.65rem,3vw,2.25rem);max-width:17ch;margin:.6rem 0 1rem}
.mp-recipe-import p{line-height:1.6}
.mp-recipe-import-mark{display:inline-flex;padding:.6rem;background:#e3ecde;border-radius:12px;color:var(--book-forest);margin-bottom:1rem}
.mp-recipe-import-format{font-size:.85rem;color:var(--book-muted);max-width:34ch}
.mp-recipe-import-form,.mp-recipe-import-form form{min-width:0;margin:0}
.mp-recipe-file{padding:1.1rem;border:1px dashed #81967c;border-radius:10px;background:#fffdf8}
.mp-recipe-file>label{display:block;font-weight:600;margin-bottom:.7rem}
.mp-recipe-file input{display:block;width:100%;min-height:44px;font:inherit;font-size:.9rem;color:var(--book-ink)}
.mp-recipe-file input::file-selector-button{padding:.65rem .8rem;margin-right:.7rem;border:1px solid #b9c7b3;border-radius:6px;background:#edf2e7;color:#244b3b;font:600 .85rem 'Public Sans',sans-serif;cursor:pointer}
.mp-recipe-file p,.mp-recipe-import-retention,.mp-recipe-import-next{font-size:.85rem;color:var(--book-muted);margin:.6rem 0 0}
.mp-recipe-import-consent{display:grid;gap:.8rem;margin:1.2rem 0}
.mp-recipe-import-consent label{display:flex;align-items:flex-start;gap:.65rem;line-height:1.5;font-size:.92rem;cursor:pointer}
.mp-recipe-import-consent input{flex:none;width:20px;height:20px;margin:.15rem 0;accent-color:var(--book-forest)}
.mp-recipe-import-retention{margin:1rem 0 1.25rem}
.mp-recipe-progress[hidden]{display:none}
.mp-recipe-progress{margin:1rem 0;padding:1rem;border:1px solid #b9c7b3;border-radius:10px;background:#edf2e7;color:var(--book-forest)}
.mp-recipe-progress strong{font:600 .95rem/1.5 'Public Sans',sans-serif}
.mp-recipe-progress p{margin:.6rem 0 0;font-size:.85rem}
.mp-recipe-progress-bar{height:8px;margin-top:.8rem;border-radius:999px;background:#d4dfd2;overflow:hidden}
.mp-recipe-progress-bar span{display:block;width:35%;height:100%;border-radius:inherit;background:var(--book-forest);animation:mp-recipe-processing 1.8s ease-in-out infinite alternate}
.mp-recipe-import-form button:disabled{cursor:wait;opacity:.8}
@keyframes mp-recipe-processing{from{transform:translateX(0)}to{transform:translateX(185%)}}
@media(prefers-reduced-motion:reduce){.mp-recipe-progress-bar span{animation:none;width:100%;opacity:.55}}
.mp-recipe-import a{color:var(--book-forest);text-decoration:underline;text-underline-offset:3px}
.mp-recipe-file input:focus-visible,.mp-recipe-import-consent input:focus-visible{outline:3px solid #b87832;outline-offset:4px}
@media(max-width:760px){.mp-recipe-import{grid-template-columns:1fr;gap:1.25rem}.mp-recipe-import h2{max-width:24ch}.mp-recipe-import-intro>p{max-width:55ch}}
@media(max-width:420px){.mp-recipe-import{padding:1.1rem;border-radius:12px}.mp-recipe-file{padding:.8rem}.mp-recipe-import-form .ksl-mp-button{width:100%;text-align:center}.mp-recipe-import-next{font-size:.78rem}}
