.hash-tile { border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .6rem .8rem; height: 100%; }
.hash-tile .k { font-size: .78rem; color: var(--bs-secondary-color); }
.hash-tile .v { font-family: Consolas, "Cascadia Mono", monospace; font-size: 1.05rem; word-break: break-all; }

.fp-kv th { width: 260px; font-weight: 400; color: var(--bs-secondary-color); }
.fp-kv td { font-family: Consolas, "Cascadia Mono", monospace; font-size: .8rem; white-space: pre-wrap; word-break: break-word; }
.accordion-button .stamp { font-family: Consolas, monospace; font-size: .8rem; }
.check-detail { font-family: Consolas, monospace; font-size: .78rem; color: var(--bs-secondary-color); }

/* comparison table */
.cmp-wrap { max-height: calc(100vh - 210px); overflow: auto; background: var(--bs-body-bg); }
table.cmp { min-width: 100%; }
table.cmp th, table.cmp td { vertical-align: top; max-width: 300px; }
table.cmp td.v { font-family: Consolas, "Cascadia Mono", monospace; font-size: .78rem; word-break: break-word; }
table.cmp thead th { position: sticky; top: 0; z-index: 3; background: var(--bs-tertiary-bg); }
table.cmp tbody td:first-child, table.cmp thead th:first-child { position: sticky; left: 0; z-index: 2; min-width: 260px; max-width: 340px; background: var(--bs-body-bg); }
table.cmp thead th:first-child { z-index: 4; background: var(--bs-tertiary-bg); }
table.cmp tr.grp td { font-weight: 600; cursor: pointer; }
table.cmp tr.grp td:first-child::before { content: "+ "; color: var(--bs-secondary-color); }
table.cmp tr.grp.open td:first-child::before { content: "- "; }
table.cmp tr.kid td:first-child { padding-left: 1.6rem; color: var(--bs-secondary-color); }
