table.cache {
    position: relative;
    border-collapse: collapse;
}
table.cache td {
    position: relative;
    border: 1pt solid black; text-align: center; vertical-align: middle;
    padding: 1pt 2pt; font-family: monospace;
    height: 1.5em;
}
table.cache tr.toplab td { /* Top (label) row style. */
    border: none;
    vertical-align: bottom;
    padding: 0; padding-bottom: 2pt;
    font-family: roman;
}
table.cache td.llab { /* Left lab. */
    border: none;
    text-align: right;
    padding: 0; padding-right: 2pt;
}
table.cache td.contbyte { /* Content byte. */
    width: 2em;
}
table.cache td.rgry { /* Border left and right */
    border-right: 1pt solid #aaffaa;
}
table.cache td.lgry {
    border-left: 1pt solid #aaffaa;
}
table.cache td.desc {
    border: none;
    text-align: left;
    padding-left: 5pt;
    font-style: italic;
    white-space: nowrap;
}
table.cache td.test { background-color: blue; }

/* Classes for marking cells. */
td.lastref { }

.state_cstore { background-color: #55aa55; } /* Stored from CPU */
.state_mstore { background-color: #55aabb; } /* Brought from mem by store. */
.state_fetch { background-color: #ffaa55; }  /* Brought from mem by fetch. */
span.keycolor { padding-left: 10pt; padding-right: 10pt; }

td.lastref {
    /* border: 3pt solid red; */
    z-index: 10;
    outline: 2pt solid red;
}
