/* Public performance page (quantrabbit.capital) — layout on top of the shared
   Tokyo Night tokens in style.css. This file adds only the standalone page
   scaffolding (no sidebar/tabs); the panels, tiles, seg toggles, and charts
   reuse style.css classes verbatim so the two surfaces stay visually in sync.
   The header bar itself is shared too — partials/topbar.html renders into
   .topbar (style.css), same sticky/blurred bar as the internal dashboard. */

.wrap.pub {
  max-width: 1120px;
  padding-bottom: calc(40px + var(--safe-bottom));
}

/* --- Sections ---------------------------------------------------------------- */

.pub-section {
  margin-bottom: 30px;
}

/* The KPI tiles sit below their chart on the public page (not beside it as in
   the bento), so drop the mosaic's row-fill height and give it top rhythm. A
   clean single row of three on wide screens; stacked on phones. */
.pub .tiles,
.pub .kpi-mosaic {
  height: auto;
  margin-top: 14px;
  grid-template-columns: 1fr;
}

@media (min-width: 620px) {
  .pub .tiles,
  .pub .kpi-mosaic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* --- Strategy cards ---------------------------------------------------------- */

/* One card per row, full page width — same width as the Portfolio chart
   above it, so a card's chart is exactly as wide (and reads the same way) as
   the pooled one. No 2-up breakpoint anymore: with the wider chart the
   default .nav-chart-wrap sizing (style.css) is already right, so there's no
   pub-card-specific height override left to sanity-check against a narrower
   column that no longer exists. */
.pub-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}

.pub-card-title {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
}

/* --- Utility ----------------------------------------------------------------- */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Disclaimer ---------------------------------------------------------------- */

/* One muted fine-print line under the last section — no footer chrome, just
   text (Brian's call, 2026-07-27: keep it, but not as a bordered footer). */
.pub-fine {
  margin: 8px 0 0;
  max-width: 70ch;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.55;
  opacity: 0.85;
}
