/* Mapping Result Page Specific Styles */

/* Cross-platform error tooltip for mapping results */
.ab-error-tooltip {
    position: fixed;
    background: #ffffff;
    color: #dc2626;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 0.82rem;
    line-height: 1.45;
    max-width: 340px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
    z-index: 9999;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    pointer-events: none;
}

.ab-error-tooltip.show {
    opacity: 1;
    transform: translateY(0);
}

/* Single page scroll (no inner scroll inside result table container) */
#ab-result-mapping-scroll.ab-mapping-scroll {
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
}

/* Center Columns values vertically (result page) */
#ab-result-mapping-table tbody tr td:nth-child(2) {
    position: relative;
}

#ab-result-mapping-table tbody tr td:nth-child(2) .ab-select-stack {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .45rem;
    padding: 4px 0;
    min-height: 100%;
}

#ab-result-mapping-table tbody tr td:nth-child(2) .ab-select-stack .ab-select-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
}

/* Merged row visuals (shared with mapping page, but with result-specific overrides) */
.ab-merged-row td {
    background: var(--ab-merged-bg, #f8fafc);
}

.ab-merged-field-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 0;
}

.ab-merged-src-name {
    font-weight: 500;
    margin-right: 6px;
}

.ab-merged-row .ab-select-item-arrow {
    margin-right: 4px;
}

/* Error row highlighting in preview table - soft pink */
.ab-preview-table tbody tr.ab-preview-row-error td {
    background-color: #F8D7DA !important; /* Soft pink background */
}

.ab-preview-table tbody tr.ab-preview-row-error:hover td {
    background-color: #F1B8BC !important; /* Slightly darker pink on hover */
}

.ab-preview-table tbody tr.ab-preview-row-error:hover td.ab-status-cell {
    background-color: #F1B8BC !important; /* Status cell also gets hover color */
}

/* Active selection - distinctly different from background, row-level border only */
.ab-preview-table tbody tr.ab-preview-row-error.ab-preview-row-active td {
    background-color: #EA9A9F !important; /* More saturated pink when selected */
}

.ab-preview-table tbody tr.ab-preview-row-error.ab-preview-row-active td.ab-status-cell {
    background-color: #EA9A9F !important; /* Status cell also gets active color */
}

.ab-preview-table tbody tr.ab-preview-row-error.ab-preview-row-active {
    box-shadow: inset 0 0 0 2px #dc2626; /* Red border on the row, not individual cells */
}

/* Normal (success) row highlighting - same pattern as error rows */
.ab-preview-table tbody tr:not(.ab-preview-row-error):hover td {
    background-color: #f4f9ff !important; /* Light blue on hover */
}

.ab-preview-table tbody tr:not(.ab-preview-row-error):hover td.ab-status-cell {
    background-color: #f4f9ff !important; /* Status cell also gets hover color */
}

.ab-preview-table tbody tr:not(.ab-preview-row-error).ab-preview-row-active td {
    background-color: #e9f3ff !important; /* More saturated blue when selected */
}

.ab-preview-table tbody tr:not(.ab-preview-row-error).ab-preview-row-active td.ab-status-cell {
    background-color: #e9f3ff !important; /* Status cell also gets active color */
}

.ab-preview-table tbody tr:not(.ab-preview-row-error).ab-preview-row-active {
    box-shadow: inset 0 0 0 2px #0a61ff; /* Blue border on the row */
}
