/* =========================================================
   RECIPE — grid + cards + accordion + form wizard
   ========================================================= */

.rp-recipe-grid{
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px){
  .rp-recipe-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px){
  .rp-recipe-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.rp-recipe-item{
  display:block;
  border-radius: 18px;
  border: 1px solid rgba(35,48,82,0.10);
  background: rgba(255,255,255,0.80);
  box-shadow: 0 10px 18px rgba(35,48,82,0.06);
  overflow:hidden;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.rp-recipe-item:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(35,48,82,0.10);
  background: rgba(255,255,255,0.86);
}

.rp-recipe-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 14px;
}

.rp-recipe-left{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.rp-recipe-thumb{
  width: 60px;
  height: 60px;
  border-radius: 16px;
  object-fit: contain;
  background: #fff;
  border: 1px solid rgba(35,48,82,0.08);
}

.rp-recipe-meta{ min-width:0; }
.rp-recipe-title{
  font-weight: 800;
  letter-spacing:-0.01em;
  font-size: 1.02rem;
}
.rp-recipe-sub{
  color: var(--rp-muted);
  font-weight: 600;
  font-size: .9rem;
}

.rp-recipe-right{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-shrink:0;
}

.rp-chevron{
  width: 36px;
  height: 36px;
  border-radius: 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(35,48,82,0.08);
  color: var(--rp-ink-2, #3B4A70);
}

/* Pills */
.rp-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: .25rem .6rem;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .01em;
  font-size: .82rem;
  border: 1px solid transparent;
  white-space: nowrap;
}
.rp-pill-ok{
  background: rgba(47,184,167,0.16);
  color: #137A6E;
  border-color: rgba(47,184,167,0.28);
}
.rp-pill-miss{
  background: rgba(239,107,123,0.14);
  color: #B53A49;
  border-color: rgba(239,107,123,0.26);
}

/* Missing list details */
.rp-recipe-details{ padding: 0 14px 14px 14px; }

.rp-missing-list{
  list-style:none;
  padding:0;
  margin: 10px 0 0 0;
  display:grid;
  gap: 8px;
}
.rp-missing-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}
.rp-missing-left{
  display:flex;
  align-items:center;
  gap: 8px;
  min-width:0;
  flex: 1;
}
.rp-missing-thumb{
  width: 22px;
  height: 22px;
  border-radius: 8px;
  background:#fff;
  border: 1px solid rgba(35,48,82,0.08);
  object-fit: contain;
}
.rp-missing-right{ flex-shrink:0; }
.rp-missing-more{
  color: var(--rp-muted);
  font-weight: 700;
  font-size: .85rem;
}

/* Accordion calm */
.rp-accordion .accordion-item{
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(35,48,82,0.10);
  background: rgba(255,255,255,0.72);
  box-shadow: 0 10px 18px rgba(35,48,82,0.06);
}
.rp-accordion .accordion-button{
  background: linear-gradient(180deg, rgba(231,243,219,.85), rgba(217,238,200,.75));
  color: rgba(47,58,47,.75);
  font-weight: 700;
  letter-spacing: -.01em;
  border-bottom: 1px solid rgba(120,150,120,.18);
}
.rp-accordion .accordion-button:not(.collapsed){
  box-shadow: none;
}
.rp-accordion .accordion-button:focus{
  box-shadow: var(--rp-focus, 0 0 0 .25rem rgba(167,228,210,.55));
}
.rp-accordion .accordion-body{ background: rgba(255,255,255,0.70); }

/* Recipe form (wizard) */
.rp-step{ opacity: 1; transition: opacity .25s ease; }
.rp-step.is-hidden{ opacity: 0; pointer-events: none; height: 0; overflow: hidden; }


/* RECIPE SCAN MODAL*/
.rp-modal-backdrop {
      position: fixed;
      inset: 0;
      z-index: 2000;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(20, 24, 28, 0.52);
      backdrop-filter: blur(3px);
    }

    .rp-modal-backdrop.is-open {
      display: flex;
    }

    .rp-modal-card {
      position: relative;
      width: min(100%, 520px);
      background: #fff;
      border-radius: 24px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
      padding: 24px 20px 18px;
      text-align: center;
      animation: rpModalIn .18s ease-out;
    }

    @keyframes rpModalIn {
      from {
        opacity: 0;
        transform: translateY(8px) scale(.98);
      }
      to {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

    .rp-modal-close {
      position: absolute;
      top: 10px;
      right: 12px;
      border: 0;
      background: transparent;
      font-size: 28px;
      line-height: 1;
      color: #7b8794;
      cursor: pointer;
      padding: 4px 8px;
      border-radius: 10px;
    }

    .rp-modal-close:hover {
      background: #f4f6f8;
      color: #334155;
    }

    .rp-modal-icon {
      width: 68px;
      height: 68px;
      margin: 0 auto 14px;
      border-radius: 999px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 30px;
      background: #fff7ed;
      box-shadow: inset 0 0 0 1px #fed7aa;
    }

    .rp-modal-title {
      margin: 0;
      font-size: 1.35rem;
      font-weight: 800;
      color: #1f2937;
    }

    .rp-modal-subtitle {
      margin-top: 8px;
      color: #64748b;
      font-size: .98rem;
      line-height: 1.45;
    }

    .rp-modal-box {
      margin-top: 18px;
      text-align: left;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 18px;
      padding: 14px;
    }

    .rp-modal-box-label {
      font-size: .82rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .03em;
      color: #64748b;
      margin-bottom: 8px;
    }

    .rp-modal-message {
      color: #0f172a;
      font-size: .98rem;
      line-height: 1.5;
      white-space: pre-wrap;
      word-break: break-word;
    }

    .rp-modal-actions {
      display: flex;
      gap: 10px;
      justify-content: center;
      margin-top: 18px;
      flex-wrap: wrap;
    }

    .rp-modal-btn {
      min-width: 140px;
      border-radius: 14px;
    }

    @media (max-width: 575.98px) {
      .rp-modal-card {
        padding: 22px 16px 16px;
        border-radius: 20px;
      }

      .rp-modal-actions {
        flex-direction: column;
      }

      .rp-modal-btn {
        width: 100%;
      }
    }