/* Fill is the model match. Lean colour is proof evidence; Blueprint blue identifies its route. */
:root { --paper-result-square-size: 16px; }
.pv-square {
  --pv-fill: #334155; --pv-border: #334155;
  display: inline-block; position: relative; flex: 0 0 auto;
  width: 13px; height: 13px; box-sizing: border-box;
  border: 1.5px solid var(--pv-border); border-radius: 1px;
  color: var(--pv-border); background: #fff;
  font: 650 10px/10px var(--sans, system-ui); text-align: center;
}
.pv-route-lean.pv-proof-proved { --pv-fill: #63b58a; --pv-border: #216748; }
.pv-route-lean.pv-proof-own { --pv-fill: #ef476f; --pv-border: #a91d42; }
.pv-route-lean.pv-proof-inherited { --pv-fill: #df8a16; --pv-border: #92540c; }
.pv-route-lean:is(.pv-proof-unknown,.pv-proof-none) { --pv-fill: #b5c0cd; --pv-border: #64748b; }
.pv-route-blueprint { --pv-fill: #4f6fb5; --pv-border: #36558e; }
.pv-match-exact { background: var(--pv-fill); }
.pv-match-partial { background: linear-gradient(90deg, var(--pv-fill) 50%, #fff 50%); }
.pv-match-none, .pv-match-related { border-color: #64748b; }
.pv-route-blueprint:is(.pv-match-none,.pv-match-related) { border-color: var(--pv-border); }
.pv-route-lean.pv-proof-unknown { border-style: dotted; }
.pv-square.pv-match-related { border-style: dashed; }
.pv-square.pv-match-none { border-style: solid; }
.pv-related-source { border: 0; padding: 0; background: transparent; color: #475569; font: inherit; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-color: #c1cad7; text-underline-offset: 3px; overflow-wrap: anywhere; }
.pv-related-source:hover { color: #243c67; text-decoration-color: #64748b; }
.pv-related-source:focus-visible { outline: 2px solid #45689e; outline-offset: 2px; }
.pv-related-source-label { display: flex; align-items: baseline; gap: 7px; padding: 5px 0 2px; color: #64748b; font: 10.5px/1.4 var(--sans,system-ui); }
.pv-related-source-label .pv-square { align-self: center; }
.pv-route-lean.pn-flip.pv-before-proved { --pv-fill: #63b58a; --pv-border: #216748; }
.pv-route-lean.pn-flip.pv-before-own { --pv-fill: #ef476f; --pv-border: #a91d42; }
.pv-route-lean.pn-flip.pv-before-inherited { --pv-fill: #df8a16; --pv-border: #92540c; }
.pv-route-lean.pn-flip:is(.pv-before-none,.pv-before-unknown) { --pv-fill: #b5c0cd; --pv-border: #64748b; }
.pv-square.pv-match-pending, .pv-square.pv-match-uncertain, .pv-square.pv-match-realign { background: #fff; }
/* The list has 6 px of top padding: stick across it, so no row shows above the header. */
.pv-nav-summary { position: sticky; top: -6px; z-index: 3; margin-top: -6px; padding: 8px 18px 7px 10px; background: #fafafa; }
.pv-nav-summary .pn-head { grid-template-columns: minmax(0,1fr) 72px; margin: 0; }
.pv-nav-summary .pn-columns { grid-template-columns: 28px 44px; font-size: 9px; }
/* Compact section/result navigation, restored before the Structure detail/filter experiment. */
.pv-entry-select { display: block; margin: 0; padding: 0; border: 0; background: none; color: #475569; font-family: inherit; font-size: .82rem; line-height: 1.35; text-align: left; cursor: pointer; }
.pv-entry-select:focus-visible { outline: 2px solid #334155; outline-offset: 2px; }
.pv-structure-route { display: flex; align-items: center; justify-content: center; width: 24px; height: 20px; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.pv-structure-route:disabled { opacity: 1; cursor: default; }
.pv-structure-route:not(:disabled):hover .pv-square { outline: 1px solid #334155; outline-offset: 2px; }
.pv-structure-route:focus-visible { outline: none; }
.pv-structure-route:focus-visible .pv-square { outline: 2px solid #334155; outline-offset: 2px; }
.paper-entry-item { margin: 0; border: 0; border-radius: 0; }
.tree-row.paper-entry-row { min-height: 24px; padding: 2px 8px; border-left-width: 2px; }
.paper-entry-row .paper-tree-line { min-height: 20px; grid-template-columns: minmax(0,1fr) 72px; gap: 6px; }
.paper-entry-row.selected { background: #edf0f3; border-left-color: #334155; }
.paper-section-item > .paper-section-row { padding-top: 4px; padding-bottom: 2px; margin-top: 4px; }
.paper-section-row .paper-section-name { font-size: 13px; color: #4b5563; font-weight: 500; }
.tree-container:has(.pv-nav-summary) { scrollbar-gutter: stable; }
.pv-nav-count { color: var(--muted); font-size: 9px; margin-left: 6px; }
.paper-section-row .pv-section-count { font-size: 10px; color: var(--muted); }
.pv-nav-summary .pn-columns, .paper-entry-row .pn-marks { width: 72px; grid-template-columns: 36px 36px; }
.paper-entry-row .pn-marks { justify-items: center; }
.paper-entry-row .pv-square { width: var(--paper-result-square-size); height: var(--paper-result-square-size); font-size: 10px; line-height: 13px; }
.paper-entry-row:focus-visible { outline: 2px solid #334155; outline-offset: -2px; }
.paper-entry-row.selected.suggested { border-left-style: dashed; }
.tree-row:is(.pn-changed-proof,.pn-changed-model) { border-left-color: #64748b; }
/* Coverage mosaic: one column per result in paper order, Lean over Blueprint. */
.pv-coverage-overview { padding: 4px 10px 3px; min-width: 0; border-bottom: 1px solid #e8ebef; }
.pv-matrix-scroll { min-width: 0; overflow-x: auto; scrollbar-width: thin; padding: 2px 0; }
.pv-matrix { display: grid; grid-template-columns: 54px repeat(var(--pv-items), minmax(calc(var(--paper-result-square-size) + 4px),1fr)); align-items: center; gap: 3px 0; min-width: calc(54px + var(--pv-items) * (var(--paper-result-square-size) + 4px)); }
.pv-matrix-label { font-size: 9px; font-weight: 600; color: #334155; }
.pv-label-blueprint, .pv-facet-label-blueprint { color: #36558e; }
/* Marker size stays equal to Structure at every pane width. */
.pv-matrix-cell { display: flex; align-items: center; justify-content: center; min-width: 0; height: calc(var(--paper-result-square-size) + 4px); margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.pv-matrix-cell .pv-square { display: flex; align-items: center; justify-content: center; width: var(--paper-result-square-size); height: var(--paper-result-square-size); font-size: 10px; line-height: 1; }
.pv-matrix-cell:hover .pv-square { box-shadow: 0 0 0 2px #e2e8f0; }
.pv-matrix-cell.active .pv-square { outline: 1.5px solid #263244; outline-offset: 1px; }
.pv-matrix-cell.outside-filter { opacity: .28; }
.pv-matrix-cell:focus-visible { outline: none; }
.pv-matrix-cell:focus-visible .pv-square { outline: 2px solid #334155; outline-offset: 1px; }
/* Coverage filters have their own strip above the column headings. */
.pv-coverage-shell { --pv-coverage-columns: minmax(95px,.5fr) minmax(0,1fr) minmax(0,1fr); grid-template-rows: auto minmax(0,1fr); }
.pv-coverage-shell .paper-coverage-table { grid-row: 2; grid-template-rows: auto auto minmax(0,1fr); }
.pv-coverage-filters { display: grid; align-items: stretch; padding: 0; border-bottom: 1px solid #e5eaf0; background: #f8fafc; overflow: hidden; }
.pv-coverage-filter-group { display: flex; flex-wrap: wrap; justify-content: center; align-content: start; gap: 4px 6px; min-width: 0; padding: 7px 8px; }
/* Reserve the same native scrollbar space in filters, titles and the scrolling rows. */
.pv-coverage-shell :is(.pv-coverage-filters,.paper-coverage-table-head,.paper-coverage-rows) { scrollbar-gutter: stable; scrollbar-width: auto; }
.pv-coverage-shell .pv-table-head { padding: 0; align-items: stretch; text-transform: none; letter-spacing: 0; }
/* Column titles share a baseline below the independent filters. */
.pv-head-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0; padding: 8px; border-right: 1px solid #e5eaf0; }
.pv-head-cell:last-child { border-right: 0; }
.pv-head-label { font-size: 10px; font-weight: 700; line-height: 1.3; letter-spacing: .065em; text-transform: uppercase; color: #64748b; white-space: nowrap; }
.pv-head-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; min-width: 0; width: 100%; }
/* A small caption names each strip: the model's match or Lean's formalization. */
.pv-filter { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.pv-filter-caption { width: 100%; text-align: center; font-size: 8.5px; font-weight: 600; line-height: 1; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.pv-head-label.pv-facet-label-blueprint { color: #36558e; }
.pv-seg { display: inline-flex; flex: 0 0 auto; border: 1px solid #d5dbe2; border-radius: 3px; background: #fff; overflow: hidden; }
.pv-chip { display: inline-flex; align-items: center; gap: 3px; height: 20px; margin: 0; padding: 0 5px; border: 0; border-left: 1px solid #e6eaef; background: transparent; color: #334155; font: 500 10px/1 var(--sans, system-ui); font-variant-numeric: tabular-nums; cursor: pointer; }
.pv-chip:first-child { border-left: 0; }
.pv-chip:hover { background: #f1f4f7; }
.pv-chip:focus-visible { outline: 2px solid #334155; outline-offset: -2px; }
.pv-chip.active { background: #e4e9ef; box-shadow: inset 0 -2px #334155; font-weight: 650; }
.pv-seg.has-active .pv-chip:not(.active) { opacity: .45; }
.pv-seg.has-active .pv-chip:not(.active):hover { opacity: 1; }
.pv-chip.empty, .pv-seg.has-active .pv-chip.empty { opacity: .3; cursor: default; }
.pv-chip.empty:hover { background: transparent; }
.pv-seg-blueprint .pv-chip { color: #36558e; }
.pv-seg-blueprint .pv-chip.active { background: #e8eef8; box-shadow: inset 0 -2px #36558e; }
.pv-facet-proof-proved { color: #216748; }
.pv-facet-proof-own { color: #a91d42; }
.pv-facet-proof-inherited { color: #92540c; }
.pv-facet-proof-proved.active { background: #e6f3ec; box-shadow: inset 0 -2px #216748; }
.pv-facet-proof-own.active { background: #fde9ee; box-shadow: inset 0 -2px #a91d42; }
.pv-facet-proof-inherited.active { background: #fbefdc; box-shadow: inset 0 -2px #92540c; }
.pv-filter-mark { width: 10px; height: 10px; font-size: 8px; line-height: 7px; }
.pv-coverage-shell .pv-square { width: var(--paper-result-square-size); height: var(--paper-result-square-size); font-size: 10px; line-height: 13px; }
.pv-coverage-shell :is(.pv-coverage-filters,.paper-coverage-table-head,.paper-coverage-row) { grid-template-columns: var(--pv-coverage-columns) !important; }
.pv-coverage-shell .paper-coverage-row { grid-template-rows: auto auto auto; row-gap: 6px; min-height: 43px; background: #fff; }
.pv-coverage-shell .paper-coverage-row:hover { background: #f8fafc; }
.pv-coverage-shell .paper-coverage-row.selected { background: #f1f5f9; box-shadow: inset 3px 0 #334155; }
.pv-coverage-shell .paper-coverage-cell { grid-row: 1 / span 3; grid-template-rows: subgrid; grid-template-columns: max-content minmax(0,1fr); column-gap: 12px; padding: 9px 8px; font-size: 10.5px; }
.pv-coverage-shell .paper-coverage-cell-item { grid-template-rows: none; grid-template-columns: minmax(0,1fr); gap: 4px; }
.pv-coverage-shell .paper-coverage-route-card { display: contents; }
.pv-coverage-shell .paper-coverage-change { grid-column: 1 / -1; grid-row: 4; }
.pv-coverage-shell .paper-coverage-item-title-row strong { font-size: 10.5px; }
.pv-route-field { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; column-gap: 12px; align-items: start; min-width: 0; }
.pv-route-label { color: #708198; font-size: 9px; line-height: 1.45; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; padding-top: 1px; }
.pv-route-value { min-width: 0; line-height: 1.4; overflow-wrap: anywhere; }
.pv-route-status { grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: minmax(0,1fr) var(--paper-result-square-size) minmax(0,1fr); align-items: center; gap: 6px; font-size: 10px; line-height: 1.25; min-width: 0; }
.pv-route-status .pv-square { grid-column: 2; grid-row: 1; justify-self: center; align-self: center; display: flex; align-items: center; justify-content: center; }
.pv-route-check { grid-column: 1; grid-row: 1; text-align: right; color: #64748b; }
.pv-route-match { grid-column: 3; grid-row: 1; text-align: left; color: #475569; font-weight: 600; }
.pv-route-item { grid-row: 2; }
.pv-route-items { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; }
.pv-route-items > .pv-route-target { flex: 1 1 60px; min-width: 0; }
.pv-inline-lean { display: inline-flex; justify-content: flex-end; align-items: baseline; flex: 0 1 auto; gap: 5px; min-width: 0; max-width: 100%; margin-left: auto; text-align: right; }
.pv-linked-list { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px 6px; min-width: 0; }
.pv-route-target { font: 10.5px/1.4 var(--sans,system-ui); overflow-wrap: anywhere; }
.pv-route-target-blueprint { color: #36558e; }
.pv-linked-target { display: inline-block; color: #475569; overflow-wrap: anywhere; }
.pv-route-empty { color: #94a3b8; }
.pv-route-check:is(.pv-proof-text-proved,.pv-proof-text-own,.pv-proof-text-inherited) { font-weight: 600; }
.pv-proof-text-proved { color: #216748; }
.pv-proof-text-own { color: #a91d42; }
.pv-proof-text-inherited { color: #92540c; }
.pv-route-reason { grid-row: 3; margin: 0; color: #475569; text-align: left; }
.pv-route-reason > .pv-route-label { justify-self: start; }
.pv-route-reason p { margin: 0; }
.pv-coverage-shell .paper-coverage-rows { padding-bottom: var(--pv-coverage-tail,12px); }
.pv-coverage-shell .paper-coverage-item-meta { font-size: 9px; }
.pv-coverage-shell .paper-coverage-row:focus-visible { outline: 2px solid #334155; outline-offset: -2px; }
/* Folded, Coverage keeps its mosaic; Explore adds the filters and the table. */
.paper-combined-split.paper-analysis-collapsed { grid-template-rows: minmax(0,1fr) 0 auto; }
.paper-analysis-collapsed .pv-coverage-shell .paper-coverage-table { display: none; }
.paper-html-status-wrap.pv-html-status { display: inline-flex; align-items: center; max-width: 100%; }
.pv-html-status .paper-html-status-text { display: inline-flex; align-items: center; gap: 5px; color: #334155 !important; border: 1px solid #dce2e8 !important; background: #fff !important; font: 10px/1.35 var(--sans,system-ui); white-space: normal; padding: 3px 5px; }
.pv-html-status .paper-html-status-text .pv-square { width: 12px; height: 12px; }
.pv-legend-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; font-size: 11px; }
.pv-legend-line > span { display: inline-flex; align-items: center; gap: 5px; }
/* Paper result header: one attention cue and an independent Blueprint disclosure. */
.paper-html-item-topline { align-items: center; gap: 8px 12px; }
.paper-marker-controls { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; min-width: 0; max-width: 100%; }
.paper-marker-controls .paper-html-status-wrap { margin-left: 0; }
.paper-marker-controls .pv-html-status::after { display: none; }
.paper-marker-controls .paper-html-status-text,
.paper-marker-controls .paper-html-blueprint-button { display: inline-flex; align-items: center; gap: 7px; min-height: 28px; border-radius: 5px; padding: 5px 8px; font: 500 10.5px/1.25 var(--sans,system-ui); cursor: pointer; white-space: nowrap; }
.paper-marker-controls .paper-html-status-text:hover { border-color: #a5b3c5 !important; background: #f8fafc !important; }
.paper-marker-controls .paper-html-status-text:focus-visible { outline: 2px solid #45689e; outline-offset: 2px; }
.paper-marker-controls .paper-html-status-text .pv-square,
.paper-marker-controls .paper-html-blueprint-button .pv-square { width: var(--paper-result-square-size); height: var(--paper-result-square-size); }
.paper-marker-controls .paper-html-blueprint-button { color: #36558e; border: 1px solid #cfd9ed; background: #f8faff; }
.paper-marker-controls .paper-html-blueprint-button.active { background: #eaf0fc; border-color: #708cc5; }
.pv-marker-chevron { color: #8491a3; font-size: 11px; }
.paper-html-blueprint-button[aria-expanded="true"] .pv-marker-chevron { transform: rotate(180deg); }
.paper-html-item:has(.paper-marker-controls) .paper-html-item-main { padding-bottom: 15px; }
.pv-marker-popover { position: fixed; z-index: 1000; right: auto; width: min(420px,calc(100vw - 16px)); max-height: none; overflow: visible; display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; padding: 13px; color: #475569; font: 11px/1.5 var(--sans,system-ui); white-space: normal; }
.pv-marker-popover > * { min-width: 0; max-width: 100%; }
.pv-marker-popover:not([hidden]) { opacity: 1; pointer-events: auto; transform: none; }
.pv-marker-popover[hidden] { display: none !important; }
.pv-marker-heading { font-weight: 650; font-size: 12px; color: #334155; overflow-wrap: anywhere; }
.pv-marker-heading code { font-size: 11px; }
.pv-marker-evidence { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 7px 10px; padding-bottom: 10px; border-bottom: 1px solid #e5eaf0; font-size: 10.5px; }
.pv-marker-evidence > span { color: #7c8a9f; }
.pv-marker-evidence > strong { min-width: 0; text-align: right; color: #334155; font-weight: 600; overflow-wrap: anywhere; }
.pv-marker-explanation { overflow-wrap: anywhere; }
.pv-marker-origin { font-size: 9px; color: #8895a7; }
.pv-marker-inspect { justify-self: start; border: 1px solid #d5dce7; border-radius: 4px; background: #f8fafc; color: #334155; padding: 5px 8px; font: 10px var(--sans,system-ui); cursor: pointer; }
.pv-marker-inspect:focus-visible { outline: 2px solid #45689e; outline-offset: 2px; }
.pv-marker-blueprint-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding-right: 20px; color: #36558e; font: 11px/1.4 var(--sans,system-ui); }
.pv-marker-blueprint-links { margin: 8px 0 12px; color: #7a899d; font: 10px/1.5 var(--sans,system-ui); overflow-wrap: anywhere; }
.pv-marker-blueprint-links code { color: #475569; }
