.resume-paper {
  --resume-accent: #244b63;
  --resume-font: Arial, "Helvetica Neue", sans-serif;
  --resume-pad: 0.62in;
  --resume-body-size: 10pt;
  --resume-line: 1.38;
  --resume-gap: 14px;
  width: 8.5in;
  min-height: 11in;
  margin: 0 auto;
  padding: var(--resume-pad);
  background: #fff;
  color: #1c2022;
  font-family: var(--resume-font);
  font-size: var(--resume-body-size);
  line-height: var(--resume-line);
  box-shadow: 0 16px 42px rgba(20, 24, 27, 0.18);
  overflow-wrap: anywhere;
}

.resume-paper[data-paper="a4"] {
  width: 210mm;
  min-height: 297mm;
}

.resume-paper[data-text-size="small"], .resume-paper[data-text-size="compact"] { --resume-body-size: 9.2pt; }
.resume-paper[data-text-size="large"] { --resume-body-size: 10.8pt; }
.resume-paper[data-spacing="compact"], .resume-paper[data-spacing="tight"] { --resume-gap: 9px; --resume-line: 1.28; }
.resume-paper[data-spacing="relaxed"], .resume-paper[data-spacing="open"] { --resume-gap: 20px; --resume-line: 1.52; }
.resume-paper[data-margins="narrow"] { --resume-pad: 0.43in; }
.resume-paper[data-margins="wide"] { --resume-pad: 0.82in; }
.resume-paper[data-paper="a4"][data-margins="narrow"] { --resume-pad: 11mm; }
.resume-paper[data-paper="a4"][data-margins="standard"] { --resume-pad: 16mm; }
.resume-paper[data-paper="a4"][data-margins="wide"] { --resume-pad: 21mm; }

.resume-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 15px;
  border-bottom: 2px solid var(--resume-accent);
}

.resume-identity { min-width: 0; }
.resume-name { margin: 0; font-size: 29pt; line-height: 0.98; letter-spacing: -0.04em; }
.resume-job-title { margin: 7px 0 0; color: var(--resume-accent); font-size: 13pt; font-weight: 700; }
.resume-contact { display: flex; max-width: 3.15in; flex-wrap: wrap; justify-content: flex-end; gap: 3px 11px; color: #4c5357; font-size: 8.6pt; text-align: right; }
.resume-contact-item { display: inline-block; }
.resume-body { display: block; }
.resume-main, .resume-side { min-width: 0; }
.resume-section { margin-top: var(--resume-gap); break-inside: avoid; }
.resume-section-heading { margin: 0 0 7px; padding-bottom: 3px; border-bottom: 1px solid #8d9699; color: var(--resume-accent); font-size: 10pt; line-height: 1.2; letter-spacing: 0.12em; text-transform: uppercase; }
.resume-summary, .resume-entry-note, .resume-entry-company, .resume-entry-date, .resume-simple-row p { margin: 0; }
.resume-entry { margin-top: 10px; break-inside: avoid; }
.resume-entry:first-of-type { margin-top: 0; }
.resume-entry-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.resume-entry-title { margin: 0; font-size: 10.6pt; line-height: 1.25; }
.resume-entry-company { margin-top: 1px; color: #4a5154; font-size: 9.2pt; }
.resume-entry-date { flex: 0 0 auto; color: #4f5659; font-size: 8.5pt; font-weight: 700; white-space: nowrap; }
.resume-entry-note { margin-top: 5px; }
.resume-entry-link { margin: 3px 0 0; color: var(--resume-accent); font-size: 8.6pt; }
.resume-bullets { margin: 5px 0 0; padding-left: 17px; }
.resume-bullets li { margin: 2px 0; padding-left: 2px; }
.resume-skills { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: 5px 13px; list-style: none; }
.resume-skills li { position: relative; padding-left: 9px; }
.resume-skills li::before { position: absolute; left: 0; color: var(--resume-accent); content: "•"; }
.resume-simple-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-top: 6px; }
.resume-simple-row:first-of-type { margin-top: 0; }
.resume-side { display: none; }

.resume-paper [contenteditable="true"] { border-radius: 2px; outline: none; }
.resume-paper [contenteditable="true"]:hover { background: color-mix(in srgb, var(--resume-accent) 8%, white); }
.resume-paper [contenteditable="true"]:focus { background: #fff7c9; box-shadow: 0 0 0 2px #dfb900; }

/* 01 — traditional rules and centered identity. */
.template-classic-professional .resume-header { align-items: center; flex-direction: column; gap: 8px; text-align: center; }
.template-classic-professional .resume-contact { max-width: none; justify-content: center; text-align: center; }
.template-classic-professional .resume-name { font-family: Georgia, serif; font-size: 27pt; font-weight: 600; letter-spacing: 0.02em; }
.template-classic-professional .resume-section-heading { border-bottom: 2px solid #232728; text-align: center; }

/* 02 — deliberately plain ATS flow. */
.template-clean-ats { --resume-accent: #111 !important; }
.template-clean-ats .resume-header { display: block; border-bottom: 1px solid #111; }
.template-clean-ats .resume-name { font-size: 25pt; letter-spacing: 0; }
.template-clean-ats .resume-contact { max-width: none; justify-content: flex-start; margin-top: 8px; text-align: left; }
.template-clean-ats .resume-section-heading { border: 0; border-bottom: 1px solid #111; color: #111; letter-spacing: 0.05em; }

/* 03 — executive weight. */
.template-executive { border-top: 13px solid var(--resume-accent); }
.template-executive .resume-name { font-size: 34pt; font-weight: 500; }
.template-executive .resume-job-title { letter-spacing: 0.16em; text-transform: uppercase; }
.template-executive .resume-section-heading { padding: 5px 8px; border: 0; background: #edf0f2; }

/* 04 — formal corporate header. */
.template-corporate .resume-header { margin: calc(var(--resume-pad) * -1); margin-bottom: 18px; padding: 0.45in var(--resume-pad) 0.35in; border: 0; background: #202a31; color: #fff; }
.template-corporate .resume-job-title, .template-corporate .resume-contact { color: #fff; }
.template-corporate .resume-section-heading { border-bottom: 1px solid var(--resume-accent); font-size: 9.3pt; }

/* 05 — quiet essentials. */
.template-essential .resume-header { align-items: flex-start; border: 0; }
.template-essential .resume-name { font-size: 25pt; font-weight: 600; }
.template-essential .resume-section { margin-top: calc(var(--resume-gap) + 3px); }
.template-essential .resume-section-heading { border: 0; color: #222; font-size: 8.8pt; }

/* 06 — technical grid and left date column. */
.template-precision { --resume-font: "Arial Narrow", Arial, sans-serif; }
.template-precision .resume-header { border-bottom-width: 4px; }
.template-precision .resume-section-heading { border: 0; border-left: 5px solid var(--resume-accent); padding: 2px 0 2px 8px; }
.template-precision .resume-entry-top { display: grid; grid-template-columns: 1fr 0.28fr; }
.template-precision .resume-entry-date { text-align: right; }

/* 07 — deliberate one-page density. */
.template-compact { --resume-body-size: 8.8pt; --resume-gap: 8px; --resume-line: 1.23; --resume-pad: 0.43in; }
.template-compact .resume-header { padding-bottom: 8px; }
.template-compact .resume-name { font-size: 23pt; }
.template-compact .resume-section-heading { margin-bottom: 4px; font-size: 8.4pt; }
.template-compact .resume-entry { margin-top: 6px; }
.template-compact .resume-bullets { margin-top: 3px; }

/* 08 — conventional serif. */
.template-traditional { --resume-font: Georgia, "Times New Roman", serif; }
.template-traditional .resume-header { align-items: center; flex-direction: column; gap: 6px; border-bottom: 3px double #222; text-align: center; }
.template-traditional .resume-contact { max-width: none; justify-content: center; font-family: Arial, sans-serif; text-align: center; }
.template-traditional .resume-job-title { color: #333; font-weight: 400; }
.template-traditional .resume-section-heading { border-bottom: 1px solid #222; color: #222; font-family: Arial, sans-serif; text-align: center; }

/* 09 — editorial serif hierarchy. */
.template-serif-professional { --resume-font: Georgia, "Times New Roman", serif; }
.template-serif-professional .resume-header { align-items: flex-start; border-bottom: 1px solid #aaa; }
.template-serif-professional .resume-name { color: var(--resume-accent); font-size: 30pt; font-weight: 500; }
.template-serif-professional .resume-section-heading { border: 0; color: #222; font-size: 12pt; letter-spacing: 0; text-transform: none; }

/* 10 — contemporary ATS accent. */
.template-modern-ats .resume-header { border: 0; }
.template-modern-ats .resume-name { position: relative; padding-left: 15px; }
.template-modern-ats .resume-name::before { position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--resume-accent); content: ""; }
.template-modern-ats .resume-section-heading { border: 0; border-left: 4px solid var(--resume-accent); padding-left: 8px; }

/* 11 — education-forward graduate. */
.template-graduate .resume-header { border-bottom: 5px solid var(--resume-accent); }
.template-graduate .resume-name { font-size: 28pt; }
.template-graduate .resume-section-heading { border: 0; color: #1e3440; }
.template-graduate .section-education { padding: 10px; background: #f0f5f7; }

/* 12 — approachable student format. */
.template-student { outline: 1px solid #d3dadd; outline-offset: -14px; }
.template-student .resume-header { padding: 12px; border: 2px solid var(--resume-accent); }
.template-student .resume-section-heading { display: inline-block; border: 0; border-bottom: 3px solid var(--resume-accent); }

/* 13 — career transition summary. */
.template-career-switch .resume-header { border: 0; border-left: 9px solid var(--resume-accent); padding-left: 15px; }
.template-career-switch .section-summary { padding: 12px 14px; background: #f2f4f5; }
.template-career-switch .section-summary .resume-section-heading { border: 0; }

/* 14 — skill-forward. */
.template-skills-focus .resume-section-heading { border: 0; border-bottom: 1px solid #222; color: #222; }
.template-skills-focus .section-skills { padding: 12px; border: 2px solid var(--resume-accent); }
.template-skills-focus .resume-skills { display: grid; grid-template-columns: repeat(3, 1fr); }

/* 15 — premium whitespace. */
.template-minimal { --resume-pad: 0.82in; --resume-gap: 20px; --resume-line: 1.48; }
.template-minimal .resume-header { align-items: flex-start; border: 0; }
.template-minimal .resume-name { font-size: 31pt; font-weight: 400; }
.template-minimal .resume-job-title { color: #444; font-weight: 400; }
.template-minimal .resume-section-heading { border: 0; color: #555; font-size: 8pt; }

/* 16 — understated Nordic rhythm. */
.template-nordic { border-left: 18px solid color-mix(in srgb, var(--resume-accent) 35%, white); }
.template-nordic .resume-header { align-items: flex-start; border: 0; }
.template-nordic .resume-name { font-weight: 500; letter-spacing: -0.02em; }
.template-nordic .resume-section-heading { border: 0; color: #222; letter-spacing: 0.18em; }

/* 17 — charcoal slate. */
.template-slate .resume-header { margin: calc(var(--resume-pad) * -1); margin-bottom: 18px; padding: 0.42in var(--resume-pad); border: 0; background: #3f484d; color: #fff; }
.template-slate .resume-job-title, .template-slate .resume-contact { color: #ecf0f1; }
.template-slate .resume-section-heading { padding-bottom: 5px; border-bottom: 3px solid #3f484d; color: #3f484d; }

/* 18 — wide horizon rule. */
.template-horizon { border-top: 24px solid var(--resume-accent); }
.template-horizon .resume-header { align-items: flex-start; border: 0; }
.template-horizon .resume-name { font-size: 35pt; font-weight: 800; }
.template-horizon .resume-section-heading { border: 0; border-top: 1px solid var(--resume-accent); padding-top: 5px; }

/* 19 — real two-column sidebar. */
.template-sidebar-modern { --resume-accent: #31566b; }
.template-sidebar-modern .resume-header { background: #e9f0f2; }
.template-sidebar-modern .resume-name { letter-spacing: -.025em; }
.layout-sidebar { padding: 0; }
.layout-sidebar .resume-header { min-height: 1.65in; padding: 0.45in 0.55in 0.3in; border: 0; background: #eef2f3; }
.layout-sidebar .resume-body { display: grid; grid-template-columns: 2.05in 1fr; min-height: 9.35in; }
.layout-sidebar .resume-side { display: block; padding: 0.32in 0.28in; background: var(--resume-accent); color: #fff; }
.layout-sidebar .resume-main { padding: 0.32in 0.48in; }
.layout-sidebar .resume-side .resume-section-heading { border-color: rgba(255,255,255,.6); color: #fff; }
.layout-sidebar .resume-side .resume-entry-company, .layout-sidebar .resume-side .resume-entry-date { color: rgba(255,255,255,.82); white-space: normal; }
.layout-sidebar .resume-side .resume-entry-top, .layout-sidebar .resume-side .resume-simple-row { display: block; }
.layout-sidebar .resume-side .resume-entry-date { display: block; margin-top: 2px; }
.layout-sidebar .resume-side .resume-skills { display: grid; gap: 5px; }
.layout-sidebar .resume-side .resume-skills li::before { color: #fff; }

/* 20 — creative studio variation. */
.template-studio { --resume-accent: #5a3c68; }
.template-studio .resume-header { position: relative; background: #f4e9dc; }
.template-studio .resume-header::after { position: absolute; right: 0.35in; bottom: -10px; width: 0.8in; height: 20px; background: var(--resume-accent); content: ""; }
.template-studio .resume-body { grid-template-columns: 2.25in 1fr; }
.template-studio .resume-side { background: #2f2732; }
.template-studio .resume-main .resume-section-heading { border: 0; font-family: Georgia, serif; font-size: 13pt; letter-spacing: 0; text-transform: none; }

@media (max-width: 760px) {
  .resume-paper { transform-origin: top left; }
}

@media print {
  html,
  body,
  .print-only,
  .print-only .resume-paper,
  .print-only .resume-paper * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .resume-paper {
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }
  .resume-paper [contenteditable="true"]:hover,
  .resume-paper [contenteditable="true"]:focus { background: transparent; box-shadow: none; }
}
