/* VaperBG — review validation UX (aggregated + product modal) */

/* Required legend */
.vg-rev-required-legend {
    margin: 8px auto 16px !important;
    max-width: 560px !important;
    text-align: center !important;
}

.vg-rev-required-legend-inner {
    display: inline-block;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid rgba(251, 191, 36, 0.35);
    background: rgba(251, 191, 36, 0.08);
    text-align: left;
}

.vg-rev-required-legend-line {
    margin: 0;
    color: #f4f4f5;
    font-size: 0.86rem;
    line-height: 1.45;
}

.vg-rev-required-legend-hint {
    margin: 6px 0 0;
    color: #a1a1aa;
    font-size: 0.78rem;
    line-height: 1.45;
}

.vg-rev-req-mark {
    color: #fb923c;
    font-weight: 800;
}

html body.vg-cusrev-aggregated .cr-form-item-subheader span[style*="f68609"],
html body.single-product #reviews .cr-review-form-rating-label .required {
    color: #fb923c !important;
    font-weight: 800 !important;
    font-size: 1.05em !important;
    text-shadow: 0 0 10px rgba(251, 146, 60, 0.35);
}

/* Inline field hints */
.vg-rev-inline-error {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid rgba(248, 113, 113, 0.45);
    background: rgba(225, 29, 72, 0.12);
    color: #fecaca;
    font-size: 0.82rem;
    line-height: 1.45;
    font-weight: 600;
}

.vg-rev-inline-error::before {
    content: "⚠️";
    flex-shrink: 0;
}

.vg-rev-inline-error[hidden] {
    display: none !important;
}

html body.vg-cusrev-aggregated .cr-form-error .cr-form-item-subcontainer,
html body.vg-cusrev-aggregated .vg-rev-has-inline-error .cr-form-item-subcontainer {
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.35);
    border-radius: 10px;
}

html body.single-product #reviews .cr-review-form-field-error {
    display: none !important;
    margin-top: 8px !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(248, 113, 113, 0.45) !important;
    background: rgba(225, 29, 72, 0.12) !important;
    color: #fecaca !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
}

html body.single-product #reviews .cr-review-form-rating.cr-review-form-error .cr-review-form-field-error,
html body.single-product #reviews .cr-review-form-comment.cr-review-form-error .cr-review-form-field-error,
html body.single-product #reviews .cr-review-form-name.cr-review-form-error .cr-review-form-field-error,
html body.single-product #reviews .cr-review-form-email.cr-review-form-error .cr-review-form-field-error {
    display: block !important;
}

html body.single-product #reviews .cr-review-form-rating.cr-review-form-error .cr-review-form-rating-cont,
html body.single-product #reviews .cr-review-form-comment.cr-review-form-error .cr-review-form-comment-txt {
    box-shadow: 0 0 0 1px rgba(248, 113, 113, 0.45) !important;
}

/* Toast */
.vg-rev-toast-host {
    position: fixed;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    z-index: 99999;
    width: min(420px, calc(100vw - 24px));
    pointer-events: none;
}

.vg-rev-toast {
    pointer-events: auto;
    padding: 14px 16px 12px;
    border-radius: 14px;
    border: 1px solid rgba(248, 113, 113, 0.5);
    background: linear-gradient(180deg, #27272a 0%, #18181b 100%);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.28s ease, transform 0.28s ease;
}

.vg-rev-toast-visible {
    opacity: 1;
    transform: translateY(0);
}

.vg-rev-toast-title {
    margin: 0 0 4px;
    color: #fafafa;
    font-size: 0.95rem;
    font-weight: 800;
}

.vg-rev-toast-body {
    margin: 0 0 8px;
    color: #d4d4d8;
    font-size: 0.82rem;
    line-height: 1.45;
}

.vg-rev-toast-list {
    margin: 0 0 10px;
    padding-left: 18px;
    color: #fecaca;
    font-size: 0.82rem;
    line-height: 1.5;
}

.vg-rev-toast-actions {
    display: flex;
    justify-content: flex-end;
}

.vg-rev-toast-dismiss {
    appearance: none;
    border: 0;
    border-radius: 8px;
    padding: 8px 12px;
    background: #e11d48;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
}

.vg-rev-toast-dismiss:hover {
    background: #be123c;
}

.vg-rev-toast-info {
    border-color: rgba(96, 165, 250, 0.45);
    background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
}

.vg-rev-toast-info .vg-rev-toast-title {
    color: #dbeafe;
}

.vg-rev-toast-success {
    border-color: rgba(74, 222, 128, 0.45);
    background: linear-gradient(180deg, #14532d 0%, #052e16 100%);
}

.vg-rev-toast-success .vg-rev-toast-title {
    color: #dcfce7;
}

.vg-rev-toast-success .vg-rev-toast-body {
    color: #bbf7d0;
}

.vg-rev-toast-error .vg-rev-toast-list {
    color: #fecaca;
}

.vg-rev-shake {
    animation: vg-rev-shake 0.45s ease;
}

@keyframes vg-rev-shake {
    0%,
    100% {
        transform: translateX(0);
    }
    20% {
        transform: translateX(-6px);
    }
    40% {
        transform: translateX(6px);
    }
    60% {
        transform: translateX(-4px);
    }
    80% {
        transform: translateX(4px);
    }
}

@media (max-width: 767px) {
    .vg-rev-toast-host {
        bottom: 12px;
    }

    .vg-rev-required-legend-inner {
        display: block;
        width: 100%;
    }
}

/* Stuck media upload — visible hint when submit is blocked */
html body.single-product #reviews .cr-upload-images-containers.vg-rev-upload-stuck,
html body.vg-cusrev-aggregated .cr-upload-images-containers.vg-rev-upload-stuck {
    box-shadow: 0 0 0 2px rgba(248, 113, 113, 0.85) !important;
    animation: vg-rev-upload-pulse 1.2s ease-in-out infinite;
}

@keyframes vg-rev-upload-pulse {
    0%, 100% {
        box-shadow: 0 0 0 2px rgba(248, 113, 113, 0.55);
    }
    50% {
        box-shadow: 0 0 0 3px rgba(248, 113, 113, 1);
    }
}

/* Guard — hide only JS-suppressed nodes (not add-review CTAs; those open the panel) */
html body.single-product #reviews .vg-review-suppressed {
    display: none !important;
}

html body.single-product #reviews .vg-review-denied-notice {
    margin-top: 16px;
}

html body.single-product #reviews .vg-review-denied-notice .cr-review-form-buttons {
    margin-top: 16px;
}

html body.single-product #reviews .vg-review-duplicate-panel,
html body.single-product #reviews .vg-review-blocked-panel,
html body.single-product #reviews .vg-review-denied-overlay {
    margin: 0 0 18px;
}

html body.single-product #reviews .vg-review-duplicate-panel .cr-review-form-buttons,
html body.single-product #reviews .vg-review-blocked-panel .cr-review-form-buttons,
html body.single-product #reviews .vg-review-denied-overlay .cr-review-form-buttons {
    margin-top: 16px;
}

html body.single-product #reviews .vg-review-back-to-list,
html body.single-product #reviews .cr-review-form-continue.vg-review-back-to-list {
    display: flex !important;
    background: #e11d48 !important;
    border: 1px solid #fb7185 !important;
    color: #fff !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    min-height: 44px;
    padding: 0 18px !important;
    align-items: center !important;
    justify-content: center !important;
}

html body.single-product #reviews .cr-review-form-wrap.cr-review-form-res .cr-review-form-result .cr-review-form-continue.vg-review-back-to-list {
    display: flex !important;
}

html body.single-product #reviews .cr-voting-cont-uni .cr-voting-upvote,
html body.single-product #reviews .cr-voting-cont-uni .cr-voting-downvote {
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative !important;
    z-index: 4 !important;
}

html body.single-product #reviews .cr-voting-cont-uni svg {
    pointer-events: none !important;
}

/* Media upload in progress — disable submit + inline notice */
.vg-rev-media-upload-notice {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid rgba(96, 165, 250, 0.45);
    background: rgba(37, 99, 235, 0.12);
    color: #bfdbfe;
    font-size: 0.82rem;
    line-height: 1.45;
    font-weight: 600;
}

.vg-rev-media-upload-notice[hidden] {
    display: none !important;
}

html body.single-product #reviews .vg-rev-media-uploading .cr-review-form-submit,
html body.vg-cusrev-aggregated .vg-rev-media-uploading .cr-form-submit,
html body.single-product #reviews .cr-review-form-submit.vg-rev-submit-disabled,
html body.vg-cusrev-aggregated .cr-form-submit.vg-rev-submit-disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    filter: grayscale(0.15);
}
