table {
    width          : 100%;
    margin         : 0 auto;
    border-collapse: separate;
    border-spacing : var(--margin-xs);
    clear          : both;
    border         : var(--border-thin) solid var(--univ-primary);
}

table:has(> caption:first-child) {
  border-top: none;
}

th {
    position        : relative;
    text-align      : left;
    background-color: var(--main-bg);
}

thead>tr>th::after {
    content         : "";
    display         : block;
    position        : absolute;
    border-bottom   : var(--border-thin) solid var(--univ-primary);
    width           : 100%;
    bottom          : var(--n-margin-xs);
    padding-bottom  : var(--margin-xs);
    background-color: var(--main-bg);
}

td {
    border-top: var(--border-thin) solid var(--univ-primary);
    padding   : var(--margin-md) 0 var(--margin-xxs) 0;
}

td>:first-child,
th>:first-child {
    margin-top: 0;
}

td>:last-child,
th>:last-child {
    margin-bottom: 0;
}

td:empty {
    padding: 0;
}

tr:first-child>td {
    border-top : none;
    padding-top: var(--margin-xxs);
}

thead~tbody>tr:first-child>td {
    padding-top: var(--margin-md);
}

caption {
    border       : var(--border-thin) solid var(--univ-primary);
    border-bottom: none;
    margin-top   : var(--margin-xl);
    text-align   : left;
    padding      : var(--margin-xs);
    font-weight  : bold;
    font-size    : var(--font-size-lg);
    color        : var(--univ-primary);
}