/* ===================================================================
   Excel Transformation Engine — page-specific styling
=================================================================== */

/* ---------- Sheet Preview Table ---------- */
.preview-table td, .preview-table th {
    white-space: nowrap;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.78rem;
    cursor: pointer;
}

.preview-table .row-num {
    background: #F4F5F7;
    color: #64748B;
    font-weight: 600;
    text-align: center;
    width: 40px;
    cursor: default;
}

.preview-table .col-head {
    text-align: center;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    color: #E2E5EA;
}

.preview-table tbody tr:hover {
    background-color: #EEF3F8;
}

.preview-table tbody tr.table-warning td {
    background-color: #FBF4DD !important;
    font-weight: 600;
    color: #8A6D1F;
}

/* Cell selection highlights — kept distinguishable but muted */
.preview-cell.cell-start {
    background-color: #2F6B4F !important;
    color: #fff !important;
    font-weight: 600;
}

.preview-cell.cell-end {
    background-color: #1E3A5F !important;
    color: #fff !important;
    font-weight: 600;
}

.preview-cell.cell-range {
    background-color: #DCE5EF !important;
}

/* ---------- Mapper UI ---------- */
.mapper-row td {
    vertical-align: middle;
}

.mapper-row.row-mapped {
    background-color: #F4F8F6;
}

.mapper-row.type-transform {
    background-color: #F1F4F8;
}

.mapper-row:hover {
    filter: brightness(0.98);
}

.formula-input {
    min-width: 260px;
    font-size: 0.8rem;
}

.formula-input.is-valid {
    border-color: #2F6B4F;
    background-image: none;
}

.formula-input.is-invalid {
    border-color: #9B3B3B;
    background-image: none;
}

.exec-seq {
    width: 70px;
}

.source-select {
    min-width: 200px;
    font-size: 0.8rem;
}

.formula-feedback {
    font-size: 0.72rem;
}

.multi-sum-preview {
    padding: 3px 8px;
    background: #F4F8F6;
    border: 1px solid #D7E5DC;
    border-radius: 4px;
    display: inline-block;
    font-size: 0.78rem;
}

/* ---------- Upload page ---------- */
#uploadForm .form-control,
#uploadForm .form-select {
    height: 2.4rem;
}

/* ---------- Result/summary page ---------- */
.card-body .table-borderless td {
    padding: 0.35rem 0.5rem;
    border: none;
}