/* Keep a real table for comparing amounts across a set of invoice/cost lines. */
.rapid-table-wrap--keeptable {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

/* Sticky headers need the outer pane as the scrollport, so do not create a nested
   overflow box on the keep-table wrapper when headers are pinned. */
.rapid-table-wrap--keeptable.rapid-table-wrap--sticky-header {
    overflow: visible;
    overscroll-behavior-inline: auto;
}

.rapid-table-wrap--keeptable > .rapid-table { min-width: 580px; }
.rapid-table-wrap--keeptable .rapid-table__open a span { display: none; }

.rapid-table-wrap.rapid-table-density--compact > .rapid-table > thead > tr > th,
.rapid-table-wrap.rapid-table-density--compact > .rapid-table > tbody > tr > td {
    padding: var(--rapid-space-2) var(--rapid-space-3);
    line-height: 1.4;
}

.rapid-table-wrap--keeptable.rapid-table-density--compactrecords > .rapid-table > tbody > tr > td {
    padding-block: var(--rapid-space-3);
}

.rapid-table > thead > tr > .rapid-table__cell--center,
.rapid-table > tbody > tr > .rapid-table__cell--center { text-align: center; }
.rapid-table > thead > tr > .rapid-table__cell--end,
.rapid-table > tbody > tr > .rapid-table__cell--end { text-align: end; font-variant-numeric: tabular-nums; }
.rapid-table > tbody > tr > .rapid-table__cell--end > .rapid-button--link { justify-content:flex-end; text-align:end; }
.rapid-table td::before { text-align:start; }
.rapid-table__sort {
    display: inline-flex;
    align-items: center;
    gap: var(--rapid-space-1);
    min-height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    cursor: pointer;
}
.rapid-table__cell--center > .rapid-table__sort { justify-content: center; }
.rapid-table__cell--end > .rapid-table__sort { justify-content: flex-end; margin-left: auto; }
.rapid-table__sort:hover { color: var(--rapid-ink); }
.rapid-table__sort:focus-visible {
    outline: 2px solid var(--rapid-focus);
    outline-offset: 2px;
    border-radius: var(--rapid-radius-control);
}

.rapid-table__leading-cell {
    display: flex;
    align-items: baseline;
    gap: var(--rapid-space-2);
    min-width: 0;
}
.rapid-table__row-content { min-width: 0; }
.rapid-table__row-state {
    flex-shrink: 0;
    font-size: var(--rapid-text-3xs);
    font-weight: 700;
    line-height: 1.4;
}

.rapid-table > tbody > .rapid-table__row--added > td { background: var(--rapid-green-wash); }
.rapid-table > tbody > .rapid-table__row--changed > td { background: var(--rapid-amber-soft); }
.rapid-table > tbody > .rapid-table__row--removed > td { background: var(--rapid-danger-soft); }
.rapid-table > tbody > .rapid-table__row--attention > td { background: color-mix(in srgb, var(--rapid-orange) 14%, var(--rapid-paper)); }
.rapid-table > tbody > .rapid-table__row--added > td:first-child { box-shadow: inset 3px 0 var(--rapid-green-dark); }
.rapid-table > tbody > .rapid-table__row--changed > td:first-child { box-shadow: inset 3px 0 var(--rapid-amber); }
.rapid-table > tbody > .rapid-table__row--removed > td:first-child { box-shadow: inset 3px 0 var(--rapid-danger); }
.rapid-table > tbody > .rapid-table__row--attention > td:first-child { box-shadow: inset 3px 0 color-mix(in srgb, var(--rapid-orange) 70%, transparent); }
.rapid-table__row--added .rapid-table__row-state { color: var(--rapid-green-dark); }
.rapid-table__row--changed .rapid-table__row-state { color: var(--rapid-amber); }
.rapid-table__row--removed .rapid-table__row-state { color: var(--rapid-danger); }
.rapid-table__row--removed > td:first-child .rapid-table__row-content { text-decoration: line-through; }
.rapid-table > tbody > .rapid-table__record--selected > td { background:var(--rapid-green-wash); }
.rapid-table > tbody > .rapid-table__record--selected > td:first-child { box-shadow:inset 3px 0 var(--rapid-green-dark); }
.rapid-table-wrap--sticky-header > .rapid-table > thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--rapid-paper);
    box-shadow: 0 1px 0 var(--rapid-line);
}
.rapid-table__record[tabindex="0"]:focus-visible {
    outline: 2px solid var(--rapid-focus);
    outline-offset: -2px;
}

/* An editable line list keeps values aligned while reducing row chrome. */
.rapid-table-density--editor > .rapid-table > thead > tr > th { padding:var(--rapid-space-2); font-size:var(--rapid-text-3xs); }
.rapid-table-density--editor > .rapid-table > tbody > tr > td { padding:2px var(--rapid-space-2); }
.rapid-table-density--editor.rapid-table-wrap--keeptable > .rapid-table { min-width:420px; }
.rapid-table__width--fill { width:100%; }
.rapid-table__width--content { width:1%; white-space:nowrap; }
.rapid-table-density--editor > .rapid-table > tbody > tr:hover { background:var(--rapid-green-wash); }
@media(max-width:760px) {
    .rapid-table-wrap--normal .rapid-table__width--fill,
    .rapid-table-wrap--normal .rapid-table__width--content { width:auto; white-space:normal; }
}
