:root{
  --ink:#16121f;
  --muted:#5b5468;
  --acc:#7c3aed;
  --acc2:#60a5fa;
  --line:#e6e2ee;
  --chipbg:#f4f1fa;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{background:#3a3344;}
body{font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;}

/* ── barre d'outils écran ── */
.toolbar{position:sticky;top:0;z-index:10;display:flex;justify-content:center;gap:12px;padding:14px;background:rgba(22,18,31,.92);backdrop-filter:blur(10px);}
.toolbar button,.toolbar a{font-family:inherit;font-size:13px;font-weight:700;border-radius:8px;padding:9px 20px;cursor:pointer;text-decoration:none;border:1px solid rgba(255,255,255,.18);background:transparent;color:#cfc8dd;transition:all .2s;}
.toolbar button:hover,.toolbar a:hover{color:#fff;border-color:#fff;}
.toolbar .primary{background:linear-gradient(135deg,#7c3aed,#60a5fa);color:#fff;border:none;}
.toolbar .lang.on{background:#fff;color:#16121f;border-color:#fff;}

/* ── page A4 ── */
.page{width:210mm;min-height:297mm;margin:18px auto;background:#fff;padding:14mm 15mm;box-shadow:0 20px 60px rgba(0,0,0,.45);}

/* en-tête */
.cv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:14px;border-bottom:2.5px solid var(--ink);margin-bottom:16px;}
h1{font-size:25pt;font-weight:800;letter-spacing:-1.5px;line-height:1.02;}
h1 span{background:linear-gradient(135deg,#7c3aed,#60a5fa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.cv-role{font-size:11.5pt;font-weight:700;color:var(--acc);margin-top:4px;}
.cv-contact{text-align:right;font-size:8.5pt;color:var(--muted);line-height:1.8;font-weight:500;}
.cv-contact a{color:var(--ink);text-decoration:none;font-weight:700;}

/* corps deux colonnes */
.cv-cols{display:grid;grid-template-columns:1fr 62mm;gap:9mm;}

/* titres de rubrique */
h2.rub{font-size:9pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);border-bottom:1px solid var(--line);padding-bottom:5px;margin:0 0 10px;}
section{margin-bottom:13px;}
section.tight{margin-bottom:10px;}

/* expériences */
.job{margin-bottom:9px;break-inside:avoid;}
.job-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.job-role{font-size:10.5pt;font-weight:800;letter-spacing:-.2px;}
.job-dates{font-size:8pt;font-weight:700;color:var(--acc2);white-space:nowrap;}
.job-co{font-size:8.5pt;color:var(--muted);font-weight:600;margin:1px 0 5px;}
.job ul{list-style:none;}
.job li{font-size:8.6pt;color:#3c3548;line-height:1.42;padding-left:11px;position:relative;margin-bottom:1.5px;font-weight:400;}
.job li::before{content:'';position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:var(--acc);}
.job li .mx{display:inline;font-size:7.6pt;font-weight:800;color:var(--acc2);white-space:nowrap;}

/* éducation */
.edu{margin-bottom:9px;break-inside:avoid;}
.edu-deg{font-size:9.3pt;font-weight:700;line-height:1.3;}
.edu-sch{font-size:8.3pt;color:var(--muted);margin-top:1px;}
.edu-yr{font-size:8pt;font-weight:700;color:var(--acc2);}

/* certifs */
.cert{display:flex;gap:8px;font-size:8.4pt;margin-bottom:5px;line-height:1.4;break-inside:avoid;}
.cert b{color:var(--acc2);font-weight:800;flex-shrink:0;}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:5px;}
.chip{font-size:8pt;font-weight:600;background:var(--chipbg);border:1px solid var(--line);color:var(--ink);padding:3px 9px;border-radius:20px;}

/* fonctionnelles */
.funcs{list-style:none;}
.funcs li{font-size:8.5pt;color:#3c3548;line-height:1.5;padding-left:11px;position:relative;margin-bottom:3.5px;}
.funcs li::before{content:'◆';position:absolute;left:0;top:1px;color:var(--acc2);font-size:6.5pt;}

/* langues */
.langrow{display:flex;justify-content:space-between;align-items:baseline;font-size:8.8pt;margin-bottom:5px;}
.langrow b{font-weight:700;}
.langrow span{color:var(--acc2);font-weight:600;font-size:8pt;}

/* soft / intérêts compact */
.mini{font-size:8.4pt;color:var(--muted);line-height:1.7;}

@media print{
  html,body{background:#fff;}
  .toolbar{display:none;}
  .page{width:auto;min-height:0;margin:0;padding:0;box-shadow:none;}
  @page{size:A4;margin:13mm 14mm;}
}
@media(max-width:840px){
  .page{width:100%;margin:0;padding:24px 20px;}
  .cv-cols{grid-template-columns:1fr;}
  .cv-top{flex-direction:column;}
  .cv-contact{text-align:left;}
}
