.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}.recipe-card{padding:0;overflow:hidden}.recipe-cover,.recipe-hero{display:block;background:#1b2230;overflow:hidden;position:relative}.recipe-cover{aspect-ratio:3/2}.recipe-hero{aspect-ratio:3/2;max-height:520px;border-radius:var(--radius)}.recipe-cover img,.recipe-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.recipe-body{padding:15px}.macro-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.macro{padding:9px 4px;text-align:center;border-radius:11px;background:#0f141d}.macro strong{display:block;font-size:17px}.ingredient-row{display:grid;grid-template-columns:minmax(110px,1fr) 85px minmax(105px,auto);gap:8px;align-items:end}.step{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:14px;background:#111620}.step.current{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.step.done{opacity:.55}.step-number{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#293244;font-weight:800}.sticky-actions{position:sticky;bottom:0;z-index:4;padding:10px;background:#111620ee;border:1px solid var(--line);border-radius:17px;display:flex;gap:8px;flex-wrap:wrap}
/* Même logique que .session-nav : ne réserver la place de la bottom-nav fixe que sur mobile (<760px).
   À l'intérieur d'une modale (dialog), il n'y a jamais de bottom-nav externe à éviter — la modale flotte
   au-dessus de tout et défile dans son propre cadre — donc bottom doit y rester 0 quelle que soit la largeur. */
@media(max-width:759px){.sticky-actions{bottom:77px}}
dialog .sticky-actions{bottom:0}
.btn.favorite{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:800}.btn.favorite:hover{filter:brightness(1.05)}.filterbar{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px}.filterbar button{white-space:nowrap}@media(max-width:520px){.ingredient-row{grid-template-columns:1fr 78px}.ingredient-row select{grid-column:1/-1}.recipe-hero{aspect-ratio:4/3}.sticky-actions .btn{flex:1}.macro strong{font-size:14px}}
