*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 11px;
  color: #333;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

:root {
  --pdf-bg: #ffffff;
  --pdf-text: #333333;
  --pdf-muted: #777777;

  --pdf-border: #cccccc;
  --pdf-border-light: #e0e0e0;

  --pdf-ok: #e8ffe8;
  --pdf-warning: #fff7d6;
  --pdf-error: #ffe5e5;

  --pdf-table-header-bg: #f5f5f5;
  --pdf-table-row-alt: #fafafa;

  --pdf-font-size-base: 11px;
  --pdf-font-size-small: 10px;
  --pdf-font-size-tiny: 9px;

  --pdf-spacing-xs: 4px;
  --pdf-spacing-s: 6px;
  --pdf-spacing-m: 10px;
  --pdf-spacing-l: 16px;
}

.pdf-page {
  width: 100%;
  padding: 20px;
  background: var(--pdf-bg);
  color: var(--pdf-text);
}

.pdf-section {
  margin-bottom: 24px;
}

.pdf-section-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 8px;
}

.pdf-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--pdf-font-size-small);
  table-layout: fixed;
}

.pdf-table th,
.pdf-table td {
  padding: 4px 6px;
  border: 1px solid var(--pdf-border-light);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pdf-table th {
  background: var(--pdf-table-header-bg);
  font-weight: 600;
}

.pdf-table tr:nth-child(even) {
  background: var(--pdf-table-row-alt);
}

.pdf-row-ok {
  background: var(--pdf-ok);
}

.pdf-row-warning {
  background: var(--pdf-warning);
}

.pdf-row-error {
  background: var(--pdf-error);
}

.pdf-cell-right {
  text-align: right;
}

.pdf-cell-center {
  text-align: center;
}

.pdf-autoscale {
  transform: scale(var(--pdf-scale, 1));
  transform-origin: top left;
}

@media print {
  .pdf-page {
    padding: 16px;
  }

  .pdf-page-break {
    page-break-before: always;
  }

  .pdf-avoid-break {
    page-break-inside: avoid;
  }
}
