/* ============================================================
   diginaized · CV Builder — document templates + print engine
   Rendered CV lives in .cv-paper > .cv-doc.tpl-* .lay-*
   Themed via --cv (accent), --cv-font (pairing), --cv-gap (density).
   Screen: white sheet sized to A4/Letter. Print: true vector PDF.
   ============================================================ */

.cv-paper{
  --pw:794px;
  width:var(--pw);max-width:100%;background:#fff;color:#1a1a1a;
  box-shadow:0 30px 90px rgba(0,0,0,.5);border-radius:2px;overflow:hidden;
}
.cv-paper.letter{--pw:816px}

.cv-doc{
  --cv:#3b3f7a;
  --cv-ink:#1d1d22; --cv-dim:#54545e; --cv-faint:#8a8a94; --cv-rule:#e6e6ec; --cv-soft:#f4f4f8;
  --cv-gap:1;
  --pad:calc(46px * var(--cv-gap));
  --sgap:calc(20px * var(--cv-gap));
  --egap:calc(14px * var(--cv-gap));
  font-family:var(--cv-font,"Figtree",system-ui,sans-serif);
  color:var(--cv-ink);line-height:1.5;font-size:14.5px;position:relative;
  min-height:1122px;
}
.cv-paper.letter .cv-doc{min-height:1056px}

.cv-doc.font-sans{--cv-font:"Figtree",system-ui,sans-serif;--cv-head:"Figtree",sans-serif}
.cv-doc.font-elegant{--cv-font:"Source Serif 4",Georgia,serif;--cv-head:"Cormorant Garamond",Georgia,serif}
.cv-doc.font-classic{--cv-font:"Source Serif 4",Georgia,serif;--cv-head:"Source Serif 4",Georgia,serif}
.cv-doc.font-modern{--cv-font:"Figtree",sans-serif;--cv-head:"DM Mono",monospace}
.cv-doc h1,.cv-doc h2,.cv-doc h3{font-family:var(--cv-head,inherit)}

/* shared primitives */
.cv-headtext{min-width:0}
.cv-name{font-size:2.15rem;line-height:1.02;font-weight:600;letter-spacing:-.01em}
.cv-headline{font-size:.96rem;letter-spacing:.02em;margin-top:.25rem;color:var(--cv)}
.cv-contact{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.78rem;color:var(--cv-dim)}
.cv-contact a{color:inherit}
.cv-contact i{color:var(--cv);margin-right:.32rem;width:.85em;text-align:center}
.cv-section{margin-top:var(--sgap)}
.cv-sec-title{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cv);margin-bottom:.55rem;display:flex;align-items:center;gap:.5rem}
.cv-entry{margin-bottom:var(--egap);break-inside:avoid}
.cv-entry:last-child{margin-bottom:0}
.cv-entry-top{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.cv-role{font-weight:700;font-size:.96rem;color:var(--cv-ink)}
.cv-org{font-size:.9rem;color:var(--cv);font-weight:600}
.cv-when{font-size:.74rem;color:var(--cv-faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.cv-where{font-size:.74rem;color:var(--cv-faint)}
.cv-bullets{margin:.35rem 0 0;padding-left:1.05rem}
.cv-bullets li{margin-bottom:.22rem;line-height:1.46;font-size:.86rem}
.cv-bullets li::marker{color:var(--cv)}
.cv-summary{font-size:.9rem;line-height:1.6;color:var(--cv-dim)}
.cv-skill-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.cv-skill-tags span{font-size:.78rem;padding:.18rem .55rem;border-radius:5px;background:var(--cv-soft);color:var(--cv-ink)}
.cv-skill-line{font-size:.84rem;color:var(--cv-dim);line-height:1.6}
.cv-skill-line b{color:var(--cv-ink)}
.cv-lang{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:.3rem}
.cv-lang .lvl{color:var(--cv-faint);font-size:.74rem}
.cv-langbar{height:4px;border-radius:9px;background:var(--cv-rule);margin-top:.2rem;overflow:hidden}
.cv-langbar i{display:block;height:100%;background:var(--cv)}
.cv-photo{width:108px;height:108px;border-radius:10px;object-fit:cover;background:var(--cv-soft)}

/* ---------- CLASSIC — single column, ATS-perfect ---------- */
.lay-single .cv-main{padding:var(--pad)}
.lay-single .cv-aside{display:none}
.lay-single .cv-head{border-bottom:2px solid var(--cv);padding-bottom:.7rem;margin-bottom:.4rem}
.lay-single .cv-name{color:var(--cv-ink)}
.lay-single .cv-contact{margin-top:.5rem}

/* ---------- MODERN — full-width accent band header ---------- */
.lay-band .cv-main{padding:0 0 var(--pad)}
.lay-band .cv-aside{display:none}
.lay-band .cv-head{background:var(--cv);color:#fff;padding:calc(38px*var(--cv-gap)) var(--pad);display:flex;align-items:center;gap:1.4rem;margin-bottom:var(--sgap)}
.lay-band .cv-head .cv-name{color:#fff}
.lay-band .cv-head .cv-headline{color:rgba(255,255,255,.88)}
.lay-band .cv-head .cv-contact{color:rgba(255,255,255,.92);margin-top:.6rem}
.lay-band .cv-head .cv-contact i{color:rgba(255,255,255,.85)}
.lay-band .cv-head .cv-photo{width:96px;height:96px;border-radius:50%;border:3px solid rgba(255,255,255,.4);order:2;flex:0 0 auto}
.lay-band .cv-head .cv-headtext{flex:1;order:1}
.lay-band .cv-main>.cv-section{padding:0 var(--pad)}
.lay-band .cv-sec-title{position:relative;padding-left:.85rem}
.lay-band .cv-sec-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:.95em;background:var(--cv);border-radius:2px}

/* ---------- AURORA — full-height coloured sidebar + photo ---------- */
.lay-sidebar{display:grid;grid-template-columns:34% 1fr;background:linear-gradient(90deg,var(--cv) 0 34%,#fff 34%)}
.lay-sidebar .cv-aside{padding:var(--pad) calc(26px*var(--cv-gap));color:#fff}
.lay-sidebar .cv-aside .cv-sec-title{color:rgba(255,255,255,.92);border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:.3rem}
.lay-sidebar .cv-aside .cv-contact{flex-direction:column;gap:.45rem;color:rgba(255,255,255,.92)}
.lay-sidebar .cv-aside .cv-contact i{color:rgba(255,255,255,.8)}
.lay-sidebar .cv-aside .cv-skill-tags span{background:rgba(255,255,255,.16);color:#fff}
.lay-sidebar .cv-aside .cv-skill-line{color:rgba(255,255,255,.85)}
.lay-sidebar .cv-aside .cv-skill-line b{color:#fff}
.lay-sidebar .cv-aside .cv-lang{color:rgba(255,255,255,.92)}
.lay-sidebar .cv-aside .cv-lang .lvl{color:rgba(255,255,255,.7)}
.lay-sidebar .cv-aside .cv-langbar{background:rgba(255,255,255,.22)}
.lay-sidebar .cv-aside .cv-langbar i{background:#fff}
.lay-sidebar .cv-aside .cv-summary{color:rgba(255,255,255,.9)}
.lay-sidebar .cv-aside .cv-photo{width:100%;height:auto;aspect-ratio:1;border-radius:12px;margin-bottom:1rem;border:3px solid rgba(255,255,255,.25)}
.lay-sidebar .cv-main{padding:var(--pad) calc(34px*var(--cv-gap))}
.lay-sidebar .cv-aside-name{margin-bottom:1.1rem}
.lay-sidebar .cv-aside-name .cv-name{color:#fff;font-size:1.7rem}
.lay-sidebar .cv-aside-name .cv-headline{color:rgba(255,255,255,.85)}

/* ---------- EXECUTIVE — centred serif, refined rules ---------- */
.lay-centered .cv-main{padding:calc(50px * var(--cv-gap)) var(--pad)}
.lay-centered .cv-aside{display:none}
.lay-centered .cv-head{text-align:center;border-bottom:1px solid var(--cv-rule);padding-bottom:1.1rem;margin-bottom:.2rem}
.lay-centered .cv-name{font-size:2.6rem;font-weight:500;letter-spacing:.01em}
.lay-centered .cv-headline{color:var(--cv);text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;margin-top:.5rem}
.lay-centered .cv-contact{justify-content:center;margin-top:.7rem}
.lay-centered .cv-sec-title{justify-content:center;letter-spacing:.2em}
.lay-centered .cv-sec-title::before,.lay-centered .cv-sec-title::after{content:"";flex:1;height:1px;background:var(--cv-rule)}
.lay-centered .cv-entry-top{justify-content:center;flex-direction:column;align-items:center;text-align:center;gap:.1rem}
.lay-centered .cv-bullets{max-width:none}

/* ---------- COMPACT — dense, decisive ---------- */
.lay-dense{font-size:13.5px}
.lay-dense .cv-main{padding:calc(34px * var(--cv-gap))}
.lay-dense .cv-aside{display:none}
.lay-dense .cv-head{margin-bottom:.3rem;border-bottom:3px double var(--cv);padding-bottom:.5rem}
.lay-dense .cv-name{font-size:1.8rem}
.lay-dense .cv-main>.cv-section{margin-top:calc(13px*var(--cv-gap))}
.lay-dense .cv-sec-title{border-bottom:1px solid var(--cv-rule);padding-bottom:.2rem;margin-bottom:.4rem}
.lay-dense .cv-entry{margin-bottom:calc(9px * var(--cv-gap))}
.lay-dense .cv-bullets li{margin-bottom:.12rem;font-size:.82rem}
.lay-dense .cv-skill-tags span{background:transparent;border:1px solid var(--cv-rule);padding:.12rem .45rem}

/* ---------- TIMELINE — vertical career spine ---------- */
.lay-timeline .cv-main{padding:var(--pad)}
.lay-timeline .cv-aside{display:none}
.lay-timeline .cv-head{border-bottom:2px solid var(--cv);padding-bottom:.6rem;margin-bottom:.4rem}
.lay-timeline .cv-name{color:var(--cv-ink)}
.lay-timeline .cv-contact{margin-top:.5rem}
.lay-timeline .cv-section{position:relative}
.lay-timeline .cv-entry{position:relative;padding-left:1.5rem;margin-bottom:calc(16px*var(--cv-gap))}
.lay-timeline .cv-entry::before{content:"";position:absolute;left:4px;top:.42rem;width:9px;height:9px;border-radius:50%;background:var(--cv);box-shadow:0 0 0 3px color-mix(in srgb,var(--cv) 18%,#fff);z-index:1}
.lay-timeline .cv-entry::after{content:"";position:absolute;left:8px;top:1rem;bottom:calc(-16px*var(--cv-gap));width:2px;background:var(--cv-rule)}
.lay-timeline .cv-entry:last-child::after{display:none}
.lay-timeline .cv-sec-title{margin-left:1.5rem}

/* ---------- EUROPASS — structured European CV ---------- */
.lay-europass{display:grid;grid-template-columns:30% 1fr;background:linear-gradient(90deg,var(--cv-soft) 0 30%,#fff 30%)}
.lay-europass .cv-aside{padding:var(--pad) calc(24px*var(--cv-gap))}
.lay-europass .cv-aside .cv-photo{width:100%;height:auto;aspect-ratio:.82;border-radius:8px;margin-bottom:1rem;border:1px solid var(--cv-rule)}
.lay-europass .cv-aside .cv-sec-title{color:var(--cv)}
.lay-europass .cv-aside .cv-contact{flex-direction:column;gap:.4rem}
.lay-europass .cv-main{padding:var(--pad) calc(32px*var(--cv-gap))}
.lay-europass .cv-head{margin-bottom:.2rem}
.lay-europass .cv-name{font-size:2rem}
.lay-europass .cv-sec-title{border-bottom:2px solid var(--cv);padding-bottom:.25rem}
.lay-europass .cv-main .cv-entry-top{flex-direction:column;gap:.05rem}
.lay-europass .cv-when{color:var(--cv);font-weight:600}

/* ---------- ACADEMIC — gutter labels, journal whitespace ---------- */
.lay-academic .cv-main{padding:calc(54px*var(--cv-gap)) calc(52px*var(--cv-gap))}
.lay-academic .cv-aside{display:none}
.lay-academic .cv-head{text-align:center;margin-bottom:calc(28px*var(--cv-gap))}
.lay-academic .cv-name{font-size:2.3rem;font-weight:500;letter-spacing:.04em}
.lay-academic .cv-headline{color:var(--cv-dim);font-style:italic;letter-spacing:.02em}
.lay-academic .cv-contact{justify-content:center;margin-top:.6rem;font-size:.76rem}
.lay-academic .cv-section{display:grid;grid-template-columns:128px 1fr;gap:1.2rem;margin-top:calc(22px*var(--cv-gap))}
.lay-academic .cv-sec-title{display:block;text-align:right;border:0;padding:0;margin:.2rem 0 0;font-size:.72rem;letter-spacing:.16em;color:var(--cv)}
.lay-academic .cv-role{font-weight:600}
.lay-academic .cv-bullets li{font-size:.85rem}

/* free-tier footer credit (light + honest; no heavy diagonal watermark) */
.cv-foot-mark{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:.62rem;color:rgba(20,20,30,.30);font-family:"DM Mono",monospace;letter-spacing:.08em}

/* cover letter */
.tpl-letter .cv-main{padding:calc(56px*var(--cv-gap)) calc(60px*var(--cv-gap))}
.tpl-letter .cv-aside{display:none}
.cl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-bottom:2px solid var(--cv);padding-bottom:1rem;margin-bottom:1.6rem}
.cl-head .cv-name{font-size:1.8rem}
.cl-meta{text-align:right;font-size:.78rem;color:var(--cv-dim);line-height:1.6}
.cl-date{margin-bottom:1.2rem;font-size:.86rem;color:var(--cv-dim)}
.cl-to{margin-bottom:1.4rem;font-size:.88rem;line-height:1.5}
.cl-to b{color:var(--cv-ink)}
.cl-body{font-size:.92rem;line-height:1.75;white-space:pre-wrap}
.cl-body p{margin-bottom:1rem}
.cl-sign{margin-top:1.8rem;font-size:.92rem}
.cl-sign .nm{font-family:var(--cv-head);font-size:1.2rem;color:var(--cv-ink);margin-top:.3rem}

/* ============================== PRINT ============================== */
@page{size:A4;margin:12mm 0}
@media print{
  @page{size:A4}
  html,body{background:#fff!important;height:auto!important;overflow:visible!important}
  .toolbar,.panel,.panel-tabs,.preview-bar,.ats-panel,.modal-bg,.mdock,.toast,
  .overflow-warn,.zoom,.page-flag,.hamburger,.hdr,.skip-link{display:none!important}
  .app-shell{display:block!important;height:auto!important}
  .editor{display:block!important}
  .preview{display:block!important;position:static!important;padding:0!important;margin:0!important;overflow:visible!important;background:#fff!important;height:auto!important}
  .paper-stage{transform:none!important;width:auto!important;margin:0!important}
  .cv-paper{box-shadow:none!important;border-radius:0!important;width:100%!important;max-width:100%!important;margin:0!important}
  .cv-doc{min-height:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .cv-doc *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .cv-entry,.cv-section{break-inside:avoid}
  .cv-sec-title{break-after:avoid}
}
/* Letter page size injected at print time by the app (dynamic @page rule). */
