.tt-table {
    width: 100%;
    color: var(--text-color);
}

/* HEADER (THEAD) */
.tt-table thead th {
    padding: var(--step--2) 0; /* vertical padding inside row */
    /*text-align: left;*/
    border-bottom: 1px solid var(--border-muted, #cfcfcf);
    font-weight: 600;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

/* BODY (TBODY) */
.tt-table tbody tr {
    border-bottom: 1px solid var(--bg-muted);
}

.tt-table tbody tr > td {
    padding: var(--step--3) 0; /* vertical padding inside row */
}

/* COMPACT */
.tt-table.tt-table-compact thead th {
    padding: var(--step--3) 0;
}
.tt-table.tt-table-compact tbody tr > td {
    padding: var(--step--4) 0;
}

.tt-table.tt-table-super-compact thead th {
    padding: var(--step--4) 0;
}
.tt-table.tt-table-super-compact tbody tr > td {
    padding: 0.2rem 0;
}
/* FOOTER (TFOOT) */
.tt-table tfoot td {
    padding: var(--step--2) 0; /* vertical padding inside row */
    border-top: 1px solid var(--border-muted);
    font-weight: 600;
}

/* LAST ROW NO BORDERS */
.tt-table.tt-last-row-no-border tbody tr:last-child {
    border-bottom: none;
}
/* FIRST CHILD */
.tt-table thead th:first-child,
.tt-table tbody tr > td:first-child,
.tt-table tfoot tr > td:first-child {
    padding-left: var(--step--3);
}
.tt-table tr:not(.no-last-right) > td:last-child:not(:only-child),
.tt-table thead th:last-child,
.tt-table tfoot tr:not(.no-last-right) > td:last-child:not(:only-child),
.tt-table thead th .tt-text-right,
.tt-table td .tt-text-right {
    text-align: right;
    white-space: nowrap;
}
.tt-table thead th:last-child,
.tt-table tbody tr > td:last-child,
.tt-table tfoot tr > td:last-child {
    padding-right: var(--step--3);
}
.tt-table td div {
    white-space: normal;
}

/* BORDERS */
.tt-table.tt-table-bordered {
    border: 1px solid var(--border-muted, #cfcfcf);
    border-collapse: collapse;
}

/* Vertical cell borders */
.tt-table.tt-table-bordered th,
.tt-table.tt-table-bordered td {
    border-right: 1px solid var(--border-muted, #cfcfcf);
}

/* Remove last column border */
.tt-table.tt-table-bordered th:last-child,
.tt-table.tt-table-bordered td:last-child {
    border-right: none;
}
/* No border bottom */
.no-bottom-border {
    border-bottom: 0 !important;
}

/* HIDDEN ROWS */
.hidden-row {
    display: none;
}
tr:not(.hidden-row) {
    animation: fadeIn 0.15s ease-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-2px); }
    to { opacity: 1; transform: translateY(0); }
}
