/* ScaleLounge portals V2: client AI Visibility and Results (V2 pages 11 to 14 and the phone on
   page 18). Scoped under html.pv-app. Every colour is a token, so both themes and every contrasting
   panel read correctly.

   The first section (pvx-) is the Insights kit from screens/client/insights-kit.js: the pieces only
   these two screens use. Selects, the period picker and icons come from the shared layer. */

/* ==== Insights kit (pvx-) ===================================================================== */

/* The filter selects (the shared .pv-select) carry a slightly smaller label here. */
html.pv-app .pvx-selectfield .pv-select__label {
  font-size: 14px;
}

/* Horizontal bars: a table whose second column draws the bar beside the value. */
html.pv-app .pvx-hbars {
  width: 100%;
  border-collapse: collapse;
}

html.pv-app .pvx-hbars th,
html.pv-app .pvx-hbars td {
  padding: 7px 0;
  vertical-align: top;
}

html.pv-app .pvx-hbars__label {
  width: 1%;
  padding-right: 22px !important;
  color: var(--pv-text);
  font-size: 15px;
  font-weight: 500;
  line-height: 28px;
  text-align: left;
  white-space: nowrap;
}

html.pv-app .pvx-hbars__line {
  min-height: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(56px, auto);
  align-items: center;
  column-gap: 16px;
}

html.pv-app .pvx-hbars__track {
  position: relative;
  display: block;
  height: 12px;
  border-radius: 6px;
  background: var(--pv-surface-muted);
  cursor: default;
}

/* A 44px tall hit area for the tooltip on touch screens; the bar itself stays 12px. */
html.pv-app .pvx-hbars__track::before {
  content: '';
  position: absolute;
  inset: -16px 0;
}

html.pv-app .pvx-hbars__track.is-empty {
  background: repeating-linear-gradient(135deg, var(--pv-surface-muted) 0 6px, transparent 6px 12px);
  box-shadow: inset 0 0 0 1px var(--pv-border-subtle);
}

html.pv-app .pvx-hbars__fill {
  display: block;
  height: 100%;
  border-radius: 6px;
  background: var(--pv-chart-bar);
}

html.pv-app .pvx-hbars__value {
  color: var(--pv-text);
  font-size: 15px;
  font-weight: 600;
  text-align: left;
}

html.pv-app .pvx-hbars__note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin-top: 6px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pvx-hbars__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 600;
}

/* A one-line notice for a whole view (in progress, stale, failed). */
html.pv-app .pvx-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  padding: 14px 18px;
  border: 1px solid var(--pv-border);
  border-radius: 12px;
  background: var(--pv-surface-muted);
  color: var(--pv-text);
}

html.pv-app .pvx-banner__text {
  flex: 1 1 260px;
  min-width: 0;
}

/* "About these numbers". */
html.pv-app .pvx-defs__period {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -4px 0 16px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pvx-defs__period .pv-icon,
html.pv-app .pvx-defs__note .pv-icon {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pvx-defs__table td,
html.pv-app .pvx-defs__table tbody th {
  font-size: 15px;
  line-height: 1.45;
  vertical-align: top;
}

html.pv-app .pvx-defs__table td {
  color: var(--pv-text-secondary);
}

html.pv-app .pvx-defs__table .pvx-defs__metric {
  color: var(--pv-text);
  font-weight: 600;
}

html.pv-app .pvx-defs__note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--pv-border-subtle);
  color: var(--pv-text-secondary);
  font-size: 15px;
}

/* ==== Shared by both screens ================================================================== */
html.pv-app .pv-caiv,
html.pv-app .pv-cres {
  display: grid;
  gap: var(--pv-gap);
}

html.pv-app .pv-caiv-latest,
html.pv-app .pv-cres-period {
  display: inline-flex;
}

html.pv-app .pv-caiv-latest__none {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  color: var(--pv-text-secondary);
  font-size: 15px;
  font-weight: 500;
}

/* The built-in "View as table" toggle sits at the right under each chart. */
html.pv-app .pv-caiv__chart .pv-chart,
html.pv-app .pv-cres__plot .pv-chart {
  display: grid;
}

html.pv-app .pv-caiv__chart .pv-chart__toggle,
html.pv-app .pv-cres__plot .pv-chart__toggle {
  justify-self: end;
  margin-top: 2px;
}

/* ==== AI Visibility: Overview ================================================================= */
html.pv-app .pv-caiv__tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--pv-gap);
}

html.pv-app .pv-caiv__tiles--first {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

/* Live (slice 24): a figure Katie hides, or a business with no Google Analytics, leaves fewer tiles. */
html.pv-app .pv-caiv__tiles--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

html.pv-app .pv-caiv__tiles--1,
html.pv-app .pv-caiv__tiles--alone {
  grid-template-columns: minmax(0, 1fr);
}

/* The two tiles after the lead: in the tile row from 600px up, after View evidence on phones
   (page 18). ai-visibility.js draws them in both places; one is always display: none. */
html.pv-app .pv-caiv__tilegroup {
  display: contents;
}

html.pv-app .pv-caiv__aftertiles {
  display: none;
}

@media (max-width: 599px) {
  html.pv-app .pv-caiv__tilegroup {
    display: none;
  }
  html.pv-app .pv-caiv__aftertiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}

html.pv-app .pv-caiv__first > .pv-empty {
  height: 100%;
}

html.pv-app .pv-caiv-tile {
  flex-direction: row;
  align-items: stretch;
  gap: 16px;
  min-height: 162px;
}

html.pv-app .pv-caiv-tile__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

html.pv-app .pv-caiv-tile .pv-metric__value {
  font-size: 44px;
}

html.pv-app .pv-caiv-tile .pv-metric__value.pv-caiv-tile__word {
  font-size: 30px;
  line-height: 1.15;
  font-family: var(--pv-font-heading);
  font-weight: 600;
  letter-spacing: -0.02em;
}

html.pv-app .pv-caiv-tile__ring {
  flex: none;
  align-items: center;
}

html.pv-app .pv-caiv__mid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: var(--pv-gap);
}

html.pv-app .pv-caiv__trend .pv-card__head,
html.pv-app .pv-caiv__improve .pv-card__head {
  margin-bottom: 14px;
}

html.pv-app .pv-caiv__denoms {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(64px, 1fr));
  gap: 10px 12px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--pv-border-subtle);
  list-style: none;
  font-size: 14px;
}

html.pv-app .pv-caiv__denom {
  display: grid;
  align-content: start;
  gap: 1px;
}

html.pv-app .pv-caiv__denom-date {
  color: var(--pv-text-meta);
}

html.pv-app .pv-caiv__denom-val {
  color: var(--pv-text);
  font-size: 15px;
}

html.pv-app .pv-caiv__denom-note {
  color: var(--pv-text-meta);
}

/* From 600px the denominators live in the chart's tooltips, its table and the caption, so the
   chart card keeps the page 11 height and Recent checks stays in view. */
@media (min-width: 600px) {
  html.pv-app .pv-caiv__trend .pv-caiv__denoms {
    display: none;
  }
}

html.pv-app .pv-caiv__caption {
  margin-top: 10px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv__improve .pv-card__body {
  display: flex;
  flex-direction: column;
}

html.pv-app .pv-caiv__improvelist {
  list-style: none;
}

html.pv-app .pv-caiv__improveitem {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-caiv__improveitem:first-child {
  padding-top: 4px;
  border-top: 0;
}

html.pv-app .pv-caiv__improvetext {
  min-width: 0;
}

html.pv-app .pv-caiv__improvetitle {
  font-family: var(--pv-font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
}

html.pv-app .pv-caiv__improvesum {
  margin-top: 4px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv__improveitem .pvx-state {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pv-caiv__improvefoot {
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-caiv__recent .pv-card__head {
  margin-bottom: 14px;
}

html.pv-app .pv-caiv__recenttable td {
  padding-top: 14px;
  padding-bottom: 14px;
}

html.pv-app .pv-caiv__recenttable .pv-btn--link {
  min-height: 44px;
}

html.pv-app .pv-caiv__evidence-btn {
  justify-content: flex-start;
}

/* ==== AI Visibility: Checks & evidence ======================================================== */
html.pv-app .pv-caiv-ev {
  display: grid;
  gap: 16px;
}

html.pv-app .pv-caiv-ev__filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.3fr) auto;
  align-items: end;
  gap: 14px;
}

html.pv-app .pv-caiv-ev__clearwrap {
  display: flex;
  align-items: center;
  min-height: 44px;
}

html.pv-app .pv-caiv-ev__clearwrap[hidden] {
  display: none;
}

html.pv-app .pv-caiv-ev__count {
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv-ev__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: var(--pv-gap);
}

html.pv-app .pv-caiv-ev__list {
  min-width: 0;
}

html.pv-app .pv-caiv-ev__table td,
html.pv-app .pv-caiv-ev__table th {
  vertical-align: middle;
}

html.pv-app .pv-caiv-ev__qcell {
  display: grid;
  gap: 3px;
}

html.pv-app .pv-caiv-ev__qtext {
  color: var(--pv-text);
  font-weight: 600;
  line-height: 1.35;
}

html.pv-app .pv-caiv-ev__qmeta {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-caiv-ev__model {
  white-space: nowrap;
}

html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-link {
  color: var(--pv-text-secondary);
  font-size: 15px;
  white-space: nowrap;
}

html.pv-app .pv-caiv-ev__open {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--pv-link);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

html.pv-app .pv-caiv-ev__open:hover span {
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.pv-app .pv-caiv-ev__table tr.is-selected td,
html.pv-app .pv-caiv-ev__table tr.is-selected th {
  background: var(--pv-surface-muted);
}

html.pv-app .pv-caiv-ev__table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 var(--pv-accent-text);
}

html.pv-app .pv-caiv-ev__more {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

html.pv-app .pv-caiv-ev__unsupported {
  display: grid;
  gap: 8px;
}

html.pv-app .pv-caiv-ev__unsupitem {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

/* The evidence panel (wide) and the evidence sheet (narrow) share their inner layout. */
html.pv-app .pv-caiv-evd {
  min-width: 0;
}

html.pv-app .pv-caiv-evd__title {
  margin-bottom: 16px;
}

html.pv-app .pv-caiv-evd__prompt {
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: 22px;
  border-radius: 12px;
  background: var(--pv-surface-muted);
}

html.pv-app .pv-caiv-evd__q {
  margin-top: 8px;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

html.pv-app .pv-caiv-evd__q:focus,
html.pv-app .pv-caiv-evd__q:focus-visible {
  outline: none;
  box-shadow: none;
}

html.pv-app .pv-caiv-evd__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

html.pv-app .pv-caiv-evsheet .pv-caiv-evd__pills {
  margin-top: 0;
}

html.pv-app .pv-caiv-evd__notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--pv-status-neutral-bg);
  color: var(--pv-status-neutral-text);
}

html.pv-app .pv-caiv-evd__notice .pv-icon {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pv-caiv-evd__notice strong {
  color: var(--pv-text);
}

html.pv-app .pv-caiv-evd__answer {
  margin: 18px 0 0;
  padding: 16px 18px 18px;
  border-radius: 10px;
  background: var(--pv-surface-muted);
}

html.pv-app .pv-caiv-evd__answerlabel {
  color: var(--pv-text-meta);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

html.pv-app .pv-caiv-evd__quote {
  margin: 8px 0 0;
  padding: 0;
  color: var(--pv-text);
  font-size: 16px;
  line-height: 1.55;
}

html.pv-app .pv-caiv-evd__mark {
  padding: 0 3px;
  border-radius: 3px;
  background: var(--pv-status-attention-bg);
  color: var(--pv-status-attention-text);
  font-weight: 600;
}

html.pv-app .pv-caiv-evd__h {
  margin: 22px 0 10px;
  font-family: var(--pv-font-body);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}

html.pv-app .pv-caiv-evd__sources {
  display: grid;
  gap: 12px;
}

html.pv-app .pv-caiv-evd__grouphead {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--pv-border-subtle);
  color: var(--pv-text-secondary);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

html.pv-app .pv-caiv-evd__groupcount {
  letter-spacing: 0;
}

html.pv-app .pv-caiv-evd__srclist {
  list-style: none;
}

html.pv-app .pv-caiv-evd__src {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0 2px;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-caiv-evd__src .pv-icon {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pv-caiv-evd__srctext {
  display: grid;
  min-width: 0;
}

html.pv-app .pv-caiv-evd__domain {
  overflow-wrap: anywhere;
  color: var(--pv-text);
  font-weight: 600;
}

html.pv-app .pv-caiv-evd__srctitle {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-caiv-evd__none {
  padding-top: 6px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-caiv-evd__meta {
  display: grid;
}

html.pv-app .pv-caiv-evd__metarow {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
  border-top: 1px solid var(--pv-border-subtle);
  font-size: 15px;
}

html.pv-app .pv-caiv-evd__metarow dt {
  flex: none;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-caiv-evd__metarow dd {
  margin: 0;
  min-width: 0;
  color: var(--pv-text);
  font-weight: 600;
  text-align: right;
  overflow-wrap: anywhere;
}

html.pv-app .pv-caiv-evd__disclosure {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-caiv-evd__disclosure .pv-icon {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pv-caiv-evsheet {
  width: min(640px, 100%);
}

/* ==== AI Visibility: Action plan ============================================================== */
html.pv-app .pv-caiv-plan {
  display: grid;
  gap: var(--pv-gap);
  max-width: 1180px;
}

html.pv-app .pv-caiv-plan__note {
  align-items: flex-start;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-caiv-plan__list {
  display: grid;
  gap: var(--pv-gap);
  list-style: none;
}

html.pv-app .pv-caiv-plan__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

html.pv-app .pv-caiv-plan__titles {
  min-width: 0;
}

html.pv-app .pv-caiv-plan__title {
  font-size: var(--pv-fs-card-title);
  line-height: 1.25;
}

html.pv-app .pv-caiv-plan__sum {
  margin-top: 6px;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-caiv-plan__head .pvx-state {
  flex: none;
}

html.pv-app .pv-caiv-plan__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: 28px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-caiv-plan__meta {
  display: grid;
  align-content: start;
  gap: 4px;
}

html.pv-app .pv-caiv-plan__meta > div {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 12px;
  padding: 6px 0;
  font-size: 15px;
}

html.pv-app .pv-caiv-plan__meta dt {
  color: var(--pv-text-meta);
}

html.pv-app .pv-caiv-plan__meta dd {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  color: var(--pv-text);
  font-weight: 500;
}

html.pv-app .pv-caiv-plan__meta dd .pv-icon {
  flex: none;
  margin-top: 1px;
}

html.pv-app .pv-caiv-plan__evhead {
  color: var(--pv-text-secondary);
  font-family: var(--pv-font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

html.pv-app .pv-caiv-plan__evlist {
  margin-top: 6px;
  list-style: none;
}

html.pv-app .pv-caiv-plan__ev {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 16px;
  padding: 6px 0;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-caiv-plan__ev:first-child {
  border-top: 0;
}

html.pv-app .pv-caiv-plan__ev p {
  flex: 1 1 240px;
  min-width: 0;
  color: var(--pv-text);
  font-size: 15px;
}

/* ==== AI Visibility on live data (slice 24) ==================================================== */
html.pv-app .pv-caiv-tile__note {
  margin-top: 2px;
  font-size: 14px;
  line-height: 1.4;
}

html.pv-app .pv-caiv__sample {
  align-items: flex-start;
  color: var(--pv-text-secondary);
}

/* The score: a small row under the counts, never the lead (D18). */
html.pv-app .pv-caiv__score {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 16px;
  padding: 16px 20px;
}

html.pv-app .pv-caiv__scorelabel {
  color: var(--pv-text-secondary);
  font-size: 15px;
  font-weight: 500;
}

html.pv-app .pv-caiv__scorevalue {
  color: var(--pv-text);
  font-family: var(--pv-font-heading);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

html.pv-app .pv-caiv__scorevalue.is-none {
  font-size: 17px;
}

html.pv-app .pv-caiv__scorechange {
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv__scorenote {
  flex: 1 1 100%;
  color: var(--pv-text-secondary);
  font-size: 15px;
  line-height: 1.45;
}

html.pv-app .pv-caiv__scoremethod {
  margin-left: auto;
}

html.pv-app .pv-caiv-method {
  display: grid;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
}

html.pv-app .pv-caiv-method__h {
  margin-top: 8px;
  font-family: var(--pv-font-body);
  font-size: 15px;
  font-weight: 600;
}

html.pv-app .pv-caiv-method__list {
  display: grid;
  gap: 6px;
  padding-left: 20px;
  list-style: disc;
}

html.pv-app .pv-caiv__disclosures {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding-left: 20px;
  color: var(--pv-text-secondary);
  font-size: 14px;
  line-height: 1.45;
  list-style: disc;
}

/* The questions: the overview's recent ones and the full list. */
html.pv-app .pv-caiv-q__link {
  color: var(--pv-text);
  font-weight: 600;
  text-decoration: none;
}

html.pv-app .pv-caiv-q__link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.pv-app .pv-caiv-q__table td {
  vertical-align: middle;
}

html.pv-app .pv-caiv-q__table td.pv-caiv-q__col-n,
html.pv-app .pv-caiv-q__table td.pv-caiv-q__col-last {
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv-q__table tr.is-selected td {
  background: var(--pv-surface-muted);
}

html.pv-app .pv-caiv-q__table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 var(--pv-accent-text);
}

html.pv-app .pv-caiv-ev__filters--live {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto;
}

html.pv-app .pv-caiv-q__failed {
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-caiv-q__provintro {
  margin-bottom: 12px;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-caiv-q__provlist {
  display: grid;
  gap: 14px;
  list-style: none;
}

html.pv-app .pv-caiv-q__prov {
  display: grid;
  gap: 2px;
  padding-top: 14px;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-caiv-q__prov:first-child {
  padding-top: 0;
  border-top: 0;
}

html.pv-app .pv-caiv-q__provname {
  color: var(--pv-text);
  font-weight: 600;
}

html.pv-app .pv-caiv-q__provmeta {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-caiv-q__provnote {
  color: var(--pv-text-secondary);
  font-size: 15px;
  line-height: 1.45;
}

/* The Action plan: a live improvement with only its date, and the opportunities. */
html.pv-app .pv-caiv-plan__grid--meta {
  grid-template-columns: minmax(0, 1fr);
}

html.pv-app .pv-caiv-plan__opps {
  display: grid;
  gap: 14px;
}

html.pv-app .pv-caiv-plan__oppshead {
  font-size: var(--pv-fs-card-title);
  line-height: 1.25;
}

html.pv-app .pv-caiv-plan__oppaction {
  margin-top: 12px;
  color: var(--pv-text);
  font-size: 15px;
  line-height: 1.5;
}

@container pvmain (min-width: 641px) {
  html.pv-app .pv-caiv-q__table .pv-caiv-q__col-q {
    width: 50%;
  }
  html.pv-app .pv-caiv-q__table .pv-caiv-q__col-last {
    white-space: nowrap;
  }
}

@container pvmain (max-width: 640px) {
  html.pv-app .pv-caiv-ev__filters--live {
    grid-template-columns: minmax(0, 1fr);
  }
  html.pv-app .pv-caiv__scoremethod {
    margin-left: 0;
  }
}

/* ==== Results ================================================================================= */
html.pv-app .pv-cres__tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pv-gap);
}

html.pv-app .pv-cres-tile {
  min-height: 162px;
  padding-right: 22px;
  padding-left: 24px;
}

html.pv-app .pv-cres-tile .pv-metric__value {
  font-size: 44px;
}

html.pv-app .pv-cres-tile .pv-metric__value.pv-cres-tile__word {
  font-family: var(--pv-font-heading);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

html.pv-app .pv-cres__mid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: var(--pv-gap);
}

html.pv-app .pv-cres__stack {
  display: grid;
  align-content: start;
  gap: var(--pv-gap);
  min-width: 0;
}

html.pv-app .pv-cres__chart .pv-card__head,
html.pv-app .pv-cres__platforms .pv-card__head,
html.pv-app .pv-cres__accounts .pv-card__head {
  margin-bottom: 14px;
}

html.pv-app .pv-cres__legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 16px;
  margin: -2px 0 8px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres__key {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

html.pv-app .pv-cres__swatch {
  display: inline-block;
  width: 20px;
  height: 3px;
  border-radius: 2px;
  background: var(--pv-chart-line);
}

html.pv-app .pv-cres__range {
  color: var(--pv-text-secondary);
}

html.pv-app .pv-cres__caption {
  margin-top: 6px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres__insight {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--pv-divider);
}

html.pv-app .pv-cres__insighttitle {
  font-family: var(--pv-font-body);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0;
}

html.pv-app .pv-cres__insightbody {
  margin-top: 6px;
  color: var(--pv-text-secondary);
  font-size: 17px;
  line-height: 1.5;
}

html.pv-app .pv-cres__insightby {
  margin-top: 10px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres__top .pv-card__head,
html.pv-app .pv-cres__posts .pv-card__head {
  margin-bottom: 16px;
}

html.pv-app .pv-cres__toplist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 28px;
  list-style: none;
}

html.pv-app .pv-cres__topitem {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

html.pv-app .pv-cres__topthumb {
  flex: none;
  width: 110px;
  height: 80px;
  border-radius: var(--pv-radius);
}

html.pv-app .pv-cres__toptext {
  min-width: 0;
}

html.pv-app .pv-cres__toptitle {
  font-family: var(--pv-font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
}

html.pv-app .pv-cres__topmeta {
  margin-top: 4px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres__postsnote {
  margin-top: 14px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres__posts .pv-cres__postsnote {
  margin: -6px 0 14px;
}

html.pv-app .pv-cres__posttitle {
  color: var(--pv-text);
  font-weight: 600;
}

html.pv-app .pv-cres__placements {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  list-style: none;
  font-size: 15px;
}

html.pv-app .pv-cres__placements li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Stacked on a narrow column, the placements sit under their label rather than beside it. */
@container pvmain (max-width: 640px) {
  html.pv-app .pv-cres__poststable td.pv-cres__col-place {
    flex-wrap: wrap;
  }
  html.pv-app .pv-cres__poststable .pv-cres__placements {
    flex: 1 1 100%;
    min-width: 0;
  }
}

html.pv-app .pv-cres__plname {
  color: var(--pv-text-secondary);
}

html.pv-app .pv-cres__partial {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres__sourcewrap {
  margin-top: 18px;
}

html.pv-app .pv-cres__sourcehead {
  font-family: var(--pv-font-body);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}

html.pv-app .pv-cres-sources {
  margin-top: 6px;
  list-style: none;
}

html.pv-app .pv-cres-sources__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  padding: 10px 0;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-cres-sources__item:first-child {
  border-top: 0;
}

html.pv-app .pv-cres-sources__text {
  display: grid;
  flex: 1 1 220px;
  min-width: 0;
}

html.pv-app .pv-cres-sources__name {
  color: var(--pv-text);
  font-weight: 600;
}

html.pv-app .pv-cres-sources__meta {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-sources__link {
  min-height: 44px;
  font-size: 15px;
}

/* The honest "nothing to show" card. */
html.pv-app .pv-cres-state__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 4px;
}

html.pv-app .pv-cres-state__top .pv-empty__icon {
  margin-bottom: 0;
}

/* On the muted card surface a neutral pill needs its edge to read as a label. */
html.pv-app .pv-cres-state .pvx-state {
  box-shadow: inset 0 0 0 1px var(--pv-border);
}

/* Live (slice 25): a figure nobody reports yet holds its state where the number would be. */
html.pv-app .pv-cres-tile__state {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 46px;
}

/* The state stays inside its tile (Katie, 2026-10-21: "make everything fit nicely in mobile"): on the narrowest phones
   it wraps rather than running past the tile's edge, never leaving one word alone on the last line. */
html.pv-app .pv-cres-tile__state .pv-pill {
  max-width: 100%;
  white-space: normal;
  text-wrap: pretty;
}

html.pv-app .pv-cres__postserr {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-cres__view {
  color: var(--pv-text);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ScaleLounge Impact */
html.pv-app .pv-cres-impact .pv-card__head {
  margin-bottom: 14px;
}

html.pv-app .pv-cres-impact__when {
  color: var(--pv-text-meta);
  font-size: 15px;
}

html.pv-app .pv-cres-impact__tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: 12px;
}

html.pv-app .pv-cres-impact__tile {
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--pv-surface-muted);
}

html.pv-app .pv-cres-impact__tile dd {
  margin: 0;
}

html.pv-app .pv-cres-impact__label {
  color: var(--pv-text-secondary);
  font-size: 14px;
  font-weight: 500;
}

html.pv-app .pv-cres-impact__value {
  color: var(--pv-text);
  font-size: 28px;
  line-height: 1.15;
}

html.pv-app .pv-cres-impact__value.is-empty {
  color: var(--pv-text-meta);
  font-size: 20px;
}

html.pv-app .pv-cres-impact .pvx-state {
  box-shadow: inset 0 0 0 1px var(--pv-border);
}

html.pv-app .pv-cres-impact__head {
  margin-top: 18px;
  font-family: var(--pv-font-body);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}

html.pv-app .pv-cres-impact__pending {
  margin-top: 6px;
  padding-left: 20px;
  color: var(--pv-text-secondary);
  font-size: 15px;
  line-height: 1.5;
}

html.pv-app .pv-cres-impact__more {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--pv-divider);
  color: var(--pv-text-secondary);
  font-size: 15px;
  line-height: 1.5;
}

html.pv-app .pv-cres-impact__summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  color: var(--pv-text);
  font-weight: 600;
  cursor: pointer;
}

html.pv-app .pv-cres-impact__basis,
html.pv-app .pv-cres-impact__legend {
  margin-top: 8px;
}

html.pv-app .pv-cres-impact__basis strong {
  color: var(--pv-text);
}

html.pv-app .pv-cres-impact__legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

/* A recap as it was sent: its paragraphs keep their lines, its lists are lists. */
html.pv-app .pv-cres-reader__text {
  margin-top: 18px;
}

html.pv-app .pv-cres-reader__text > :first-child {
  margin-top: 0;
}

html.pv-app .pv-cres-reader__text .pv-cres-reader__p {
  margin-top: 14px;
}

html.pv-app .pv-cres-reader__list {
  margin-top: 10px;
  padding-left: 22px;
  color: var(--pv-text-secondary);
  font-size: 16px;
  line-height: 1.6;
}

html.pv-app .pv-cres-reader__text a {
  color: var(--pv-text);
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* Paid ads */
html.pv-app .pv-cres-ads {
  list-style: none;
}

html.pv-app .pv-cres-ads__item {
  padding: 16px 0;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-cres-ads__item:first-child {
  padding-top: 2px;
  border-top: 0;
}

html.pv-app .pv-cres-ads__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px 14px;
}

html.pv-app .pv-cres-ads__icon {
  flex: none;
  color: var(--pv-text);
}

html.pv-app .pv-cres-ads__text {
  flex: 1 1 170px;
  min-width: 0;
}

html.pv-app .pv-cres-ads__name {
  font-family: var(--pv-font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
}

html.pv-app .pv-cres-ads__fig {
  margin-top: 2px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres-ads__head .pvx-state {
  flex: none;
}

html.pv-app .pv-cres-ads__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
  margin: 12px 0 0 36px;
  font-size: 14px;
}

html.pv-app .pv-cres-ads__meta dt {
  color: var(--pv-text-meta);
}

html.pv-app .pv-cres-ads__meta dd {
  margin: 0;
  color: var(--pv-text);
  font-weight: 500;
}

html.pv-app .pv-cres-ads__ro {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--pv-divider);
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres-ads__ro .pv-icon {
  flex: none;
  margin-top: 2px;
}

html.pv-app .pv-cres__summarybody {
  color: var(--pv-text);
  font-size: 17px;
  line-height: 1.5;
}

/* Monthly recaps */
html.pv-app .pv-cres-recaps {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  align-items: start;
  gap: var(--pv-gap);
}

html.pv-app .pv-cres-recaps__list {
  display: grid;
  gap: 12px;
  list-style: none;
}

html.pv-app .pv-cres-recap {
  display: grid;
  gap: 4px;
  padding: 18px 20px;
  border: 1px solid var(--pv-border);
  border-radius: 12px;
  background: var(--pv-surface);
  color: var(--pv-text);
  text-decoration: none;
  box-shadow: var(--pv-shadow-card);
}

html.pv-app a.pv-cres-recap:hover {
  border-color: var(--pv-control-border);
}

html.pv-app .pv-cres-recap[aria-current="true"] {
  border-color: var(--pv-control-border);
  background: var(--pv-surface-muted);
  box-shadow: inset 3px 0 0 var(--pv-accent-text);
}

html.pv-app .pv-cres-recap--next {
  border-style: dashed;
  border-color: var(--pv-control-border);
  background: transparent;
  box-shadow: none;
}

html.pv-app .pv-cres-recap__month {
  font-family: var(--pv-font-heading);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

html.pv-app .pv-cres-recap__meta {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-recap__sum {
  margin-top: 4px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres-reader {
  max-width: 820px;
  padding: 30px 34px 34px;
}

html.pv-app .pv-cres-reader__title {
  margin-top: 8px;
  font-size: var(--pv-fs-title);
  line-height: 1.2;
  letter-spacing: -0.025em;
}

html.pv-app .pv-cres-reader__title:focus,
html.pv-app .pv-cres-reader__title:focus-visible {
  outline: none;
  box-shadow: none;
}

html.pv-app .pv-cres-reader__by {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-reader__lede {
  margin-top: 18px;
  color: var(--pv-text);
  font-size: 18px;
  line-height: 1.5;
}

html.pv-app .pv-cres-reader__figs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 6px;
}

html.pv-app .pv-cres-reader__fig {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--pv-surface-muted);
}

html.pv-app .pv-cres-reader__fig dt {
  color: var(--pv-text-secondary);
  font-size: 14px;
  font-weight: 500;
}

html.pv-app .pv-cres-reader__fig dd {
  margin: 0;
}

html.pv-app .pv-cres-reader__figval {
  color: var(--pv-text);
  font-size: 28px;
  line-height: 1.15;
}

html.pv-app .pv-cres-reader__fignote {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-reader__nofig {
  margin-top: 20px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

html.pv-app .pv-cres-reader__h {
  margin-top: 24px;
  font-family: var(--pv-font-body);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0;
}

html.pv-app .pv-cres-reader__p {
  margin-top: 6px;
  color: var(--pv-text-secondary);
  font-size: 16px;
  line-height: 1.6;
}

html.pv-app .pv-cres-reader__pending {
  display: grid;
  justify-items: start;
  gap: 10px;
  margin-top: 16px;
}

/* ==== Narrower content columns: the column, not the window, decides =========================== */
/* Column widths only while a table is a table (below 641px each row stacks). */
@container pvmain (min-width: 641px) {
  html.pv-app .pv-caiv__recenttable .pv-caiv__col-q {
    width: 56%;
  }
  html.pv-app .pv-caiv__recenttable .pv-caiv__col-obs {
    width: 22%;
  }
  html.pv-app .pv-caiv-ev__table .pv-caiv-ev__col-q {
    width: 54%;
  }
  html.pv-app .pvx-defs__table .pvx-defs__metric {
    width: 19%;
  }
  html.pv-app .pvx-defs__table .pvx-defs__updated {
    width: 15%;
    white-space: nowrap;
  }
}

@container pvmain (min-width: 1000px) {
  html.pv-app .pv-caiv-ev__layout {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  }
  html.pv-app .pv-caiv-evd {
    position: sticky;
    top: calc(var(--pv-header-h) + 16px);
    max-height: calc(100vh - var(--pv-header-h) - 32px);
    overflow: auto;
    overscroll-behavior: contain;
  }
}

@container pvmain (max-width: 999px) {
  html.pv-app .pv-caiv-ev__layout > .pv-caiv-evd {
    display: none;
  }
}

@container pvmain (max-width: 1060px) {
  html.pv-app .pv-caiv-ev__filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  html.pv-app .pv-caiv-ev__search {
    grid-column: span 2;
  }
}

@container pvmain (max-width: 900px) {
  html.pv-app .pv-cres__toplist {
    grid-template-columns: minmax(0, 1fr);
  }
}

@container pvmain (max-width: 980px) {
  html.pv-app .pv-caiv__mid,
  html.pv-app .pv-cres__mid {
    grid-template-columns: minmax(0, 1fr);
  }
  html.pv-app .pv-cres__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html.pv-app .pv-caiv-plan__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
}

@container pvmain (max-width: 820px) {
  html.pv-app .pv-cres-recaps {
    grid-template-columns: minmax(0, 1fr);
  }
  html.pv-app .pv-caiv__tiles--first {
    grid-template-columns: minmax(0, 1fr);
  }
}

@container pvmain (max-width: 760px) {
  html.pv-app .pv-caiv__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html.pv-app .pv-caiv__tiles > :first-child {
    grid-column: 1 / -1;
  }
}

@container pvmain (max-width: 640px) {
  /* Recent checks and the checks list: the question on its own line, then the result and the
     link side by side (labels stay for screen readers through the table roles). */
  html.pv-app .pv-caiv__recenttable tbody tr,
  html.pv-app .pv-caiv-ev__table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px 12px;
  }
  html.pv-app .pv-caiv__recenttable tbody td,
  html.pv-app .pv-caiv-ev__table tbody td {
    width: auto;
    padding: 0;
  }
  html.pv-app .pv-caiv__recenttable tbody td:first-child,
  html.pv-app .pv-caiv-ev__table tbody td:first-child {
    grid-column: 1 / -1;
    padding-bottom: 2px;
  }
  html.pv-app .pv-caiv__recenttable tbody td:first-child {
    font-weight: 600;
  }
  html.pv-app .pv-caiv__recenttable td.pv-caiv__col-obs::before,
  html.pv-app .pv-caiv__recenttable td.pv-caiv__col-ev::before,
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-obs::before,
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-ev::before {
    content: none;
  }
  html.pv-app .pv-caiv__recenttable td.pv-caiv__col-obs,
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-obs {
    justify-content: flex-start;
  }
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-link {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: flex-start;
    gap: 8px;
  }
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-link::before {
    font-size: 11px;
  }
  html.pv-app .pv-caiv-ev__table tr.is-selected td:first-child {
    box-shadow: none;
  }
  html.pv-app .pv-caiv-ev__table tr.is-selected {
    box-shadow: inset 3px 0 0 var(--pv-accent-text);
    padding-left: 12px;
  }
  html.pv-app .pv-caiv-ev__filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html.pv-app .pvx-defs__table td,
  html.pv-app .pvx-defs__table tbody th {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  html.pv-app .pvx-defs__table .pvx-defs__metric,
  html.pv-app .pvx-defs__table .pvx-defs__updated {
    width: 100%;
    white-space: normal;
  }
  html.pv-app .pv-cres-reader__figs {
    grid-template-columns: minmax(0, 1fr);
  }
  html.pv-app .pv-cres-ads__meta {
    margin-left: 0;
  }
  html.pv-app .pv-caiv-ev__table td.pv-caiv-ev__col-link {
    white-space: normal;
  }
}

/* ==== Phones: the page 18 composition ========================================================== */
@media (max-width: 599px) {
  /* The latest check date moves into the lead tile; the header keeps its room for the title. */
  html.pv-app [data-route="ai-visibility"] .pv-pagehead__actions {
    display: none;
  }
  /* Below 600px the lead tile is a plain tile: .pv-lead-wide in pv-tokens.css re-takes the page's
     tile tokens, the ring and the accent included. */
  html.pv-app .pv-caiv,
  html.pv-app .pv-cres {
    gap: 16px;
  }
  html.pv-app .pv-caiv__tiles,
  html.pv-app .pv-cres__tiles {
    gap: 14px;
  }
  html.pv-app .pv-caiv-tile,
  html.pv-app .pv-cres-tile {
    min-height: 0;
    padding: 18px;
    border-radius: 12px;
  }
  html.pv-app .pv-caiv-tile .pv-metric__value,
  html.pv-app .pv-cres-tile .pv-metric__value {
    font-size: 32px;
  }
  html.pv-app .pv-caiv-tile .pv-metric__value.pv-caiv-tile__word,
  html.pv-app .pv-cres-tile .pv-metric__value.pv-cres-tile__word {
    font-size: 22px;
  }
  /* "Not reported yet" on one line in a two-up tile from a 360px screen (it ran 5px past the tile on an iPhone mini). */
  html.pv-app .pv-cres-tile {
    padding-inline: 16px;
  }
  html.pv-app .pv-cres-tile__state .pv-pill {
    padding: 5px 8px;
    font-size: 13px;
  }
  html.pv-app .pv-caiv-tile .pv-metric__label,
  html.pv-app .pv-cres-tile .pv-metric__label {
    font-size: 15px;
  }
  html.pv-app .pv-caiv-tile .pv-metric__sub,
  html.pv-app .pv-cres-tile .pv-metric__sub {
    font-size: 14px;
  }
  /* The lead AI Visibility tile: the figure first, then what it counts, the ring beside it. */
  html.pv-app .pv-caiv__tiles > .pv-caiv-tile:first-child {
    align-items: center;
    padding: 20px 20px 18px;
  }
  html.pv-app .pv-caiv__tiles > .pv-caiv-tile:first-child .pv-metric__value {
    order: -1;
    margin-top: 0;
    font-size: 44px;
  }
  html.pv-app .pv-caiv__tiles > .pv-caiv-tile:first-child .pv-metric__label {
    color: var(--pv-text-secondary);
    font-size: 16px;
  }
  html.pv-app .pv-caiv__tiles > .pv-caiv-tile:first-child .pv-metric__sub {
    padding-top: 4px;
  }
  html.pv-app .pv-caiv__denoms {
    gap: 6px 18px;
  }
  html.pv-app .pv-caiv__evidence-btn {
    display: flex !important;
  }
  html.pv-app .pv-caiv__evidence-btn .pv-btn {
    min-height: 48px;
  }
  html.pv-app .pv-caiv__improveitem {
    flex-direction: column;
    gap: 8px;
  }
  html.pv-app .pv-caiv-plan__head {
    flex-direction: column;
    gap: 10px;
  }
  html.pv-app .pv-caiv-plan__meta > div {
    grid-template-columns: 92px minmax(0, 1fr);
  }
  html.pv-app .pv-caiv-ev__filters {
    gap: 12px;
  }
  html.pv-app .pv-cres__topthumb {
    width: 96px;
    height: 72px;
  }
  html.pv-app .pv-cres-reader {
    padding: 22px 20px 26px;
  }
  html.pv-app .pv-cres-reader__title {
    font-size: 24px;
  }
  html.pv-app .pv-cres__insightbody,
  html.pv-app .pv-cres__summarybody {
    font-size: 16px;
  }
  html.pv-app .pvx-hbars__label {
    padding-right: 14px !important;
  }
}

@media (max-width: 359px) {
  html.pv-app .pv-caiv-ev__filters {
    grid-template-columns: minmax(0, 1fr);
  }
  html.pv-app .pv-caiv-ev__search {
    grid-column: auto;
  }
  html.pv-app .pv-caiv-tile,
  html.pv-app .pv-cres-tile {
    padding: 16px 14px;
  }
  html.pv-app .pv-caiv-tile .pv-metric__value,
  html.pv-app .pv-cres-tile .pv-metric__value {
    font-size: 28px;
  }
  html.pv-app .pv-caiv__tiles > .pv-caiv-tile:first-child .pv-metric__value {
    font-size: 38px;
  }
  html.pv-app .pv-caiv-tile__ring .pv-ring {
    width: 68px;
    height: 68px;
  }
}

/* ==== Results: the platforms' own figures (client insights, slice I4) ============================ */
/* Shown only while the server reports figures for the business; today's page draws none of these. */
html.pv-app .pv-cres-tile__pill {
  display: flex;
  margin-top: 2px;
}

html.pv-app .pv-cres-tile__note {
  color: var(--pv-text-meta);
}

html.pv-app .pv-cres__settled {
  margin: -6px 0 0;
}

html.pv-app .pv-cres-nets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--pv-gap);
}

html.pv-app .pv-cres-net .pv-card__head {
  margin-bottom: 12px;
}

html.pv-app .pv-cres-net__aside {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px 10px;
  min-width: 0;
}

html.pv-app .pv-cres-net__account {
  overflow-wrap: anywhere;
  color: var(--pv-text-meta);
  font-size: 15px;
}

html.pv-app .pv-cres-net__line {
  margin: 0 0 12px;
  color: var(--pv-text-secondary);
}

/* Two figures side by side only where each keeps room for its longest line ("2 of 3 placements counted."
   with its last two words held together): one a row on a phone and in a three-card row. */
html.pv-app .pv-cres-net__figs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 0;
}

/* minmax(0, 1fr): the figure's lines wrap inside its box. An auto column grew with the widow guard's
   no-break space (pv-app.js) and pushed "placements counted." past the box's edge on a phone. */
html.pv-app .pv-cres-net__fig {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--pv-surface-muted);
}

html.pv-app .pv-cres-net__fig dd {
  margin: 0;
}

html.pv-app .pv-cres-net__label {
  color: var(--pv-text-secondary);
  font-size: 14px;
  font-weight: 500;
}

html.pv-app .pv-cres-net__value {
  color: var(--pv-text);
  font-size: 28px;
  line-height: 1.15;
}

html.pv-app .pv-cres-net__value.is-empty {
  font-size: 15px;
}

html.pv-app .pv-cres-net__sub,
html.pv-app .pv-cres-net__note,
html.pv-app .pv-cres-net__coverage,
html.pv-app .pv-cres-net__footer {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-net__coverage {
  margin: 12px 0 0;
}

html.pv-app .pv-cres-net__top {
  display: grid;
  gap: 2px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-cres-net__tophead {
  font-family: var(--pv-font-body);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
}

html.pv-app .pv-cres-net__toptitle {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--pv-text);
}

html.pv-app .pv-cres-net__topmeta {
  margin: 0;
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres-net__top .pv-cres__view {
  justify-self: start;
}

html.pv-app .pv-cres-net__footer {
  margin: 14px 0 0;
}

html.pv-app .pv-cres__postcell {
  display: grid;
  gap: 2px;
}

html.pv-app .pv-cres__posttotal {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres__plfig {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
}

html.pv-app .pv-cres__plnote {
  color: var(--pv-text-meta);
  font-size: 14px;
}

html.pv-app .pv-cres__aboutmore {
  margin-top: 14px;
}

html.pv-app .pv-cres__notes {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: var(--pv-text-secondary);
  font-size: 15px;
}

@container pvmain (max-width: 640px) {
  html.pv-app .pv-cres-nets {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
  html.pv-app .pv-cres-net__value {
    font-size: 24px;
  }
}

/* The tile row with the platforms' figures (client insights): two or three tiles fill their row, and in the
   two-column layout a third, last tile takes the whole row. Today's page (four tiles) never carries these. */
html.pv-app .pv-cres__tiles--n2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

html.pv-app .pv-cres__tiles--n3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@container pvmain (max-width: 980px) {
  html.pv-app .pv-cres__tiles--n3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html.pv-app .pv-cres__tiles--n3 > :last-child {
    grid-column: 1 / -1;
  }
}

/* The narrowest phones (a 320px screen): one tile a row, so a tile's state ("Not reported yet") reads whole on one
   line instead of leaving one word alone (Katie, 2026-10-21: "make everything fit nicely in mobile"). From a 360px
   screen two tiles share a row as before. */
@container pvmain (max-width: 319px) {
  html.pv-app .pv-cres__tiles,
  html.pv-app .pv-cres__tiles--n2,
  html.pv-app .pv-cres__tiles--n3 {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Google Business Profile (client insights, slice I8): one card per location below the network cards, drawn only
   while the server reports Google figures for the business. Its search terms and reviews sit under its figures. */
html.pv-app .pv-cres-gbp__block {
  display: grid;
  gap: 6px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--pv-border-subtle);
}

html.pv-app .pv-cres-gbp__terms {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 22px;
}

html.pv-app .pv-cres-gbp__term {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

html.pv-app .pv-cres-gbp__keyword {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--pv-text);
}

html.pv-app .pv-cres-gbp__count {
  flex: none;
  color: var(--pv-text-secondary);
}

html.pv-app .pv-cres-gbp .pv-cres-net__footer + .pv-cres-net__footer {
  margin-top: 4px;
}
