#review-screen .review-scroll { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; }
#review-screen .review-intro { flex-shrink: 0; }
#review-screen .polaroid-area { flex: 1 0 auto; min-height: 0; padding: 22px 24px 20px; container-type: normal; overflow: clip; isolation: isolate; }
#review-screen .polaroid { grid-area: 1 / 1; width: 100%; max-width: 380px; padding: 8px 8px 14px; transform-origin: 50% 85%; }
#review-screen .polaroid::after { content: ''; position: absolute; inset: 8px 8px auto; aspect-ratio: 1; background: #fff; opacity: 0; pointer-events: none; }
#review-screen .review-companion { grid-area: 1 / 1; position: sticky; align-self: end; justify-self: end; right: auto; bottom: 10px; margin: 0 -12px -12px 0; width: min(156px, 48%); height: auto; aspect-ratio: 941 / 1130; z-index: 2; transform: rotate(4deg); transform-origin: 50% 95%; pointer-events: none; }
#review-screen.is-photo-arriving .polaroid { animation: review-photo-drop 1050ms both; }
#review-screen.is-photo-arriving .polaroid::after { animation: review-photo-flash 340ms 80ms both; }
#review-screen.is-photo-arriving .review-companion { animation: review-chef-catch 650ms 480ms both; }
.paused #review-screen *, .paused #review-screen .polaroid::after,
.document-hidden #review-screen *, .document-hidden #review-screen .polaroid::after { animation-play-state: paused !important; }
@keyframes review-photo-drop {
  0% { opacity: 0; transform: translateY(-165px) rotate(-11deg) scale(.94); animation-timing-function: cubic-bezier(.45, 0, .8, .6); }
  16% { opacity: 1; }
  62% { transform: translateY(9px) rotate(1.5deg) scale(1.012, .986); animation-timing-function: ease-out; }
  80% { transform: translateY(-8px) rotate(-4deg) scale(.995, 1.005); animation-timing-function: ease-in-out; }
  100% { opacity: 1; transform: translateY(0) rotate(-3deg) scale(1); }
}
@keyframes review-photo-flash { from { opacity: .78; } to { opacity: 0; } }
@keyframes review-chef-catch {
  0%, 100% { transform: translateY(0) rotate(4deg) scale(1); }
  26% { transform: translateY(5px) rotate(1deg) scale(1.04, .96); }
  58% { transform: translateY(-10px) rotate(-3deg) scale(.98, 1.02); }
}
@media (prefers-reduced-motion: reduce) {
  #review-screen .polaroid, #review-screen .polaroid::after, #review-screen .review-companion { animation: none !important; }
}
#review-screen .review-actions { flex: 0 0 auto; padding: 12px 24px 26px; gap: 8px; }
.meal-note { flex-shrink: 0; margin: 0 24px 12px; border-top: 1px solid var(--line); font-size: 13px; }
.meal-note summary { min-height: 44px; padding: 13px 0; cursor: pointer; color: #ededf2; }
.meal-note-optional { color: var(--muted); font-size: 11px; margin-left: 10px; }
.meal-note-editor label { display: block; font-size: 12px; color: #b3b3bf; margin: 2px 0 8px; }
.meal-note textarea { display: block; width: 100%; min-height: 96px; max-height: 180px; resize: vertical; padding: 10px; border: 1px solid #484850; border-radius: 6px; background: #1c1c21; color: #f7f7f2; font: inherit; font-size: 16px; line-height: 1.5; }
.meal-note textarea::placeholder { color: #90909e; }
.meal-note textarea[readonly] { color: #cccbd5; }
.meal-note textarea:focus-visible, .meal-note summary:focus-visible { outline: 2px solid var(--pink); outline-offset: 3px; }
.meal-note-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-top: 8px; font-size: 11px; line-height: 1.6; color: var(--muted); }
#meal-note-count { flex-shrink: 0; font-variant-numeric: tabular-nums; }
#meal-note-status { overflow-wrap: anywhere; }
.meal-submitted-note { padding: 10px 0; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.meal-submitted-note[hidden], .meal-submitted-note [hidden] { display: none; }
.meal-submitted-note strong { color: #cccbd5; font-weight: 600; }
.meal-submitted-note p { margin: 4px 0; white-space: pre-wrap; color: var(--muted); }
.meal-submitted-note [data-forge-part="meal-reused-message"] { color: var(--pink); }
