/* Composant commun : classique, mini et image/titre. Applicable au SSR et aux cartes d'historique HTTP. */
.cm-recipe-card { position:relative; display:flex; flex-direction:column; min-width:0; height:100%; overflow:hidden; border:1px solid rgba(255,214,100,.12); border-radius:21px; background:#24231e; color:#fff7e5; box-shadow:0 13px 30px rgba(0,0,0,.13); transition:transform .16s ease,border-color .16s ease; }
.cm-recipe-card:hover { transform:translateY(-2px); border-color:rgba(244,183,43,.4); }
.cm-recipe-card:focus-within { border-color:rgba(244,183,43,.55); }
.cm-recipe-card-photo { position:relative; flex:0 0 auto; height:205px; display:grid; place-items:center; background-color:#302e27; background-position:center; background-size:cover; background-repeat:no-repeat; }
.cm-recipe-card-photo-link { position:absolute; inset:0; z-index:1; }
.cm-recipe-card-photo-link:focus-visible,.cm-recipe-card-body h3 a:focus-visible { outline:2px solid #f4b72b; outline-offset:-3px; }
.cm-recipe-card-placeholder { font-size:2.6rem; color:#a58c57; }
.cm-recipe-card-badge { position:absolute; z-index:2; top:.75rem; left:.75rem; max-width:calc(100% - 3.9rem); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:.35rem .65rem; border-radius:999px; background:rgba(22,21,18,.89); color:#ffe08a; font-size:.72rem; font-weight:800; }
.cm-recipe-card-badge.private { color:#b8d1ff; }
.cm-recipe-card-badge.archived,.cm-recipe-card-badge.draft { color:#ddd2c2; }
.cm-recipe-card-overlay { position:absolute; z-index:4; top:.7rem; right:.7rem; }
.cm-recipe-card-overlay .recipe-favorite-button.compact { position:relative; inset:auto; }
.cm-recipe-card-body { display:flex; flex:1; flex-direction:column; min-width:0; gap:.55rem; padding:1rem; }
.cm-recipe-card-body h3 { margin:0; color:#fff7e5; font:700 1.39rem/1.09 Georgia,'Times New Roman',serif; letter-spacing:-.035em; overflow-wrap:anywhere; }
.cm-recipe-card-body h3 a { color:inherit; text-decoration:none; }
.cm-recipe-card-body h3 a:hover { color:#ffcf66; }
.cm-recipe-card-topline { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.3rem; color:#9f998b; font-size:.75rem; }
.cm-recipe-card-author { display:flex; align-items:center; gap:.45rem; color:#b1aa9e; font-size:.8rem; }
.cm-recipe-card-author img { width:27px; height:27px; object-fit:cover; border:1px solid rgba(244,183,43,.22); border-radius:8px; }
.cm-recipe-card-author strong { color:#e8dfd0; }
.cm-recipe-card-body p { margin:0; color:#b4ad9f; line-height:1.55; font-size:.91rem; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.cm-recipe-card-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin-top:auto; padding-top:.25rem; }
.cm-recipe-card-meta span { display:inline-flex; padding:.32rem .65rem; border-radius:99px; background:rgba(255,255,255,.055); color:#d3c9b9; font-size:.76rem; }
.cm-recipe-card--mini { flex-direction:row; min-height:106px; }
.cm-recipe-card--mini .cm-recipe-card-photo { width:120px; height:auto; min-height:105px; }
.cm-recipe-card--mini .cm-recipe-card-body { justify-content:center; padding:.75rem; }
.cm-recipe-card--mini .cm-recipe-card-body h3 { font:700 1rem/1.22 system-ui, sans-serif; letter-spacing:0; }
.cm-recipe-card-mini-author { color:#a9a294; font-size:.79rem; }
.cm-recipe-card--imagetitre { border-radius:15px; box-shadow:none; }
.cm-recipe-card--imagetitre .cm-recipe-card-photo { height:112px; }
.cm-recipe-card--imagetitre .cm-recipe-card-body { justify-content:center; padding:.65rem .75rem .8rem; min-height:54px; }
.cm-recipe-card--imagetitre .cm-recipe-card-body h3 { font:700 .94rem/1.25 system-ui,sans-serif; letter-spacing:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cm-recipe-card-actions { margin-top:auto; padding-top:.25rem; }
.cm-recipe-card--notebook .cm-recipe-card-body { gap:.7rem; }
.cm-recipe-card--notebook .cm-recipe-card-actions .recipe-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.cm-recipe-card--notebook .recipe-actions form { display:inline-flex; margin:0; }
.cm-recipe-card--notebook .recipe-actions a,.cm-recipe-card--notebook .recipe-actions button { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 .68rem; border-radius:9px; font:800 .78rem system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.cm-recipe-card--notebook .primary-action { border:0; background:#f4b72b; color:#211f19; }
.cm-recipe-card--notebook .recipe-actions .text-action { border:1px solid rgba(255,214,100,.14); background:rgba(255,255,255,.04); color:#e8dfd0; }
/* Les actions sont projetées dans RecipeCard : leur présentation doit vivre dans ce CSS global. */
.cm-recipe-card--notebook .recipe-actions .danger-action { border:1px solid rgba(217,134,120,.4); background:rgba(169,77,64,.12); color:#e8afa5; }
.cm-recipe-card--notebook .recipe-actions .danger-action:hover { border-color:rgba(235,159,144,.7); background:rgba(169,77,64,.22); }
.cm-recipe-card--notebook .recipe-actions .danger-action:focus-visible { outline:2px solid #f4b72b; outline-offset:2px; }
/* Suppression visible mais compacte : croix seule, même palette que la fiche complète. */
.cm-recipe-card--notebook .recipe-actions .delete-action { width:36px; min-width:36px; min-height:36px; padding:0; border:1px solid #a65b58; background:#522b29; color:#ffe9e4; }
.cm-recipe-card--notebook .recipe-actions .delete-action .notebook-delete-icon { font-size:1rem; line-height:1; }
.cm-recipe-card--notebook .recipe-actions .delete-action:hover { background:#8d3d3b; color:#fff; }
.cm-recipe-card--notebook .recipe-actions .delete-action:focus-visible { outline:2px solid #f4b72b; outline-offset:2px; }
.cm-recent-strip { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(155px,calc((100% - 5rem)/6)); gap:.8rem; overflow-x:auto; padding:.1rem .1rem .85rem; scroll-snap-type:x proximity; scrollbar-color:#77613b transparent; scrollbar-width:thin; }
.cm-recent-strip > * { scroll-snap-align:start; min-width:0; }
.cm-recent-strip .cm-recipe-card { height:100%; }
@media(max-width:1050px){.cm-recent-strip { grid-auto-columns:minmax(155px,calc((100% - 2.4rem)/4)); }}
@media(max-width:700px){.cm-recent-strip { grid-auto-columns:minmax(160px,48%); gap:.65rem; }.cm-recipe-card--imagetitre .cm-recipe-card-photo{height:105px}.cm-recipe-card--mini .cm-recipe-card-photo{width:96px}.cm-recipe-card-photo{height:190px} }
@media(max-width:420px){.cm-recent-strip { grid-auto-columns:minmax(145px,75%); }}

/* Les actions du carnet appartiennent à la page, leur style vit ici car elles sont projetées dans un composant enfant. */
.cm-recipe-card--notebook .cm-recipe-card-photo { border-radius:20px 20px 0 0; }
.cm-recipe-card--mini .cm-recipe-card-body { padding-right:3.2rem; }
.cm-recipe-card-mini-time { color:#938b7d; font-size:.74rem; }
.cm-recipe-card--mini .cm-recipe-card-overlay { top:.55rem; right:.55rem; }
.cm-recipe-card--mini .cm-recipe-card-overlay .recipe-favorite-button.compact { width:36px; height:36px; }

.cm-recipe-card-private-label { position:absolute; z-index:2; top:.5rem; left:.5rem; padding:.25rem .5rem; border-radius:20px; background:rgba(20,19,18,.88); color:#d3e1ff; font-size:.68rem; font-weight:750; }

/* Le badge de visibilité est identique dans toutes les variantes ; seul le propriétaire peut agir. */
.cm-recipe-visibility { position:absolute; z-index:3; left:.65rem; top:.65rem; display:inline-flex; align-items:center; gap:.28rem; max-width:calc(100% - 1.3rem); padding:.32rem .55rem; border:1px solid rgba(245,190,64,.24); border-radius:999px; background:rgba(18,17,15,.91); color:#f9d57f; font:750 .73rem/1.1 system-ui,sans-serif; white-space:nowrap; }
.cm-recipe-visibility--private { color:#d4e1ff; border-color:rgba(165,194,244,.25); }
button.cm-recipe-visibility--editable { cursor:pointer; border-color:#ac8433; }
button.cm-recipe-visibility--editable:hover,button.cm-recipe-visibility--editable:focus-visible { color:white; border-color:#ffcf67; background:#42351e; outline:2px solid transparent; }
.cm-recipe-visibility-chevron { margin-left:.12rem; color:#f5bf4c; }
.cm-recipe-card-badge { top:2.72rem; }
.cm-recipe-card--imagetitre .cm-recipe-visibility,.cm-recipe-card--mini .cm-recipe-visibility { font-size:.65rem; padding:.24rem .4rem; }
.cm-recipe-card--mini .cm-recipe-card-photo .cm-recipe-visibility { left:.4rem; top:.4rem; }
.cm-visibility-rights[hidden] { display:none!important; }
.cm-visibility-rights { padding:1rem; border:1px solid #76552a; border-radius:12px; background:#352c1e; color:#f5e1c4; font-size:.88rem; line-height:1.5; }
.cm-visibility-rights label { display:flex; align-items:start; gap:.6rem; cursor:pointer; }
.cm-visibility-rights input { flex:0 0 auto; margin-top:.3rem; accent-color:#f4b72b; }

/* Sur la fiche complète le badge fait partie de la barre d’actions, pas de la photographie. */
.detail-toolbar-actions .cm-recipe-visibility { position:static; max-width:none; min-height:48px; align-self:center; padding:.4rem .65rem; }

/* Variantes de cartes : les petites cartes ne laissent apparaître que le pictogramme. */
.cm-recipe-visibility--compact { gap:0; min-width:30px; min-height:30px; justify-content:center; padding:.3rem; }
.cm-recipe-visibility--compact .cm-recipe-visibility-text,
.cm-recipe-visibility--compact .cm-recipe-visibility-chevron { display:none; }
.cm-recipe-card--mini .cm-recipe-visibility--compact,
.cm-recipe-card--imagetitre .cm-recipe-visibility--compact { left:.5rem; top:.5rem; font-size:.8rem; }

/* Carte classique : image dégagée, puis actions lisibles sous la photographie. */
.cm-recipe-card-tools { display:flex; align-items:stretch; min-width:0; min-height:48px; border-bottom:1px solid rgba(255,214,100,.13); }
.cm-recipe-card-tools > * { display:flex; align-items:center; justify-content:center; min-width:0; padding:.35rem .5rem; }
.cm-recipe-card-tools > * + * { border-left:1px solid rgba(255,214,100,.13); }
.cm-recipe-card-tools-visibility { flex:0 0 auto; max-width:43%; }
.cm-recipe-card-tools-favorite { flex:0 0 48px; }
.cm-recipe-card-tools-author { flex:1 1 auto; justify-content:flex-start; }
.cm-recipe-card--classique .cm-recipe-card-tools .cm-recipe-visibility { position:static; max-width:100%; min-height:32px; padding:.28rem .55rem; border:0; background:transparent; font-size:.72rem; }
.cm-recipe-card--classique .cm-recipe-card-tools button.cm-recipe-visibility--editable:hover,
.cm-recipe-card--classique .cm-recipe-card-tools button.cm-recipe-visibility--editable:focus-visible { background:#40351d; outline:1px solid #bf9343; }
.cm-recipe-card--classique .cm-recipe-card-tools .recipe-favorite-button.compact { position:static; inset:auto; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:9px; box-shadow:none; background:transparent; backdrop-filter:none; }
.cm-recipe-card--classique .cm-recipe-card-tools .recipe-favorite-button.compact:not(.is-favorite) { border:0; background:transparent; color:#f4b72b; }
.cm-recipe-card--classique .cm-recipe-card-tools .recipe-favorite-button.compact.is-favorite { background:rgba(244,183,43,.17); color:#f5c65c; }
.cm-recipe-card--classique .cm-recipe-card-tools .recipe-favorite-button.compact:hover { background:#40351d; }
.cm-recipe-card-tools .cm-recipe-card-author { min-width:0; max-width:100%; display:flex; align-items:center; gap:.4rem; color:#e8dfd0; font-size:.77rem; font-weight:700; text-decoration:none; }
.cm-recipe-card-tools .cm-recipe-card-author span { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cm-recipe-card-tools .cm-recipe-card-author img { flex:0 0 24px; width:24px; height:24px; }
.cm-recipe-card-tools a.cm-recipe-card-author:hover { color:#ffcf66; }
.cm-recipe-card-status { align-self:flex-start; border-radius:99px; padding:.24rem .55rem; background:rgba(255,255,255,.06); color:#d3c9b9; font-size:.71rem; font-weight:750; }
.cm-recipe-card-status.archived,.cm-recipe-card-status.draft { color:#ddd2c2; }
.cm-recipe-card--classique .cm-recipe-card-body { padding:1rem; }
@media(max-width:420px) {
  .cm-recipe-card-tools > * { padding:.25rem .3rem; }
  .cm-recipe-card-tools-visibility { max-width:48%; }
  .cm-recipe-card--classique .cm-recipe-card-tools .cm-recipe-visibility { gap:.2rem; padding:.3rem .2rem; font-size:.68rem; }
  .cm-recipe-card-tools .cm-recipe-card-author { font-size:.7rem; }
}

/* Validation asynchrone de la visibilité : empêcher un second clic sur le badge pendant le POST. */
button.cm-recipe-visibility[aria-busy="true"] { opacity:.65; cursor:progress; }
