table {
    border-collapse: collapse;
}

tr {
    padding: 1rem 0 0 0;
}

tr:first-child {
    padding: 0;
}


td {
    /* padding-left: 1rem; */
    padding: .1rem .5rem .2rem .5rem;
    vertical-align: top;
}

.vcenter {
    vertical-align: middle;
}

/* Edge cells of a table with no outer vertical line (classes emitted by
   table.py): the outer padding is dropped so the cell text aligns with
   the text margin.  With an outer line the padding stays -- text against
   a border looks worse than text inset from a margin.  The tex
   counterpart is @{} in the column spec. */
.Fl {
    padding-left: 0;
}

.Fr {
    padding-right: 0;
}
.line_top {
    border-top: 1px black solid;
}

.line_bottom {
    border-bottom: 1px black solid;
}

.pad_top {
    padding-top: .3rem;
}

.pad_bottom {
    padding-bottom: .3rem;
}

:root {
    --cell-border:  1px black solid;
}

.Bt {
    border-top: var(--cell-border);
}

.Br {
    border-right: var(--cell-border);
}        

.Bb {
    border-bottom: var(--cell-border);
}

.Bl {
    border-left: var(--cell-border);
}


.Hl {
    text-align: left;
}

.Hc {
    text-align: center;
}

.Hr {
    text-align: right;
}

/* A cell of a 'fit' column mixed with sized columns: nowrap floors the
   column at its widest entry (the tex \widthof semantics).  In a
   full-width table (fractions/'*') the Wpct 1% width is added -- the
   classic shrink idiom, so the column survives surplus distribution and
   the extra window width flows to the sized columns.  In a content-sized
   'fill' table Wpct must NOT be used: a percentage cell blows an
   auto-width table up to full width. */
.Wfit {
    white-space: nowrap;
}

.Wpct {
    width: 1%;
}

.cell_arrow {
    padding: 1rem;
    font-size: 1.5rem;
    color: rgb(25%,25%,25%);
}
