table {
    border-collapse: collapse;
    margin: 1em auto 2em;
    margin-left: auto;
    margin-right: auto;
    border: solid 0.15em gray;
}

table:has(> colgroup.main) {
    border: none;
}

table > colgroup.main {
    border: solid 0.15em gray;
}

table:has(> colgroup.weightless) {
    position: relative;
}

table:has(> colgroup > col.anchor) {
    left: -0.9em;
}

table th.anchor {
    padding: 0;
    border-top: transparent;
    border-left: transparent;
    border-bottom: transparent;
    background-color: transparent;
    width: 1.8em;
    opacity: 0;
}

table th.anchor a {
    display: block;
    text-align: center;
}

table tr:hover .anchor {
    opacity: 0.2;
}

table tr .anchor:hover {
    opacity: revert;
}


table:has(.direct-link) th.name a {
    padding-right: 0.2em;
}

table th.direct-link {
    background-color: #E0E0E0;
    border-left: hidden;
}

table th.direct-link a {
    padding-left: 0.2em;
    padding-right: 0.4em;
}

table th.direct-link a:where(:not([href]:hover)) {
    opacity: 0.2;
}



table th.name {
    text-align: end;
}


table th a[href]:is(:hover, :focus) {
    background-color: transparent;
    text-decoration: underline;
}


:is(table, colgroup).sparse {
    background-color: #ECECEC;
    background-image: url("images/not-applicable.svg");
    background-repeat: repeat;
    background-position: top left;
    background-size: auto auto;
    background-attachment: scroll;
}

table:is(.sparse, :has(> colgroup.sparse)) .not-applicable {
    color: transparent;
    background-color: transparent;
}


table th {
    white-space: nowrap;
}

@media (max-width: 34em) {
    table th {
        white-space: initial;
    }
}

table :is(th, td) > a:only-child {
    text-decoration: none;
}

table th.supercolumn {
    text-align: center;
}

table table {
    margin-top: 0;
    margin-bottom: 0;
}

table td.subdivided {
    padding: 0;
}

table p {
    margin: 0.5em;
}

table :is(ol, ul) {
    margin: 0.5em 1em;
}

table :is(th, td) > :is(ol, ul):only-child {
    margin: 0;
}


table > :is(thead, tbody) > tr > th.horizontal-grouping-header a {
    text-align: center;
    font-size: xx-large;
    padding-top: 0.25em;
    padding-bottom: 0.25em;
}

table > thead > tr:last-child > th {
    vertical-align: bottom;
}

table > tbody > tr > :is(th, td) > div:only-child {
    position: relative;
    padding: 0;
    margin: 0;
}

th {
    text-align: initial;
    background-color: #E0E0E0;
}

th p:last-child {
    margin-bottom: 0;
}

td {
    background-color: #ECECEC;
}

td, th {
    border: solid thin lightgray;
    padding: 0.3em 0.6em;
}

table tr > th:first-child {
    text-align: end;
}

table tr > th.library-name {
    text-align: initial;
}
