/* Ormaven Fun Lab 01 — playful without breaking the monochrome house style. */
.meal-page{max-width:1160px;margin:0 auto;padding-bottom:5rem}
.meal-head{padding:1.7rem 0 1.3rem;border-bottom:1px solid #d9d9d9}
.meal-head .eyebrow{font-size:.72rem;letter-spacing:.16em}
.meal-head h1{font-size:clamp(2rem,4.8vw,3.8rem);line-height:1.04;letter-spacing:-.055em;margin:.45rem 0 .7rem;color:#171717}
.meal-head>p:not(.eyebrow){max-width:650px;color:#555;line-height:1.5;margin:0;font-size:1rem}
.meal-kickers{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.1rem}
.meal-kickers span{border:1px solid #ccc;border-radius:99px;padding:.3rem .65rem;font-size:.73rem;font-weight:600;color:#505050}
.meal-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start;gap:1.6rem;padding-top:1.5rem}
.meal-controls,.meal-result,.meal-empty,.meal-favorites{border:1px solid #ddd;background:#fff;border-radius:15px}
.meal-controls{padding:1.3rem;display:grid;gap:1.15rem}
.meal-controls fieldset{padding:0;margin:0;border:0;min-width:0}
.meal-controls legend{font-size:.88rem;font-weight:760;margin-bottom:.65rem;color:#222}
.meal-index{display:inline-block;min-width:1.8rem;font:700 .75rem ui-monospace,monospace;color:#8c8c8c}
.meal-pill-row,.meal-pill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
.meal-pill{display:block;min-width:0;cursor:pointer;position:relative}
.meal-pill input{position:absolute;opacity:0;width:1px;height:1px}
.meal-pill span{min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #cfcfcf;border-radius:9px;padding:.5rem .45rem;line-height:1.18;font-size:.81rem;font-weight:600;background:#f8f8f8;color:#444;transition:background .12s,color .12s,border-color .12s}
.meal-pill input:checked+span{background:#222;color:#fff;border-color:#222}
.meal-pill input:focus-visible+span{outline:3px solid #777;outline-offset:2px}
.meal-pill:hover span{border-color:#444}
.meal-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.meal-field{display:grid;gap:.35rem;font-size:.78rem;font-weight:700;color:#333;min-width:0}
.meal-field select,.meal-field textarea{width:100%;min-width:0;font-family:inherit;font-size:.89rem;line-height:1.4;color:#171717;border:1px solid #c9c9c9;border-radius:8px;background:#fff;padding:.65rem;min-height:44px}
.meal-field textarea{resize:vertical;min-height:66px;font-family:inherit}
.meal-field select:focus-visible,.meal-field textarea:focus-visible{outline:2px solid #555;outline-offset:2px}
.meal-hint{font-size:.75rem;line-height:1.45;color:#707070;margin:0}
.meal-buttons{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:.5rem}
.meal-buttons .button,.meal-result-actions .button{white-space:normal;min-height:47px;padding:.65rem;font-size:.83rem;text-align:center;justify-content:center}
.meal-buttons button:disabled{opacity:.45;cursor:not-allowed}
.meal-result-wrap{display:grid;gap:1rem;min-width:0}
.meal-empty{padding:3.25rem 1.5rem;min-height:280px;text-align:center;display:grid;align-content:center;justify-items:center;gap:.7rem}
.meal-empty[hidden],.meal-result[hidden],.meal-warning[hidden],.meal-favorites [hidden]{display:none!important}
.meal-empty>span{display:grid;place-items:center;width:68px;height:68px;border:1px solid #aaa;border-radius:50%;font-size:2rem}
.meal-empty h2{font-size:1.35rem;letter-spacing:-.025em;margin:.4rem 0 0}
.meal-empty p{color:#666;max-width:290px;line-height:1.5;margin:0}
.meal-result{padding:1.35rem;scroll-margin-top:6rem}
.meal-result-top,.meal-fav-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.meal-kicker{font:700 .7rem ui-monospace,monospace;letter-spacing:.08em;color:#777;margin:0}
.meal-fave{min-height:36px;border:1px solid #bbb;border-radius:99px;background:white;color:#252525;padding:.35rem .75rem;cursor:pointer;font-weight:700;font-size:.76rem}
.meal-fave[aria-pressed=true]{background:#222;color:#fff}
.meal-result h2{font-size:clamp(1.55rem,2.9vw,2.4rem);line-height:1.09;letter-spacing:-.04em;margin:1rem 0 .7rem;overflow-wrap:anywhere}
.meal-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0 1.2rem}
.meal-meta span{display:inline-flex;align-items:center;border:1px solid #bbb;background:#f7f7f7;border-radius:6px;font-size:.73rem;font-weight:650;padding:.3rem .6rem}
.meal-warning{font-size:.78rem;border-left:3px solid #5c5c5c;padding:.5rem .7rem;background:#eee;color:#333;line-height:1.5;margin:0 0 1rem}
.meal-recipe{display:grid;gap:1.25rem}
.meal-recipe section{border-top:1px solid #e4e4e4;padding-top:.7rem}
.meal-recipe h3{font-size:.92rem;margin:.25rem 0 .75rem;color:#272727}
.meal-recipe ul,.meal-recipe ol{display:grid;gap:.55rem;padding-left:1.25rem;margin:0}
.meal-recipe li{font-size:.86rem;line-height:1.48;color:#444;padding-left:.15rem}
.meal-recipe li::marker{color:#333;font-weight:700}
.meal-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-top:1.3rem}
.meal-result>.meal-hint{margin-top:1rem}
.meal-favorites{padding:1rem 1.2rem}
.meal-fav-head h3{font-size:.87rem;letter-spacing:-.01em;margin:0}
.meal-fav-head h3 span{color:#777;font:700 .77rem ui-monospace,monospace}
.meal-link{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:.76rem;color:#777;cursor:pointer}
.meal-fave-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:.85rem 0}
.meal-saved{max-width:100%;border:1px solid #d5d5d5;border-radius:8px;background:#fafafa;color:#222;font-size:.79rem;padding:.45rem .6rem;cursor:pointer;text-align:left}
.meal-saved:hover{background:#ececec}
.meal-copy-fallback{display:block;width:100%;min-height:120px;margin:.45rem 0;border:1px solid #777;border-radius:6px;padding:.5rem;font-size:.76rem;resize:vertical}
.meal-fineprint{font-size:.77rem;color:#777;margin:1.5rem 0;line-height:1.5;max-width:820px}
@media(max-width:850px){.meal-layout{grid-template-columns:minmax(0,1fr)}.meal-result-wrap{order:-1}.meal-empty{min-height:170px;padding:1.4rem}.meal-controls{padding:1rem}.meal-result{padding:1.1rem}}
@media(max-width:520px){.meal-page{padding-left:.1rem;padding-right:.1rem}.meal-head{padding-top:.85rem}.meal-head h1{font-size:2rem}.meal-pair,.meal-buttons{grid-template-columns:minmax(0,1fr)}.meal-pill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meal-result-actions{grid-template-columns:minmax(0,1fr)}.meal-buttons .button{width:100%}}
@media(prefers-reduced-motion:reduce){.meal-pill span{transition:none}}
