/* Shared by the authorised and public marketplace KSB matrices. */
.coverage-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.5rem 0; }
.coverage-metrics > div { padding: 1rem; border: 1px solid #d6dee8; border-radius: .6rem; background: #fff; }
.coverage-metrics dt { color: #43546b; font-size: .875rem; }
.coverage-metrics dd { margin: .3rem 0 0; font-size: 1.65rem; font-weight: 700; }
.coverage-view-options { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.coverage-view-options label { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.5rem; }
.ksb-matrix-scroll { max-width: 100%; max-height: 75vh; overflow: auto; isolation: isolate; border: 1px solid #b6c4d6; border-radius: .5rem; scrollbar-gutter: stable; scrollbar-width: auto; margin-bottom: 1rem; }
.ksb-matrix-scroll { scroll-padding: 6rem .5rem .5rem 16rem; }
.ksb-matrix td:focus-within { position: relative; z-index: 6; }
.ksb-matrix { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; table-layout: fixed; background: white; font-size: .875rem; }
.ksb-matrix th, .ksb-matrix td { min-width: 3rem; padding: 0; text-align: center; border-right: 1px solid #d6dee8; border-bottom: 1px solid #d6dee8; }
.ksb-matrix thead th { position: sticky; background: #edf2f8; z-index: 3; }
.ksb-matrix .ksb-group-header th { top: 0; height: 2.5rem; }
.ksb-matrix .ksb-code-header th { top: 2.5rem; height: 2.75rem; }
.ksb-matrix .ksb-module-column { position: sticky; left: 0; z-index: 2; min-width: 15rem; width: 15rem; max-width: 15rem; padding: .65rem .8rem; text-align: left; white-space: normal; overflow-wrap: anywhere; background: #f5f7fb; border-right: 2px solid #b6c4d6; }
.ksb-matrix thead .ksb-module-column { z-index: 5; background: #e3eaf4; }
.ksb-matrix small { display: block; font-size: .7rem; font-weight: 400; margin-top: .2rem; }
.ksb-matrix a { display: flex; justify-content: center; align-items: center; min-width: 3rem; min-height: 2.75rem; height: 100%; padding: .25rem; text-decoration: none; color: #174678; }
.ksb-matrix .ksb-covered { background: #e7f1fb; font-size: 1.2rem; font-weight: 700; }
.ksb-matrix .ksb-uncovered { color: #526176; background: #fff; }
.ksb-matrix .ksb-programme-gap { background: #fff2d5; color: #654600; }
.ksb-matrix tfoot td { padding: .5rem .2rem; font-weight: 700; }
.ksb-matrix .ksb-selected, .ksb-matrix a[aria-current="true"] { background: #cbdff7; box-shadow: inset 0 0 0 2px #174678; }
.ksb-matrix a:hover { background: #d8e7f8; }
.ksb-matrix-scroll:focus-visible, .ksb-matrix a:focus-visible, .mapping-details:focus { outline: 3px solid #174678; outline-offset: -3px; }
.mapping-details { scroll-margin-top: 1rem; }
.mapping-resource-group li { padding: .7rem 0; border-bottom: 1px solid #d6dee8; }
.mapping-resource-group .metadata { display: block; margin-top: .2rem; }
@media (max-width: 575.98px) {
    .coverage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ksb-matrix .ksb-module-column { min-width: 10rem; width: 10rem; max-width: 10rem; }
    .ksb-matrix .ksb-module-column { position: static; }
    .ksb-matrix-scroll { scroll-padding-inline-start: .5rem; }
}
@media print {
    .ksb-matrix-scroll { max-height: none; overflow: visible; }
    .ksb-matrix thead th, .ksb-matrix .ksb-module-column { position: static; }
}
