/* FP&A management report DOCUMENT — self-contained (LS4.1).
 *
 * Loaded by BOTH the signed-in preview (/app/fpa/reports/<id>) and the public
 * shared page (/shared/report/<token>). It is deliberately SELF-CONTAINED:
 * the public page loads only fpa-visual-reset.css, which does NOT define the
 * cockpit's .fd-card / .fd-rc-h / .fd-pl-* primitives. The old shared page
 * used them anyway and rendered as an unstyled table — numbers left-aligned,
 * no rules, no hierarchy.
 *
 * So every class the document partial uses is namespaced .fd-rd-* and defined
 * here, on the shared --fvr-* tokens. No cockpit dependency, no Tailwind
 * utility (the build is precompiled), no external font or asset.
 */

.fd-rd-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 32px 20px 64px;
}

/* ── Cover ─────────────────────────────────────────────────────────────── */

.fd-rd-cover { margin: 18px 0 22px; }

.fd-rd-cover .fvr-headline,
.fd-rd-cover .fd-headline {
  font-family: var(--fvr-serif);
  font-size: clamp(28px, 4.2vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--fvr-ink);
  margin: 2px 0 4px;
}

.fd-rd-kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fvr-ink3);
  margin: 0 0 8px;
}

.fd-rd-book {
  font-size: 13.5px;
  color: var(--fvr-ink2);
  margin: 0 0 6px;
}

.fd-rd-sharedmark { margin: 0 0 10px; }

/* ── Blocks ────────────────────────────────────────────────────────────── */

.fd-rd-block { margin-top: 18px; }

.fd-rd-card,
.fd-rd-exec {
  background: var(--fvr-paper);
  border: 1px solid var(--fvr-rule-cool);
  border-radius: 10px;
  padding: 16px 18px;
}

.fd-rd-h {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--fvr-ink);
  margin: 0 0 2px;
}

.fd-rd-sub {
  font-size: 12.5px;
  color: var(--fvr-ink3);
  margin: 0 0 10px;
}

.fd-rd-exec-body {
  font-family: var(--fvr-serif);
  font-size: 17px;
  line-height: 1.5;
  color: var(--fvr-ink);
  margin: 6px 0 0;
}

.fd-rd-note {
  font-size: 12px;
  color: var(--fvr-ink3);
  margin-left: 8px;
  font-weight: 400;
}

.fd-rd-note-block {
  font-size: 12.5px;
  color: var(--fvr-ink2);
  margin: 10px 0 0;
}

/* ── Tables ────────────────────────────────────────────────────────────── */

/* Wide tables scroll INSIDE their own box; the page never scrolls sideways. */
.fd-rd-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.fd-rd-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  background: var(--fvr-paper);
}

.fd-rd-table th,
.fd-rd-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--fvr-rule-cool);
  text-align: left;
  white-space: nowrap;
}

.fd-rd-table th {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--fvr-ink3);
  background: var(--fvr-band);
}

.fd-rd-table td.subj {
  color: var(--fvr-ink);
  white-space: normal;
}

/* Money right-aligns on tabular figures so columns compare by eye. */
.fd-rd-table td.r,
.fd-rd-table th.r {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fd-rd-table tr.strong td {
  font-weight: 700;
  color: var(--fvr-ink);
}

.fd-rd-table tr:last-child td { border-bottom: 0; }

.fd-rd-neg { color: var(--fvr-red); }

.fd-rd-tablewrap {
  border: 1px solid var(--fvr-rule-cool);
  border-radius: 10px;
  overflow: hidden;
}

.fd-rd-tablehead {
  padding: 14px 18px 0;
  background: var(--fvr-paper);
}

/* ── Chart ─────────────────────────────────────────────────────────────── */

.fd-rd-chartwrap { margin-top: 10px; }

.fd-rd-chart {
  width: 100%;
  height: 210px;
  display: block;
}

.fd-rd-bar { fill: var(--fvr-blue-soft); stroke: var(--fvr-blue-border); stroke-width: 1; }
.fd-rd-line { stroke: var(--fvr-terra); stroke-width: 2; }
.fd-rd-zero { stroke: var(--fvr-ink3); stroke-width: 1; stroke-dasharray: 3 3; }

.fd-rd-chartaxis {
  display: flex;
  justify-content: space-between;
  font-size: 11.5px;
  color: var(--fvr-ink3);
  margin-top: 2px;
}

.fd-rd-legend {
  font-size: 12px;
  color: var(--fvr-ink2);
  margin: 10px 0 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.fd-rd-legend .sw {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 2px;
  margin-left: 10px;
}

.fd-rd-legend .sw:first-child { margin-left: 0; }
.fd-rd-legend .sw.bar { background: var(--fvr-blue-soft); border: 1px solid var(--fvr-blue-border); }
.fd-rd-legend .sw.line { background: var(--fvr-terra); height: 3px; border-radius: 0; }

/* ── Reliability ───────────────────────────────────────────────────────── */

.fd-rd-rel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 18px;
  margin: 10px 0 0;
}

.fd-rd-rel div { min-width: 0; }
.fd-rd-rel dt { font-size: 11.5px; color: var(--fvr-ink3); margin: 0; }
.fd-rd-rel dd {
  font-size: 13.5px;
  color: var(--fvr-ink);
  margin: 2px 0 0;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

/* ── Public page footer ────────────────────────────────────────────────── */

.fd-rd-foot {
  margin-top: 28px;
  border-top: 1px solid var(--fvr-rule);
  padding-top: 12px;
}

.fd-rd-foot p {
  font-size: 12px;
  color: var(--fvr-ink3);
  margin: 0 0 6px;
}

/* ── Legacy (v1) notice ────────────────────────────────────────────────── */

.fd-rd-legacy {
  background: var(--fvr-band);
  border: 1px solid var(--fvr-rule);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 12.5px;
  color: var(--fvr-ink2);
  margin-bottom: 14px;
}

@media (max-width: 560px) {
  .fd-rd-page { padding: 20px 14px 48px; }
  .fd-rd-exec-body { font-size: 15.5px; }
  .fd-rd-table th, .fd-rd-table td { padding: 8px 10px; }
}
