html,
body {
  margin: 0;
  min-height: 100%;
  font-family: "Poppins", sans-serif;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
}

.recipe-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px;
}

.recipe-hero {
  display: grid;
  grid-template-columns: 1.1fr 1.3fr;
  gap: 28px;
  align-items: start;
  margin-bottom: 32px;
}

.recipe-image img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.recipe-summary h1 {
  margin-top: 0;
  margin-bottom: 12px;
  font-size: 2rem;
}

.recipe-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.recipe-tags span {
  padding: 6px 12px;
  border: 1px solid #d7d7d7;
  border-radius: 999px;
  font-size: 0.9rem;
  background: #f8f8f8;
}

.recipe-description {
  line-height: 1.7;
}

.recipe-time {
  width: 100%;
  border-collapse: collapse;
  margin-top: 16px;
}

.recipe-time th,
.recipe-time td {
  border: 1px solid #dddddd;
  padding: 14px;
  text-align: center;
}

.recipe-time th {
  background: #f3f3f3;
}

.recipe-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 10px;
  margin-bottom: 16px;
}

.recipe-rating-input {
  cursor: pointer;
}

.rating-star {
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: inline-block;
  position: relative;
}

.rating-star::before {
  content: '';
  width: 24px;
  height: 24px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #bea925;
  mask-image: url("../assets/svg/star.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: url("../assets/svg/star.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  transition: transform 0.18s ease, filter 0.18s ease;
  transform-origin: center;
}

.rating-star:hover::before,
.rating-star.hover::before {
  transform: translate(-50%, -50%) scale(1.18) rotate(-4deg);
  filter: brightness(1.08) drop-shadow(0 0 6px rgba(190, 169, 37, 0.28));
}

.rating-star.filled::before,
.rating-star.hover-filled::before {
  mask-image: url("../assets/svg/star-fill.svg");
  -webkit-mask-image: url("../assets/svg/star-fill.svg");
}

.recipe-rating:hover .rating-star:nth-child(1)::before {
  transition-delay: 0ms;
}

.recipe-rating:hover .rating-star:nth-child(2)::before {
  transition-delay: 20ms;
}

.recipe-rating:hover .rating-star:nth-child(3)::before {
  transition-delay: 40ms;
}

.recipe-rating:hover .rating-star:nth-child(4)::before {
  transition-delay: 60ms;
}

.recipe-rating:hover .rating-star:nth-child(5)::before {
  transition-delay: 80ms;
}

.recipe-rating .rating-star::before {
  transition-delay: 0ms;
}

.rating-star.saving {
  opacity: 0.6;
  pointer-events: none;
}

.recipe-details {
  display: grid;
  grid-template-columns: 0.9fr 2fr;
  gap: 36px;
}

/* Buttons used on recipe pages: icon edit + primary 'Gekocht' action */
.recipe-edit-button {
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #d2e1e6;
  background: #e6eff2;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.recipe-edit-button:hover {
  background: #dce8ec;
}

.recipe-edit-icon {
  width: 20px;
  height: 20px;
  display: block;
  transform: translateY(2px);
  pointer-events: none;
}

.recipe-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.recipe-title-row h1 {
  margin: 0;
  flex: 1;
  min-width: 0;
}

.recipe-title-actions {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}

.recipe-title-delete-form {
  margin: 0;
}

.recipe-icon-action {
  width: 42px;
  height: 42px;
  border: 1px solid #d2e1e6;
  border-radius: 8px;
  background: #e6eff2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
  padding: 0;
}

.recipe-icon-action:hover {
  background: #dce8ec;
}

.recipe-icon-action-delete {
  background: #f6e9e9;
  border-color: #ebcccc;
}

.recipe-icon-action-delete:hover {
  background: #f3dddd;
}

.recipe-action-icon {
  width: 20px;
  height: 20px;
  display: inline-block;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.recipe-action-icon-edit {
  background-color: #1b7f99;
  mask-image: url("../assets/svg/pencil-square.svg");
  -webkit-mask-image: url("../assets/svg/pencil-square.svg");
}

.recipe-action-icon-delete {
  background-color: #b74040;
  mask-image: url("../assets/svg/x-circle.svg");
  -webkit-mask-image: url("../assets/svg/x-circle.svg");
}

.recipe-actions-fullwidth {
  margin-top: 18px;
}

.recipe-action-buttons {
  display: flex;
  gap: 12px;
}

.recipe-cook-form {
  width: 100%;
}

.recipe-use-storage-button {
  padding: 12px 16px;
  border: none;
  border-radius: 8px;
  background: #229cba;
  color: #ffffff;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  display: block;
  font-size: 1.5rem;
}

.recipe-edit-link {
  text-decoration: none;
  text-align: center;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.recipe-use-storage-button:hover {
  background: #1b7f99;
}

.recipe-use-storage-button.recipe-delete-button {
  background: #b74040;
}

.recipe-use-storage-button.recipe-delete-button:hover {
  background: #972f2f;
}

.recipe-plan-button {
  background: #e6eff2;
  color: #315460;
  border: 1px solid #d2e1e6;
}

.recipe-plan-button:hover {
  background: #dce8ec;
}

.ingredients ul,
.instructions ol {
  margin: 0;
  padding-left: 20px;
  line-height: 1.8;
}

@media (max-width: 900px) {
  .recipe-hero,
  .recipe-details {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .recipe-icon-action {
    width: 38px;
    height: 38px;
  }

  .recipe-action-buttons {
    flex-direction: column;
  }
}
