* { margin:0; padding:0; box-sizing:border-box; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
body { font-family: 'DejaVu Sans', Arial, sans-serif; background:#d0ccc5; display:flex; justify-content:center; padding:28px 16px; }

/* ── PAGE A4 ── */
.page { width:210mm; background:#fff; box-shadow:0 16px 48px rgba(0,0,0,.25); }

/* ══════════════════════════════
   HEADER SOMBRE
══════════════════════════════ */
.header {
  background:#2E2E2E;
  padding:22px 28px 18px;
  display:flex; align-items:center; gap:20px;
  position:relative;
}
.photo-circle {
  width:80px; height:80px; border-radius:50%; flex-shrink:0;
  background:#444; border:3px solid #fff;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.photo-circle img { width:100%; height:100%; object-fit:cover; }
.photo-placeholder { font-size:8pt; color:rgba(255,255,255,.4); font-style:italic; text-align:center; line-height:1.4; padding:8px; }

.header-text { flex:1; }
.h-supertitle { font-size:8pt; color:rgba(255,255,255,.55); letter-spacing:2px; text-transform:uppercase; margin-bottom:5px; }
.h-name { line-height:1.0; margin-bottom:10px; }
.h-name-last {
  font-size:30pt; font-weight:bold; color:#fff;
  letter-spacing:2px; text-transform:uppercase;
  display:block;
}
.h-name-first {
  font-size:22pt; font-weight:300; color:rgba(255,255,255,.85);
  display:block; margin-top:-4px;
}
.h-objective {
  font-size:8.5pt; color:rgba(255,255,255,.7);
  line-height:1.6; max-width:420px;
}
.h-objective strong { color:#fff; }
.h-objective span.hl { color:#E07070; font-weight:bold; }

/* ══════════════════════════════
   BODY DEUX COLONNES
══════════════════════════════ */
.body-layout { display:flex; }

/* ── SIDEBAR ── */
.sidebar {
  width:62mm; flex-shrink:0;
  background:#F2F0ED;
  padding:20px 16px;
  border-right:1px solid #E0DDD8;
}

.s-section { margin-bottom:16px; }
.s-title {
  font-size:10pt; font-weight:bold; color:#2E2E2E;
  border-bottom:2px solid #2E2E2E;
  padding-bottom:3px; margin-bottom:8px;
}

/* Contact */
.contact-item { display:flex; align-items:flex-start; gap:7px; margin-bottom:5px; }
.contact-icon { color:#2E2E2E; font-size:10pt; flex-shrink:0; margin-top:1px; width:14px; text-align:center; }
.contact-text { font-size:8pt; color:#333; line-height:1.4; word-break:break-all; }
.contact-text a { color:#333; text-decoration:none; }

/* Compétences avec icônes */
.comp-item { display:flex; align-items:flex-start; gap:7px; margin-bottom:6px; }
.comp-icon {
  width:20px; height:20px; border-radius:4px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:10pt; background:#2E2E2E; color:#fff;
}
.comp-icon.bc  { background:#00B7C3; }
.comp-icon.py  { background:#3776AB; color:#FFD43B; }
.comp-icon.js  { background:#F7DF1E; color:#333; }
.comp-icon.dkr { background:#2496ED; }
.comp-icon.db  { background:#E05C00; color:#fff; }
.comp-icon.az  { background:#0078D4; }
.comp-icon.git { background:#F05033; }
.comp-icon.lnx { background:#333; }
.comp-icon.off { background:#D83B01; }
.comp-right {}
.comp-name  { font-size:8pt; font-weight:bold; color:#2E2E2E; line-height:1.3; }
.comp-hours { font-size:7pt; color:#777; }
.comp-sub   { font-size:7pt; color:#999; font-style:italic; }

/* Certifications */
.certif-item { display:flex; align-items:center; gap:8px; margin-bottom:7px; padding:5px 8px; background:#fff; border:1px solid #DDD; border-radius:4px; }
.certif-logo { font-size:16pt; flex-shrink:0; }
.certif-right {}
.certif-name { font-size:7.5pt; font-weight:bold; color:#2E2E2E; line-height:1.3; }
.certif-status { font-size:6.5pt; color:#777; margin-top:1px; }
.certif-status.ok { color:#2E7D32; font-weight:bold; }
.certif-status.wip { color:#E65100; font-style:italic; }

/* Langues */
.lang-item { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:4px; }
.lang-name { font-size:9pt; font-weight:bold; color:#2E2E2E; }
.lang-level { font-size:8pt; color:#666; }

/* Intérêts */
.int-cat { font-size:7.5pt; color:#666; margin-bottom:2px; }
.int-val  { font-size:8pt; font-weight:bold; color:#2E2E2E; margin-bottom:6px; }

/* ── MAIN CONTENT ── */
.main { flex:1; padding:18px 22px; }

.sec-title-m {
  font-size:13pt; font-weight:bold; color:#2E2E2E;
  border-bottom:2px solid #2E2E2E;
  padding-bottom:3px; margin-bottom:10px; margin-top:14px;
}
.sec-title-m:first-child { margin-top:0; }

/* Formation */
.edu-item { display:flex; gap:12px; margin-bottom:10px; }
.edu-left  { width:52px; flex-shrink:0; }
.edu-year  { font-size:7.5pt; color:#666; line-height:1.4; }
.edu-org   { font-size:7pt; font-weight:bold; color:#2E2E2E; margin-top:2px; }
.edu-right { flex:1; }
.edu-degree { font-size:9.5pt; font-weight:bold; color:#2E2E2E; }
.edu-detail { font-size:8pt; color:#444; line-height:1.5; margin-top:2px; }
.edu-detail em { font-style:italic; }
.edu-link  { font-size:7.5pt; color:#2E2E2E; }
.edu-sep   { border:none; border-top:1px solid #E5E5E5; margin:8px 0; }

/* Projets */
.proj-item { display:flex; gap:12px; margin-bottom:12px; }
.proj-left { width:52px; flex-shrink:0; }
.proj-company { font-size:7pt; font-weight:bold; color:#2E2E2E; text-transform:uppercase; letter-spacing:.5px; }
.proj-year    { font-size:7pt; color:#777; margin-top:1px; }
.proj-tools   { font-size:7pt; color:#777; font-style:italic; margin-top:2px; }
.proj-right { flex:1; }
.proj-header { display:flex; align-items:center; gap:8px; margin-bottom:3px; }
.proj-title  { font-size:9.5pt; font-weight:bold; color:#2E2E2E; flex:1; }
.proj-logo   {
  font-size:7pt; color:#fff; background:#2E2E2E;
  padding:2px 6px; border-radius:3px; white-space:nowrap; flex-shrink:0;
}
.proj-logo.ms  { background:#00B7C3; }
.proj-logo.az  { background:#0078D4; }
.proj-logo.git { background:#F05033; }
.proj-logo.ecole { background:#2E2E2E; }
.proj-desc { font-size:8.5pt; color:#333; line-height:1.55; margin-bottom:3px; }
.proj-skills { font-size:7.5pt; color:#666; font-style:italic; }
.proj-sep  { border:none; border-top:1px solid #E5E5E5; margin:8px 0; }

/* Expériences */
.exp-item { display:flex; gap:12px; margin-bottom:10px; }
.exp-left  { width:52px; flex-shrink:0; }
.exp-period { font-size:7pt; font-weight:bold; color:#2E2E2E; text-transform:uppercase; letter-spacing:.5px; }
.exp-org    { font-size:7pt; color:#777; margin-top:1px; font-weight:bold; }
.exp-right  { flex:1; }
.exp-title  { font-size:9.5pt; font-weight:bold; color:#2E2E2E; margin-bottom:3px; }
.exp-desc   { font-size:8.5pt; color:#333; line-height:1.55; margin-bottom:3px; }
.exp-skills { font-size:7.5pt; color:#666; font-style:italic; }
.exp-sep    { border:none; border-top:1px solid #E5E5E5; margin:8px 0; }

@media print {
  body { background:#fff; padding:0; }
  .page { box-shadow:none; width:210mm; }
  .no-print { display:none !important; }
}
.prt-btn {
  position:fixed; bottom:20px; right:20px;
  background:#2E2E2E; color:#fff; border:none;
  padding:9px 18px; border-radius:28px; font-size:11pt; font-weight:bold;
  cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.3); z-index:999;
}
.prt-btn:hover { background:#C0392B; }