
.cv-document {
  --cv-accent: #2457d6;
  --cv-pale: #edf3ff;
  --cv-ink: #17233c;
  --cv-font: Arial, sans-serif;
  width: 100%;
  min-width: 0;
  padding: 30px;
  background: #fff;
  color: var(--cv-ink);
  font-family: var(--cv-font);
  font-size: 10px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.cv-document * { box-sizing: border-box; }
.cv-header { padding-bottom: 17px; border-bottom: 2px solid var(--cv-accent); }
.cv-header h1 {
  margin: 0;
  font-family: var(--cv-heading);
  font-size: 25px;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: -.5px;
}
.cv-job-title { margin: 5px 0 0; color: var(--cv-accent); font-size: 12px; font-weight: 700; }
.cv-contact { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 9px; color: #596579; font-size: 9px; }
.cv-columns { display: grid; grid-template-columns: 1fr; gap: 20px; padding-top: 17px; }
.cv-layout-left .cv-columns,
.cv-layout-right .cv-columns { grid-template-columns: minmax(105px, .72fr) minmax(0, 1.7fr); }
.cv-layout-right .cv-columns { grid-template-columns: minmax(0, 1.7fr) minmax(105px, .72fr); }
.cv-sidebar { min-width: 0; padding-right: 12px; }
.cv-layout-right .cv-sidebar { padding-right: 0; padding-left: 12px; border-left: 1px solid #e6eaf2; }
.cv-layout-left .cv-sidebar { border-right: 1px solid #e6eaf2; }
.cv-main { min-width: 0; }
.cv-section { margin: 0 0 17px; break-inside: avoid; }
.cv-section h2 {
  margin: 0 0 9px;
  padding-bottom: 4px;
  border-bottom: 1px solid #dfe5ef;
  color: var(--cv-accent);
  font-family: var(--cv-heading);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .65px;
  text-transform: uppercase;
}
.cv-description { margin: 0; color: #3f4b60; white-space: pre-line; }
.cv-entry { margin-bottom: 12px; break-inside: avoid; }
.cv-entry-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.cv-entry h3 { margin: 0; font-size: 10px; line-height: 1.4; }
.cv-date { flex-shrink: 0; color: #69758a; font-size: 8px; }
.cv-organization { margin: 3px 0 5px; color: var(--cv-accent); font-weight: 650; }
.cv-skills { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-skill { display: inline-block; padding: 3px 6px; border-radius: 3px; background: var(--cv-pale); color: var(--cv-ink); font-size: 8px; }
.cv-language-list { margin: 0; padding-left: 14px; color: #3f4b60; }
.cv-language-list li { margin-bottom: 4px; }
.cv-header-plain { border-bottom: 1px solid #dfe5ef; }
.cv-header-traditional h1 { letter-spacing: -.7px; }
.cv-header-accent { padding: 15px; background: var(--cv-pale); border: 0; border-left: 4px solid var(--cv-accent); }
.cv-header-bold { padding: 18px; background: var(--cv-accent); color: #fff; border: 0; }
.cv-header-bold .cv-job-title,
.cv-header-bold .cv-contact { color: #fff; }
.cv-header-compact { padding-bottom: 10px; }
.cv-density-compact { padding: 23px; font-size: 9px; line-height: 1.4; }
.cv-density-compact .cv-section { margin-bottom: 11px; }
.cv-density-compact .cv-columns { gap: 13px; padding-top: 12px; }
.cv-density-spacious { padding: 36px; line-height: 1.75; }
.cv-density-spacious .cv-section { margin-bottom: 23px; }
.cv-density-spacious .cv-columns { gap: 25px; padding-top: 22px; }

.cv-template-preview {
  width: 100%;
  aspect-ratio: 210 / 297;
  overflow: hidden;
  background: #e9edf4;
  border-bottom: 1px solid #e7ebf2;
}
.cv-template-preview .cv-document {
  width: 100%;
  min-height: 100%;
  padding: 5.5%;
  transform-origin: top left;
  font-size: clamp(3px, .67vw, 8px);
}
.cv-template-preview .cv-header h1 { font-size: clamp(9px, 1.7vw, 21px); }
.cv-template-preview .cv-job-title { font-size: clamp(5px, .85vw, 11px); }
.cv-template-preview .cv-contact { font-size: clamp(4px, .57vw, 7px); gap: 3px 6px; }
.cv-template-preview .cv-section h2 { font-size: clamp(5px, .75vw, 9px); }
.cv-template-preview .cv-entry h3 { font-size: clamp(5px, .7vw, 9px); }
.cv-template-preview .cv-date { font-size: clamp(4px, .5vw, 7px); }
.cv-template-preview .cv-description { font-size: inherit; }
.cv-template-preview .cv-section { margin-bottom: 8px; }
.cv-template-preview .cv-columns { gap: 10px; padding-top: 10px; }
.cv-template-preview .cv-density-spacious { padding: 5.5%; }

@media (max-width: 600px) {
  .cv-document { padding: 20px; }
  .cv-layout-left .cv-columns,
  .cv-layout-right .cv-columns { grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: 12px; }
  .cv-layout-right .cv-columns { grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr); }
  .cv-density-spacious { padding: 24px; }
}

@media print {
  .cv-document {
    width: 210mm;
    min-height: 297mm;
    padding: 16mm;
    font-size: 10pt;
    overflow: visible;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .cv-section, .cv-entry { break-inside: avoid; }
}