@use '../core/styles/common/tokens' as *;

@use './table-theme' as *;

.kbq-table {
    border-spacing: 0;

    & > thead,
    & > tbody,
    & > tfoot {
        & > tr {
            & > th,
            & > td {
                padding: {
                    top: var(--kbq-table-size-row-padding-vertical);
                    right: var(--kbq-table-size-row-padding-horizontal);
                    bottom: var(--kbq-table-size-row-padding-vertical);
                    left: var(--kbq-table-size-row-padding-horizontal);
                }

                vertical-align: baseline;
                text-align: left;
            }
        }
    }

    & > thead {
        & > tr > th {
            border-bottom-width: var(--kbq-table-size-border-width);
            border-bottom-style: solid;
        }
    }

    .kbq-table-cell_has-button {
        padding-top: var(--kbq-size-xxs);
        padding-bottom: var(--kbq-size-xxs);
    }
}

.kbq-table.kbq-table_bordered {
    & > tbody > tr {
        & th,
        & td {
            border-bottom-width: var(--kbq-table-size-border-width);
            border-bottom-style: solid;
        }
    }
}

.kbq-table:not(.kbq-table_bordered) {
    & > tbody > tr {
        & > td:first-child {
            border-top-left-radius: var(--kbq-size-m);
            border-bottom-left-radius: var(--kbq-size-m);
        }

        & > td:last-child {
            border-top-right-radius: var(--kbq-size-m);
            border-bottom-right-radius: var(--kbq-size-m);
        }

        &:first-child {
            & > td:first-child {
                border-top-left-radius: 0;
            }

            & > td:last-child {
                border-top-right-radius: 0;
            }
        }
    }
}

@include kbq-table-theme();
@include kbq-table-typography();
