/* Print styles, loaded with media="print": strip the app chrome so /cv prints as a clean CV. */
@page {
  margin: 12mm 14mm;
}

body {
  background: #ffffff;
  font-size: 10.5pt;
  line-height: 1.45;
}

/* Keep the QR code at the right of the name block instead of wrapping onto its own row. */
.cv-header {
  flex-wrap: nowrap;
  align-items: center;
}

.cv-identity {
  flex: 1 1 auto;
}

.window {
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.appbar,
.sidebar,
.skip-link,
.site-footer,
.no-print {
  display: none !important;
}

.shell {
  display: block;
  min-height: 0;
  overflow: visible;
}

.content {
  padding: 0;
  max-width: none;
  gap: var(--sp-6);
}

.card {
  box-shadow: none;
  break-inside: avoid;
}

.cv {
  max-width: none;
  gap: var(--sp-4);
}

/* Long entries may span pages, but a title never ends up alone at the bottom of a page and no
   single paragraph or bullet is split. */
.cv-entry p,
.cv-entry li,
.cv-skills dt,
.cv-skills dd {
  break-inside: avoid;
}

.cv-section h2,
.cv-entry h3,
.cv-entry-head {
  break-after: avoid;
}

a {
  color: var(--text-primary);
  text-decoration: none;
}
