/* ========================================================================
   Review Editor Formatting Preservation
   Ensures Word formatting (colors, underlines, fonts) display correctly
   in the contenteditable #reviewContent div
   
   CRITICAL: This CSS must have MAXIMUM specificity to override all other styles
   ======================================================================== */

/* CRITICAL: Default font for editor container */
#reviewContent,
#editReviewContent,
.review-content-editable {
    font-family: 'IRNazanin', Arial, sans-serif !important;
    color: #212529 !important;
}

/* CRITICAL: All child elements with inline font-family MUST use that font */
#reviewContent *[style*="font-family"],
#editReviewContent *[style*="font-family"],
.review-content-editable *[style*="font-family"] {
    /* Force the browser to respect inline font-family */
    font-family: inherit !important;
}

/* CRITICAL: Specific font families - extract from inline styles and force them */
#reviewContent *[style*="IRNazanin"],
#editReviewContent *[style*="IRNazanin"],
#reviewContent *[style*="font-family: \"IRNazanin\""],
#editReviewContent *[style*="font-family: \"IRNazanin\""] {
    font-family: 'IRNazanin', Arial, sans-serif !important;
}

#reviewContent *[style*="IRYekan"],
#editReviewContent *[style*="IRYekan"] {
    font-family: 'IRYekan', Arial, sans-serif !important;
}

#reviewContent *[style*="Tahoma"],
#editReviewContent *[style*="Tahoma"] {
    font-family: 'Tahoma', Arial, sans-serif !important;
}

#reviewContent *[style*="Arial"],
#editReviewContent *[style*="Arial"] {
    font-family: 'Arial', sans-serif !important;
}

/* CRITICAL: Color preservation - blue */
#reviewContent *[style*="color: blue"],
#reviewContent *[style*="color:blue"],
#editReviewContent *[style*="color: blue"],
#editReviewContent *[style*="color:blue"] {
    color: blue !important;
}

/* CRITICAL: Color preservation - red */
#reviewContent *[style*="color: red"],
#reviewContent *[style*="color:red"],
#editReviewContent *[style*="color: red"],
#editReviewContent *[style*="color:red"] {
    color: red !important;
}

/* CRITICAL: Color preservation - black */
#reviewContent *[style*="color: black"],
#reviewContent *[style*="color:black"],
#editReviewContent *[style*="color: black"],
#editReviewContent *[style*="color:black"] {
    color: black !important;
}

/* CRITICAL: Color preservation via CSS classes - red */
#reviewContent .red,
#reviewContent span.red,
#reviewContent .red *,
#editReviewContent .red,
#editReviewContent span.red,
#editReviewContent .red *,
.review-content-editable .red,
.review-content-editable span.red,
.review-content-editable .red * {
    color: red !important;
}

/* CRITICAL: Color preservation via CSS classes - blue */
#reviewContent .blue,
#reviewContent span.blue,
#reviewContent .blue *,
#editReviewContent .blue,
#editReviewContent span.blue,
#editReviewContent .blue *,
.review-content-editable .blue,
.review-content-editable span.blue,
.review-content-editable .blue * {
    color: blue !important;
}

/* CRITICAL: Underline preservation - Maximum specificity and coverage */
#reviewContent *[style*="text-decoration: underline"],
#reviewContent *[style*="text-decoration:underline"],
#editReviewContent *[style*="text-decoration: underline"],
#editReviewContent *[style*="text-decoration:underline"],
#reviewContent u,
#reviewContent span u,
#editReviewContent u,
#editReviewContent span u,
#reviewContent span[style*="underline"],
#editReviewContent span[style*="underline"] {
    /* CRITICAL: Override any line-through/overline/strikethrough */
    text-decoration: underline !important;
    text-decoration-line: underline !important;
    text-decoration-style: solid !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: auto !important;
    text-underline-position: under !important;
    text-underline-offset: auto !important;
    -webkit-text-decoration: underline !important;
    -webkit-text-decoration-line: underline !important;
    -webkit-text-underline-position: under !important;
    -moz-text-decoration: underline !important;
    -moz-text-decoration-line: underline !important;
    /* Ensure underline spans entire text without breaking */
    display: inline !important;
    white-space: normal !important;
    /* CRITICAL: Prevent strikethrough/overline/line-through from being applied */
    text-decoration-skip: none !important;
    text-decoration-skip-ink: none !important;
}

/* CRITICAL: Force underline on ALL text content including text nodes */
#reviewContent *[style*="underline"]::before,
#reviewContent *[style*="underline"]::after,
#editReviewContent *[style*="underline"]::before,
#editReviewContent *[style*="underline"]::after {
    text-decoration: underline !important;
}

/* CRITICAL: Ensure underline is not removed by parent elements */
#reviewContent u *,
#editReviewContent u *,
#reviewContent span[style*="underline"] *,
#editReviewContent span[style*="underline"] * {
    text-decoration: inherit !important;
    text-decoration-line: inherit !important;
}

/* CRITICAL: Force underline on nested spans and elements */
#reviewContent span[style*="underline"] span,
#editReviewContent span[style*="underline"] span,
#reviewContent span[style*="underline"] strong,
#editReviewContent span[style*="underline"] strong,
#reviewContent span[style*="underline"] em,
#editReviewContent span[style*="underline"] em,
#reviewContent span[style*="underline"] b,
#editReviewContent span[style*="underline"] b,
#reviewContent span[style*="underline"] i,
#editReviewContent span[style*="underline"] i {
    text-decoration: underline !important;
    text-decoration-line: underline !important;
}

/* CRITICAL: Ensure contenteditable doesn't strip underlines */
#reviewContent[contenteditable="true"] *[style*="underline"],
#editReviewContent[contenteditable="true"] *[style*="underline"] {
    text-decoration: underline !important;
    -webkit-text-decoration-line: underline !important;
    text-decoration-skip-ink: none !important;
}

/* CRITICAL: Override any global text-decoration: none rules */
#reviewContent p *[style*="underline"],
#reviewContent div *[style*="underline"],
#editReviewContent p *[style*="underline"],
#editReviewContent div *[style*="underline"] {
    text-decoration: underline !important;
}

/* CRITICAL: Font size preservation */
#reviewContent *[style*="font-size: 12px"],
#reviewContent *[style*="font-size:12px"],
#editReviewContent *[style*="font-size: 12px"],
#editReviewContent *[style*="font-size:12px"] {
    font-size: 12px !important;
}

#reviewContent *[style*="font-size: 14px"],
#reviewContent *[style*="font-size:14px"],
#editReviewContent *[style*="font-size: 14px"],
#editReviewContent *[style*="font-size:14px"] {
    font-size: 14px !important;
}

/* CRITICAL: Bold preservation */
#reviewContent *[style*="font-weight: bold"],
#reviewContent *[style*="font-weight:bold"],
#editReviewContent *[style*="font-weight: bold"],
#editReviewContent *[style*="font-weight:bold"] {
    font-weight: bold !important;
}

/* CRITICAL: List items should inherit default font if no inline style */
#reviewContent li,
#editReviewContent li {
    font-family: 'IRNazanin', Arial, sans-serif !important;
}

/* CRITICAL: But if list item has inline font, use that */
#reviewContent li[style*="font-family"],
#editReviewContent li[style*="font-family"] {
    /* Will be handled by the font-family rules above */
}

/* CRITICAL: Paragraphs and spans without inline styles should inherit */
#reviewContent p:not([style*="font-family"]),
#reviewContent span:not([style*="font-family"]),
#reviewContent div:not([style*="font-family"]),
#editReviewContent p:not([style*="font-family"]),
#editReviewContent span:not([style*="font-family"]),
#editReviewContent div:not([style*="font-family"]) {
    font-family: 'IRNazanin', Arial, sans-serif !important;
}

/* CRITICAL: Override any .form-control, .multilingual-text rules that might interfere */
#reviewContent.form-control,
#reviewContent.multilingual-text,
#editReviewContent.form-control,
#editReviewContent.multilingual-text {
    font-family: 'IRNazanin', Arial, sans-serif !important;
}

/* CRITICAL: Override any modal CSS that might interfere */
.modal #reviewContent,
.modal #editReviewContent {
    font-family: 'IRNazanin', Arial, sans-serif !important;
}

/* CRITICAL: Force all children to use their inline styles */
.modal #reviewContent *[style],
.modal #editReviewContent *[style] {
    /* The specific rules above will handle each property */
}

/* CRITICAL: Empty paragraph spacing preservation */
#reviewContent p:empty,
#reviewContent p:not(:has(*)):not(:has(text())),
#editReviewContent p:empty,
#editReviewContent p:not(:has(*)):not(:has(text())) {
    min-height: 1em !important;
    margin-bottom: 1em !important;
}

/* CRITICAL: Preserve paragraph spacing with inline styles */
#reviewContent p[style*="margin-bottom"],
#editReviewContent p[style*="margin-bottom"] {
    /* Respect inline margin-bottom styles */
}

/* CRITICAL: Ensure consistent paragraph spacing */
#reviewContent p,
#editReviewContent p {
    margin-bottom: 1em !important;
}
