html, body {
    height: max(100vh, 100%);
}

table.table-sortable > thead > tr > th {
    cursor: pointer;
}

div.k-box {
    border-left: 2px solid black;
    border-top: 2px solid black;
    width: 15vmin;
    height: 15vmin;
}
div.k-box-end {
    border-right: 2px solid black;
}
div.k-box-bottom {
    border-bottom: 2px solid black;
}

div.keypad-button {
    width: 7vw;
    height: 7vw;
    line-height: 6vw;
    font-size: 6vw;
    text-align: center;
    vertical-align: baseline;
    margin: 2px 0 0 2px;
    padding: 1px;
    color: #198754;
    border: 1px solid #198754;

}
div.key-display {
    height: 10vw;
    line-height: 10vw;
    font-size: 10vw;
    vertical-align: baseline;
}
/* Flashing alert badge next to the Purchasing nav menu (in-app inbox needs attention). */
@keyframes kerpAlertBlink { 50% { opacity: 0.25; } }
.kerp-alert-blink { animation: kerpAlertBlink 1s ease-in-out infinite; }

/* Vendor-comms message bodies: fixed box by default, expand-in-place to full height. */
.msg-body { max-height: 18rem; overflow-y: auto; white-space: pre-wrap; }
.msg-body.expanded { max-height: none; overflow: visible; }
.msg-expand-toggle { font-size: 1.1rem; line-height: 1; text-decoration: none; }
