/* Base page styling */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body {
    background-color: #6E00FF; /* Vibrant purple background from your reference image */
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 20px;
}

/* Card Container layout */
.qr-card {
    background-color: #FFFFFF;
    width: 100%;
    max-width: 420px;
    border-radius: 28px;
    padding: 35px 25px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    text-align: center;
}

/* Top header label */
.card-header-text {
    color: #A0A0A0;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.5px;
    margin-bottom: 25px;
}

/* 5-star rating layout */
.stars-container {
    color: #FFC107; /* Golden yellow stars color */
    font-size: 24px;
    margin-bottom: 25px;
    letter-spacing: 4px;
}

/* Centered generated review text box area */
.review-text-display {
    color: #1A1A1A;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 35px;
    padding: 0 10px;
    text-align: center;
    min-height: 140px; /* keeps the card from jumping while loading */
}

/* Editable textarea (Write Your Own) */
.review-textarea {
    width: 100%;
    resize: none;
    border: 1px dashed #c9b8ff;
    border-radius: 12px;
    background: #faf8ff;
    outline: none;
    padding: 10px 12px;
    color: inherit;
    text-align: center;
    box-sizing: border-box;
    overflow: hidden;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

    .review-textarea:focus {
        border-color: #6f00ff;
    }

/* Scoped loader inside the review box (5 dots) */
.review-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 140px;
}

    .review-loader span {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: #6f00ff;
        animation: review-bounce 0.9s infinite ease-in-out both;
    }

        .review-loader span:nth-child(2) {
            animation-delay: 0.12s;
        }

        .review-loader span:nth-child(3) {
            animation-delay: 0.24s;
        }

        .review-loader span:nth-child(4) {
            animation-delay: 0.36s;
        }

        .review-loader span:nth-child(5) {
            animation-delay: 0.48s;
        }

@keyframes review-bounce {
    0%, 80%, 100% {
        transform: scale(0.4);
        opacity: 0.4;
    }

    40% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Pill action button stack styles */
.button-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.action-btn {
    background-color: #F6F3FF; /* Soft pastel lavender tint from image */
    color: #4B3880; /* Subtle deep purple text coloring */
    border: none;
    border-radius: 50px; /* Fully pill-shaped round edges */
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

    /* Subtle interactive hover effects for users */
    .action-btn:hover {
        background-color: #EDE8FF;
    }

    .action-btn:active {
        transform: scale(0.98);
    }

    /* Icon layout tuning */
    .action-btn i {
        font-size: 14px;
    }

    .action-btn:disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }
