/*
 * WealthWise document typography — Inter (static weights only).
 * Do not use the Inter variable/opsz cut here: optical sizing thins body text
 * and html2canvas/PDF capture often fails to map variable axes correctly.
 *
 *   400 Regular  — rare (captions only)
 *   500 Medium   — default body, descriptions, party details (crisper on PDF)
 *   600 SemiBold — section headings, table headers
 *   700 Bold     — titles, brand mark, grand totals
 *
 * Applies to every printable document root: .vpx-sheet and .vpx-pcv-doc
 * (multi-page petty-cash voucher wrapper).
 */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("/fonts/inter/Inter-400.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("/fonts/inter/Inter-500.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("/fonts/inter/Inter-600.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("/fonts/inter/Inter-700.woff2") format("woff2");
}

:root {
  --vpx-font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --vpx-fw-regular: 400;
  --vpx-fw-medium: 500;
  --vpx-fw-semibold: 600;
  --vpx-fw-bold: 700;
  /* Near-black ink — strong contrast on white paper (preview + PDF) */
  --vpx-ink: #050505;
  --vpx-ink-secondary: #111827;
  --vpx-ink-muted: #1f2937;
}

.vpx-fw-regular { font-weight: var(--vpx-fw-regular) !important; }
.vpx-fw-medium { font-weight: var(--vpx-fw-medium) !important; }
.vpx-fw-semibold { font-weight: var(--vpx-fw-semibold) !important; }
.vpx-fw-bold { font-weight: var(--vpx-fw-bold) !important; }

/* Shared sheet text engine — crisp on screen and in html2canvas → PDF */
.vpx-sheet,
.vpx-sheet *,
.vpx-pcv-doc,
.vpx-pcv-doc * {
  font-family: var(--vpx-font-family) !important;
  font-optical-sizing: none;
  font-variation-settings: normal;
  font-synthesis: none; /* never fake bold/semibold */
  /* Prefer antialiased strokes that survive scale + PNG capture */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

.vpx-sheet,
.vpx-pcv-doc .vpx-sheet {
  color: var(--vpx-ink);
  font-weight: var(--vpx-fw-semibold);
  font-size: 13.5px;
  line-height: 1.5;
  letter-spacing: 0.005em;
}

/* Numeric amounts stay tabular + SemiBold for print clarity (body cells only — headers stay white on brand strips). */
.vpx-sheet .vpx-num,
.vpx-sheet tbody .vpx-col-qty,
.vpx-sheet tbody .vpx-col-price,
.vpx-sheet tbody .vpx-col-amount,
.vpx-sheet tfoot .vpx-col-qty,
.vpx-sheet tfoot .vpx-col-price,
.vpx-sheet tfoot .vpx-col-amount {
  font-weight: var(--vpx-fw-semibold);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--vpx-ink);
}

.vpx-sheet .vpx-table thead th,
.vpx-sheet .vpx-pv-particulars thead th {
  color: #ffffff !important;
}

@media print {
  .vpx-sheet,
  .vpx-sheet *,
  .vpx-pcv-doc,
  .vpx-pcv-doc * {
    font-family: var(--vpx-font-family) !important;
    font-optical-sizing: none !important;
    font-variation-settings: normal !important;
    font-synthesis: none !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
  }
}
