/* =========================================================================
   Resume pages — shared by the live preview, print and every export.
   All type sizes are in em relative to .a4-page (10px × --s), so the
   "Text size" setting scales the whole document. Layout paddings come
   from CSS variables that app.js also uses for pagination, so what is
   measured is exactly what is drawn.
   ========================================================================= */
.a4-page{
  --accent:#1C4F41; --accent-dark:#123329; --accent-tint:#E3EEE8; --accent-soft:#B9D3C7; --s:1;
  --f-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-head:'Fraunces',Georgia,'Times New Roman',serif;
  --r-ink:#14231E; --r-text:#2E3B35; --r-mute:#67766F; --r-rule:#E1E6E0;
  position:relative;flex:none;overflow:hidden;background:#fff;color:var(--r-text);
  font-family:var(--f-body);font-size:calc(10px * var(--s));line-height:1.4;
  text-align:left;-webkit-text-size-adjust:none;text-size-adjust:none;
}
.a4-page *,.a4-page *::before,.a4-page *::after{box-sizing:border-box;}
.a4-page h1,.a4-page h4,.a4-page p,.a4-page ul{margin:0;padding:0;}
.a4-page.measure{position:fixed;left:-10000px;top:0;width:auto;height:auto;overflow:visible;visibility:hidden;pointer-events:none;}
.pg-mark{display:block;height:0;margin:0;padding:0;border:0;}
.r-flow{padding:var(--pt,46px) var(--px,50px) var(--pb,46px);}
.a4-page a{color:inherit;text-decoration:none;}

/* ----- shared building blocks ----- */
.r-head{margin-bottom:2.2em;}
.r-name{font-family:var(--f-head);font-weight:700;font-size:3.4em;line-height:1.1;letter-spacing:-.01em;color:var(--r-ink);overflow-wrap:anywhere;}
.r-name.is-ph{color:#B6C0BA;}
.r-title{font-size:1.35em;font-weight:500;color:var(--accent);margin-top:.45em;}
.r-contacts{display:flex;flex-wrap:wrap;margin-top:1.1em;font-size:1.1em;color:#4B5A53;line-height:1.7;}
.r-contacts > span{display:inline-flex;}
.r-contacts > span + span::before{content:'•';margin:0 .75em;color:#AEBAB3;}

.r-sec{margin-bottom:1.9em;}
.r-sec h4{
  font-size:1.05em;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  padding-bottom:.7em;margin-bottom:1.1em;border-bottom:1px solid var(--r-rule);
}
.summary-text{font-size:1.22em;line-height:1.65;color:var(--r-text);overflow-wrap:anywhere;}
.r-entry{margin-bottom:1.4em;}
.r-entry:last-of-type{margin-bottom:0;}
.r-entry-top{display:flex;justify-content:space-between;align-items:baseline;gap:1.2em;}
.r-entry-main{min-width:0;overflow-wrap:anywhere;}
.r-entry-role{font-size:1.32em;font-weight:700;color:var(--r-ink);}
.r-entry-org{font-size:1.2em;font-weight:600;color:var(--accent);}
.r-entry-date{font-size:1.05em;color:var(--r-mute);white-space:nowrap;font-variant-numeric:tabular-nums;}
.r-entry-loc{font-size:1.1em;color:var(--r-mute);margin-top:.25em;overflow-wrap:anywhere;}
.r-bullets{margin:.85em 0 0;padding-left:1.55em;}
.r-bullets li{font-size:1.2em;line-height:1.5;color:var(--r-text);margin-bottom:.32em;overflow-wrap:anywhere;}
.r-bullets li:last-child{margin-bottom:0;}
.r-skill-group{margin-bottom:1.1em;}
.r-skill-group:last-of-type{margin-bottom:0;}
.r-skill-cat{font-size:1.12em;font-weight:700;color:var(--r-ink);margin-bottom:.5em;}
.r-tags{display:flex;flex-wrap:wrap;gap:.5em;}
.r-tag{font-size:1.1em;background:var(--accent-tint);color:var(--accent-dark);padding:.3em .9em;border-radius:99px;line-height:1.4;}
.r-lang-row{display:flex;justify-content:space-between;gap:1em;font-size:1.2em;margin-bottom:.55em;}
.r-lang-row:last-of-type{margin-bottom:0;}
.r-lang-row b{font-weight:600;color:var(--r-ink);}
.r-lang-row span{color:var(--r-mute);}
.r-cert{margin-bottom:1em;}
.r-cert:last-of-type{margin-bottom:0;}
.r-cert-name{font-size:1.2em;font-weight:600;color:var(--r-ink);overflow-wrap:anywhere;}
.r-cert-meta{font-size:1.05em;color:var(--r-mute);margin-top:.15em;}
.r-photo{display:block;width:9.4em;height:9.4em;border-radius:50%;object-fit:cover;}

/* ----- Modern: full-height sidebar ----- */
.tpl-modern .r-cols{display:grid;grid-template-columns:var(--side-w,238px) 1fr;height:100%;}
.tpl-modern .col-side{background:var(--accent-dark);color:#E8F0EB;padding:var(--side-pt,34px) var(--side-px,26px) var(--side-pb,30px);}
.tpl-modern .col-main{padding:var(--main-pt,42px) var(--main-pr,40px) var(--main-pb,36px) var(--main-pl,36px);min-width:0;}
.tpl-modern .r-head{padding-bottom:1.7em;border-bottom:1px solid var(--r-rule);margin-bottom:2.1em;}
.tpl-modern .r-name{color:var(--accent-dark);font-size:3.5em;}
.tpl-modern .r-sec h4{color:var(--accent-dark);border-bottom:2px solid var(--accent-tint);}
.tpl-modern .r-bullets li::marker{color:var(--accent);}
.tpl-modern .r-entry-org{color:var(--accent);}
.tpl-modern .col-side .r-sec h4{color:#fff;border-bottom:1px solid rgba(255,255,255,.24);}
.tpl-modern .col-side .r-skill-cat{color:#fff;}
.tpl-modern .col-side .r-tag{background:rgba(255,255,255,.15);color:#fff;}
.tpl-modern .col-side .r-lang-row b{color:#fff;}
.tpl-modern .col-side .r-lang-row{color:#E8F0EB;}
.tpl-modern .col-side .r-lang-row span{color:var(--accent-soft);}
.tpl-modern .col-side .r-cert-name{color:#fff;}
.tpl-modern .col-side .r-cert-meta{color:var(--accent-soft);}
.tpl-modern .r-photo-wrap{margin-bottom:2.3em;}
.tpl-modern .r-photo{border:3px solid rgba(255,255,255,.9);}
.r-contact{margin-bottom:1em;}
.r-contact:last-of-type{margin-bottom:0;}
.r-contact-l{display:block;font-size:.95em;color:var(--accent-soft);margin-bottom:.15em;}
.r-contact-v{display:block;font-size:1.15em;color:#fff;overflow-wrap:anywhere;line-height:1.35;}

/* ----- Classic ----- */
.tpl-classic .r-head{text-align:center;padding-bottom:1.7em;border-bottom:2px solid var(--r-ink);margin-bottom:2.2em;}
.tpl-classic .r-name{font-size:3.2em;font-weight:600;letter-spacing:.06em;text-transform:uppercase;}
.tpl-classic .r-title{color:#4B5A53;font-weight:500;font-size:1.2em;letter-spacing:.16em;text-transform:uppercase;margin-top:.7em;}
.tpl-classic .r-contacts{justify-content:center;}
.tpl-classic .r-sec h4{text-align:center;font-family:var(--f-head);color:var(--r-ink);border-bottom:none;font-size:1.2em;letter-spacing:.2em;padding-bottom:0;margin-bottom:1.2em;}
.tpl-classic .r-sec h4::after{content:'';display:block;width:3.4em;height:2px;background:var(--accent);margin:.65em auto 0;}
.tpl-classic .r-bullets li::marker{color:var(--accent);}
.tpl-classic .r-tag{background:none;border:1px solid #CBD3CC;color:var(--r-text);}

/* ----- Minimal ----- */
.tpl-minimal .r-head{padding-bottom:1.2em;margin-bottom:1.6em;}
.tpl-minimal .r-head::before{content:'';display:block;width:3.8em;height:3px;background:var(--accent);margin-bottom:1.6em;}
.tpl-minimal .r-name{font-weight:500;font-size:3.1em;letter-spacing:-.02em;}
.tpl-minimal .r-title{color:var(--r-mute);font-weight:400;font-size:1.3em;}
.tpl-minimal .r-contacts{color:var(--r-mute);}
.tpl-minimal .r-sec{margin-bottom:2.2em;}
.tpl-minimal .r-sec h4{border-bottom:none;color:#8A968F;font-weight:600;letter-spacing:.22em;padding-bottom:0;margin-bottom:1.15em;}
.tpl-minimal .r-tag{background:#F1F4F0;color:var(--r-text);}

/* ----- ATS plain (single column, no graphics, standard font) ----- */
.tpl-ats{--f-body:Arial,Helvetica,sans-serif;--f-head:Arial,Helvetica,sans-serif;--r-ink:#000;--r-text:#111;--r-mute:#333;--r-rule:#000;}
.tpl-ats .r-head{margin-bottom:1.8em;padding-bottom:1.1em;border-bottom:1px solid #000;}
.tpl-ats .r-name{font-size:2.7em;letter-spacing:0;color:#000;}
.tpl-ats .r-title{color:#000;font-weight:400;font-size:1.3em;margin-top:.3em;}
.tpl-ats .r-contacts{color:#000;}
.tpl-ats .r-contacts > span + span::before{content:'|';color:#555;}
.tpl-ats .r-sec h4{color:#000;letter-spacing:.06em;border-bottom:1px solid #000;}
.tpl-ats .r-entry-org{color:#000;font-weight:600;}
.tpl-ats .r-tags{gap:0 .4em;}
.tpl-ats .r-tag{background:none;color:#000;padding:0;border-radius:0;}
.tpl-ats .r-tag:not(:last-child)::after{content:',';}

/* ----- small additions ----- */
.summary-text{white-space:pre-line;}
.r-entry-sub{margin-top:.3em;font-size:1.2em;line-height:1.35;overflow-wrap:anywhere;}
.r-entry-sub .r-entry-org{font-size:1em;}
.r-entry-sub .r-entry-loc{font-size:.92em;margin:0;color:var(--r-mute);}
.r-entry-dot{color:var(--r-mute);}
.r-entry-role{overflow-wrap:anywhere;}
