.flex-table {
    display: flex;
    flex-direction: column;
    gap: 0;                     /* removes space between rows */
}

.flex-row {
    display: flex;
    align-items: center;        /* vertical alignment */
    padding: 0.75rem 0;         /* same as table row padding */
    border-bottom: 1px solid var(--bs-border-color);
}

.flex-cell {
    flex: 1;
    padding: 0 0.75rem;         /* horizontal spacing */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flex-table-small *{
    font-size: 0.80rem;
    line-height: 1.4;
}

/* Header row – bold + background */
.flex-header {
    font-weight: 600;
    background: rgba(0,0,0,0.03);
    border-bottom: 2px solid var(--bs-border-color);
}

table th.sticky-start {
    position: sticky;
    left: 0;
    z-index: 1;
}
table th.sticky-end {
    position: sticky;
    right: 0;
    z-index: 1;
}
@media (max-width: 576px) {
    table.sticky-start, table.sticky-end {
        background: #f8f9fa;
        font-weight: 600;
    }
}

.table-grid{
    width: 100%;
    border: 1px solid #cccccc;
    border-collapse: collapse;
}

.table-grid-rounded{
    border-radius: 15px !important;
}

.table-grid > thead > tr > th,
.table-grid > tbody > tr > td
{
    border: 1px solid #cccccc;
}

.table-grid > thead > tr > th
{
    padding-top: 4px;
    padding-bottom: 4px;
}

.table-grid > thead > tr > th,
.table-grid > tbody > tr > td
{

    padding-left: 8px !important;
}

.table-actions{
    display: flex;
    justify-content: start;
}

.table-actions > a, .table-actions > button
{
    font-size: 18px;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 20%;
    padding-right: 3px !important;
}

.table-wrapper:before{
    content: 'please wait...';
}
