/* ---------------------------------------------------------------------
 * Shared styles for the standalone record pages: coverage and company.
 * Both are reading surfaces rather than working desks, so they use a
 * single column of quiet panels, a wide measure for prose, and the same
 * table treatment as the watchlist.
 * ------------------------------------------------------------------- */
.page-lede {
  margin-top: 12px;
  max-width: 64ch;
  font-size: 13px;
  line-height: 1.75;
  color: var(--muted);
}
.page-panel {
  padding: 24px 26px;
  margin-bottom: 22px;
}
.page-panel h2 {
  font-size: 16px;
}
.page-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  font-size: 11px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 76ch;
}
.page-note .icon {
  flex: none;
  margin-top: 3px;
  color: var(--accent);
}

/* The coverage funnel: four measured counts, narrowing. */
.funnel {
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
  display: grid;
  gap: 20px;
}
.funnel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.funnel-label {
  font-size: 12px;
  font-weight: 650;
}
.funnel-count {
  font-size: 22px;
  font-weight: 700;
}
.funnel-bar {
  height: 10px;
  margin-top: 8px;
  background: var(--surface-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.funnel-bar i {
  display: block;
  block-size: 100%;
  background: var(--accent);
}
.funnel-step:last-child .funnel-bar i {
  background: var(--accent);
  opacity: 1;
}
.funnel-step:first-child .funnel-bar i {
  opacity: 0.45;
}
.funnel-note {
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 72ch;
}
.funnel-share {
  color: var(--ink);
  font-weight: 650;
}

/* Dataset inventory. Status is a word and a glyph, never colour alone. */
.dataset-list {
  margin-top: 18px;
  display: grid;
}
.dataset-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.dataset-row:last-child {
  border-bottom: 0;
}
.dataset-main h3 {
  font-size: 13px;
  font-weight: 650;
}
.dataset-main p {
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.75;
  color: var(--muted);
  max-width: 78ch;
}
.dataset-used span {
  font-weight: 700;
  color: var(--ink);
}
.status-chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 650;
  padding: 5px 9px;
  border-radius: 6px;
  border: 1px solid var(--border);
  color: var(--muted);
  background: var(--surface);
}
.status-chip.is-connected {
  color: var(--positive);
  border-color: color-mix(in srgb, var(--positive) 45%, var(--border));
  background: color-mix(in srgb, var(--positive) 8%, var(--surface));
}
.status-chip.is-absent {
  border-style: dashed;
}

/* Record tables (coverage catalogue, company statements). */
.data-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 16px;
}
.data-table caption {
  text-align: start;
}
.data-table th,
.data-table td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  text-align: start;
  vertical-align: middle;
}
.data-table thead th {
  font-size: 9px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
  white-space: nowrap;
}
.data-table th.num,
.data-table td.num {
  text-align: end;
  white-space: nowrap;
}
.data-table tbody tr:last-child td {
  border-bottom: 0;
}
.data-table tbody tr:hover {
  background: var(--surface-soft);
}
.data-table small {
  color: var(--muted);
}
.data-table .negative {
  color: var(--negative);
}
.symbol-link {
  display: block;
  color: var(--ink);
}
.symbol-link small {
  display: block;
  font-size: 10px;
  color: var(--muted);
}
.symbol-link:hover strong {
  color: var(--accent);
}
.rate {
  display: inline-block;
  inline-size: 54px;
  block-size: 6px;
  margin-inline-end: 9px;
  vertical-align: middle;
  background: var(--surface-soft);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.rate i {
  display: block;
  block-size: 100%;
  background: var(--accent);
}
@media (max-width: 767px) {
  .page-panel {
    padding: 20px 16px;
  }
  .dataset-row {
    flex-direction: column;
    gap: 10px;
  }
}

/* ---------------------------------------------------------------------
 * Company record
 * ------------------------------------------------------------------- */
.company-heading .heading-subtitle {
  flex-wrap: wrap;
}
.company-quote {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.company-price {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.company-price > span:first-child {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.5px;
}
.company-price .positive,
.company-price .negative,
.company-price .muted {
  font-size: 12px;
  font-weight: 650;
}
.company-summary {
  margin-top: 14px;
  font-size: 13px;
  line-height: 1.8;
  max-width: 76ch;
}
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}
.company-signals {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.company-signals h3 {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--muted);
}
.company-signals ul {
  margin: 10px 0 0;
  padding-inline-start: 18px;
}
.company-signals li {
  font-size: 12px;
  line-height: 1.75;
  margin-bottom: 6px;
  max-width: 76ch;
}
.fact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0 24px;
  margin: 16px 0 0;
}
.fact-grid > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--border);
}
.fact-grid dt {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
.fact-grid dd {
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  text-align: end;
}
.fact-grid dd small {
  font-weight: 500;
  color: var(--muted);
}
.figure-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}
.figure-toolbar .btn-text {
  font-size: 10px;
  min-height: 34px;
}
.figure-chart {
  height: 300px;
  margin-top: 6px;
}
.figure-chart .chart-canvas {
  height: 100%;
}
.company-choices {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 8px;
}
.company-choices a {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--ink);
}
.company-choices a:hover {
  border-color: var(--accent);
  background: var(--tint);
}
.company-choices small {
  display: block;
  margin-top: 3px;
  font-size: 10px;
  color: var(--muted);
}
@media (max-width: 767px) {
  .company-quote {
    align-items: flex-start;
    margin-top: 14px;
  }
  .figure-chart {
    height: 240px;
  }
}

/* The news page shows every item at lead size, in one column. */
.news-items.is-page {
  margin-top: 8px;
}
.news-items.is-page .news-item {
  padding: 20px 0;
}
.news-items.is-page .news-item.is-lead.has-thumb {
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 20px;
}
.news-items.is-page .news-item.is-lead .news-thumb {
  block-size: 116px;
}
@media (max-width: 767px) {
  .news-items.is-page .news-item.is-lead.has-thumb {
    grid-template-columns: 1fr;
  }
}
.news-methodology .news-method-line {
  font-size: 12px;
  line-height: 1.7;
}
.news-methodology .news-method-line.muted {
  margin-top: 2px;
  font-size: 11px;
}
.news-methodology .news-method-more {
  margin-top: 14px;
}

.status-chip.is-snapshot {
  color: var(--caution);
  border-color: color-mix(in srgb, var(--caution) 45%, var(--border));
  background: color-mix(in srgb, var(--caution) 8%, var(--surface));
}
