/**
 * Force the jacket image column to consume a consistent amount of
 * horizontal space, while allowing some room for the browser to
 * render the correct aspect ratio.
 */
.record-jacket-div {
    width: 120px;
}

.record-jacket-div img {
    height: 100%;
    max-height: 158px;
    max-width: 100px;
}

.shelving-locations {
    margin-inline-start: calc(var(--bs-gutter-x) * .5);
    padding-inline-start: 0;
    width: auto;
}

[role="region"][aria-labelledby][tabindex]:focus-visible table {
    outline: 2px solid var(--bs-primary);
    outline-offset: 5px;
}

.shelving-locations table.table {
    border: 1px solid rgb(222, 226, 230);
    caption-side: top;
    margin-block-start: 1rem;
    table-layout: auto;
    white-space: normal;
    width: revert;
}

table caption {
    color: var(--bs-body-color);
    font-weight: bold;
    caption-side: top;
}

.shelving-locations .table> :not(:first-child) {
    border-top: revert;
}

table th,
table td {
    padding: .2rem 1rem .2rem .2rem;
}

table.compact th,
table.compact td {
    line-height: 1.4;
    padding: .1rem .6rem .1rem .1rem;
}

table.wide th,
table.wide td {
    padding: .5rem 1rem .5rem .5rem;
}

table thead th {
    border-bottom: 1px solid var(--grid-borders);
}

table th {
    background-color: var(--grid-header-row);
    font-weight: 600;
    vertical-align: bottom;
}

table td {
    vertical-align: top;
}

.org-unit,
.callnumber,
.timestamp {
    font-variant-numeric: tabular-nums lining-nums;
}

@media (min-width: 640px) {

    /* pad left with the jacket column (120px) plus result number and checkbox */
    /* use margin instead of padding for sensible :focus-visible outline */
    .shelving-locations {
        margin-inline-start: calc(120px + 3rem);
        padding: 0;
    }
}

@media (max-width: 480px) {

    .shelving-locations table.table,
    .shelving-locations table caption,
    .shelving-locations table tbody {
        border: none;
        display: block;
        width: 100%;
    }

    /* emulate .visually-hidden */
    .shelving-locations table thead {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        padding-right: 0px;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .shelving-locations table tr {
        align-items: flex-start;
        border: none;
        display: flex;
        flex-wrap: wrap;
        gap: 0 1ch;
        padding: 0 0 1rem;
    }

    .shelving-locations table th,
    .shelving-locations table td {
        background: none;
        border: none;
        display: inline-block;
        flex-basis: auto;
        flex-grow: 0;
        padding: 0;
    }

    .shelving-locations table .callnumber {
        flex-basis: 100%;
    }

    .shelving-locations table .due-date span:before {
        content: attr(title);
        display: inline-block;
        margin-inline-start: 2ch;
        margin-inline-end: 1ch;
    }
}
.bib-field-title {
    font-size: .88rem;
    font-weight: inherit;
    margin: 0;
}

.bib-title-link {
    font-weight: bold;
}

.bib-author-link {
    font-weight: normal;
    display: block;
}

.no-copies-transcendant {
    background-color: rgba(var(--bs-warning-rgb), .2);
    color: var(--bs-dark);
}

.no-copies {
    background-color: rgba(var(--bs-info-rgb), .2);
    color: var(--bs-dark);
}

.dropdown-menu h4 {
    font-weight: 600;
    padding: 0 0.5rem;
}
