/* Générateurs */
.gtools{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.gtool{display:flex;flex-direction:column;align-items:flex-start;padding:24px;border-radius:20px;background:var(--surface);border:1px solid var(--line);color:var(--text);transition:transform .18s,box-shadow .18s}
a.gtool:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.gtool h2{font-size:1.15rem;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gtool p{margin:0 0 14px;color:var(--muted);font-size:.9rem}
.gtool .more{margin-top:auto}
.gtool.soon{opacity:.7;border-style:dashed}
.soon-tag{font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--tint);color:var(--primary)}
.gtext{max-width:760px;margin:40px auto}
.gtext h2{font-size:1.3rem;font-weight:600;margin-bottom:10px}
.gtext p{color:var(--muted)}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:14px}
.gcard h2{font-size:1rem;font-weight:600;margin:0 0 12px}
.f{margin-bottom:10px}
.f label,.li label{display:block;font-size:.82rem;font-weight:500;color:var(--muted)}
.f input,.f textarea,.f select,.li input,.li textarea,.li select{display:block;width:100%;margin-top:5px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;font-size:.92rem}
.f input:focus,.f textarea:focus,.f select:focus,.li input:focus,.li textarea:focus,.li select:focus{outline:2px solid var(--primary);outline-offset:0}
.f textarea,.li textarea{resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.li{padding:12px;border:1px dashed var(--line);border-radius:14px;margin-bottom:10px}
.li label{margin-bottom:8px}
.li-del{background:none;border:0;color:#e11d48;font:500 .8rem var(--font);cursor:pointer;padding:2px 0}
.seg{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.seg button{flex:1 1 auto;padding:9px 6px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:500 .88rem var(--font);cursor:pointer}
.seg button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.swatches button{width:32px;height:32px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}
.swatches button.on{box-shadow:0 0 0 2px var(--text)}
.photo-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}

.cv-app{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:24px;align-items:start;margin-top:16px}
.cv-side{position:sticky;top:84px;min-width:0}
.cv-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.gnote{font-size:.82rem;color:var(--muted);margin:0 0 12px}
.cv-tabs{display:none}
.cv-wrap{width:100%;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#e9eaf5}
#sheet{transform-origin:top left}

/* Feuille A4 */
.cv{width:794px;min-height:1123px;background:#fff;color:#1f2433;font:400 var(--fs,13px)/1.5 var(--ff,'Poppins',Arial,sans-serif);box-sizing:border-box;--c:#4338ca}
.cv *{box-sizing:border-box}
.cv h1,.cv h2,.cv h3,.cv h4,.cv p,.cv ul{margin:0}
.cv .empty{opacity:.35}
.cv .rt p{margin:0 0 3px}
.cv .rt ul{padding-left:16px;margin:2px 0 4px}
.cv .it{margin-bottom:12px;break-inside:avoid}
.cv .it-h{display:flex;justify-content:space-between;gap:10px}
.cv .dt{color:#6b7280;font-size:.88em;white-space:nowrap}
.cv .sub{color:var(--c);font-weight:500;font-size:.94em;word-break:break-word}
.cv .ph{width:110px;height:110px;border-radius:50%;object-fit:cover;flex:none}
.cv.ph-square .ph{border-radius:10px}
.cv .tag-sk{display:inline-block;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c);margin:0 5px 5px 0;font-size:.92em}
.cv .ll span{display:inline-block;margin-right:16px}
.cv aside li{list-style:none;font-size:.92em;margin-bottom:4px;word-break:break-word}
.cv aside ul{padding:0}
.cv aside .cs{margin-bottom:8px;font-size:.92em}
.cv aside .cs b{display:block}
.cv aside .cs small{display:block;opacity:.85;font-size:.9em}
.cv .lg{display:flex;justify-content:space-between;align-items:center;font-size:.92em;margin-bottom:6px;gap:8px}
.cv .dots{display:flex;gap:3px}
.cv .dots span{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.25}
.cv .dots span.on{opacity:1}
.cv .cl{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.92em}
/* Moderne : colonne latérale colorée à gauche */
.cv.t-moderne{display:grid;grid-template-columns:240px 1fr}
.t-moderne aside{background:var(--c);color:#fff;padding:34px 22px}
.t-moderne aside .ph{display:block;margin:0 auto 22px;border:4px solid rgba(255,255,255,.35)}
.t-moderne aside section{margin-bottom:20px}
.t-moderne aside h4{font-size:.85em;text-transform:uppercase;letter-spacing:.01em;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.35)}
.t-moderne .main{padding:38px 32px}
.t-moderne .hd{margin-bottom:20px}
.t-moderne h1{font-size:30px;line-height:1.15;font-weight:700;color:var(--c)}
.t-moderne h2{font-size:15px;font-weight:500;color:#4b5563;margin-top:4px}
.t-moderne .main section{margin-bottom:18px}
.t-moderne .main h3{font-size:.92em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid var(--c)}
/* Bandeau : colonne claire à droite */
.cv.t-bandeau{display:grid;grid-template-columns:1fr 250px}
.t-bandeau .main{padding:40px 30px 40px 38px}
.t-bandeau aside{background:#f1f2f8;padding:40px 22px}
.t-bandeau aside .ph{display:block;margin:0 auto 20px}
.t-bandeau h1{font-size:30px;line-height:1.15;font-weight:700}
.t-bandeau h2{font-size:15px;font-weight:500;color:var(--c);margin:4px 0 18px}
.t-bandeau .main section{margin-bottom:18px}
.t-bandeau .main h3{font-size:.92em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);margin-bottom:8px}
.t-bandeau aside section{margin-bottom:18px}
.t-bandeau aside h4{font-size:.85em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid var(--c)}
/* Élégant : bandeau coloré en tête */
.t-elegant .band{background:var(--c);color:#fff;padding:34px 40px;display:flex;align-items:center;gap:24px}
.t-elegant .band .ph{border:4px solid rgba(255,255,255,.4)}
.t-elegant h1{font-size:32px;font-weight:700;line-height:1.1}
.t-elegant h2{font-size:15px;font-weight:400;opacity:.9;margin:4px 0 10px}
.t-elegant .cols{display:grid;grid-template-columns:1fr 230px;gap:0}
.t-elegant .main{padding:28px 28px 36px 40px}
.t-elegant aside{padding:28px 32px 36px 24px;border-left:1px solid #e5e7eb}
.t-elegant section{margin-bottom:18px}
.t-elegant h3,.t-elegant h4{font-size:.92em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);margin-bottom:8px}
/* Chronologie : frise */
.t-chrono{padding:34px 44px}
.t-chrono .hd{display:flex;align-items:center;gap:22px;margin-bottom:14px}
.t-chrono h1{font-size:32px;font-weight:700;color:var(--c);line-height:1.1}
.t-chrono h2{font-size:15px;font-weight:500;color:#4b5563;margin:4px 0 8px}
.t-chrono section{margin-bottom:12px}
.t-chrono h3{display:inline-block;font-size:.88em;text-transform:uppercase;letter-spacing:.01em;background:var(--c);color:#fff;padding:3px 14px;border-radius:999px;margin-bottom:8px}
.t-chrono .it{margin-bottom:8px}
.t-chrono .it{border-left:2px solid color-mix(in srgb,var(--c) 35%,#fff);padding-left:16px;position:relative;margin-left:5px}
.t-chrono .it::before{content:'';position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--c)}
/* Classique */
.t-classique{padding:36px 48px;font-family:var(--ff,Georgia,'Times New Roman',serif)}
.t-classique .hd{text-align:center;border-bottom:2px solid var(--c);padding-bottom:16px;margin-bottom:18px}
.t-classique .hd .ph{margin:0 auto 10px;display:block}
.t-classique h1{font-size:30px;color:var(--c);letter-spacing:.02em}
.t-classique h2{font-size:15px;font-weight:400;font-style:italic;color:#4b5563}
.t-classique .cl{justify-content:center;margin-top:8px;color:#4b5563}
.t-classique section{margin-bottom:16px}
.t-classique h3{font-size:1em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);margin-bottom:8px}
/* Minimal */
.t-minimal{padding:50px 54px}
.t-minimal .hd{display:flex;align-items:center;gap:20px}
.t-minimal h1{font-size:34px;font-weight:600;line-height:1.1}
.t-minimal h2{font-size:15px;font-weight:400;color:var(--c);margin-top:4px}
.t-minimal .bar{height:4px;width:60px;background:var(--c);margin:18px 0 12px}
.t-minimal .cl{color:#6b7280;margin-bottom:20px;gap:4px 18px}
.t-minimal section{display:grid;grid-template-columns:130px 1fr;gap:14px;margin-bottom:16px}
.t-minimal h3{font-size:.88em;text-transform:uppercase;letter-spacing:.01em;color:var(--c);padding-top:2px}
/* Compact (lisible par les logiciels de recrutement) */
.t-compact{padding:36px 44px;font-family:var(--ff,Arial,Helvetica,sans-serif)}
.t-compact .hd{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #111}
.t-compact h1{font-size:26px;font-weight:700}
.t-compact h2{font-size:14px;font-weight:400;color:#374151;margin:2px 0 6px}
.t-compact .cl{color:#374151}
.t-compact section{margin-bottom:11px}
.t-compact h3{font-size:.94em;text-transform:uppercase;letter-spacing:.01em;border-bottom:1px solid #9ca3af;padding-bottom:2px;margin-bottom:6px}
.t-compact .it{margin-bottom:8px}
.t-compact .sub{color:#374151}
.t-compact .tag-sk{background:none;padding:0;margin:0 8px 0 0;color:#1f2433}
/* Exécutif */
.t-executif .band{background:#0f172a;color:#fff;padding:28px 44px;display:flex;align-items:center;gap:24px}
.t-executif h1{font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:1.15}
.t-executif h2{font-size:14px;font-weight:500;letter-spacing:.01em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 45%,#fff);margin:6px 0 12px}
.t-executif .band .cl{opacity:.85}
.t-executif .body{padding:20px 44px 30px}
.t-executif section{margin-bottom:11px}
.t-executif .it{margin-bottom:8px}
.t-executif h3{font-size:.94em;text-transform:uppercase;letter-spacing:.01em;margin-bottom:8px;padding-left:10px;border-left:4px solid var(--c)}
.cv.ph-none .ph{display:none}


/* ===== Nouveaux modèles (une colonne, lecture linéaire) ===== */
.t-harvard,.t-britannique,.t-tech,.t-mixte,.t-fonctionnel,.t-etudiant,.t-academique,.t-cadre,.t-basique,.t-europe,.t-barre,.t-souligne,.t-encadre,.t-creatif,.t-pastel,.t-geometrique,.t-photo,.t-ruban{--p:40px}
.t-harvard .hd,.t-britannique .hd,.t-tech .hd,.t-mixte .hd,.t-fonctionnel .hd,.t-academique .hd,.t-basique .hd,.t-barre .hd,.t-souligne .hd,.t-encadre .hd,.t-ruban .hd,.t-photo .hd{padding:var(--p) 48px 0;display:flex;align-items:center;gap:20px}
.t-harvard .hd .bt,.t-britannique .hd .bt{flex:1}
:is(.t-harvard,.t-britannique,.t-tech,.t-mixte,.t-fonctionnel,.t-etudiant,.t-academique,.t-cadre,.t-basique,.t-europe,.t-barre,.t-souligne,.t-encadre,.t-creatif,.t-pastel,.t-geometrique,.t-photo,.t-ruban) .body{padding:18px 48px 36px}
:is(.t-harvard,.t-britannique,.t-tech,.t-mixte,.t-fonctionnel,.t-etudiant,.t-academique,.t-cadre,.t-basique,.t-europe,.t-barre,.t-souligne,.t-encadre,.t-creatif,.t-pastel,.t-geometrique,.t-photo,.t-ruban) .band .bt{flex:1}

.t-harvard .tag-sk,.t-britannique .tag-sk,.t-basique .tag-sk,.t-academique .tag-sk,.t-cadre .tag-sk,.t-barre .tag-sk,.t-souligne .tag-sk,.t-europe .tag-sk,.t-ruban .tag-sk{background:none;padding:0;margin:0 12px 2px 0;color:inherit;border-radius:0}
:is(.t-harvard,.t-britannique,.t-tech,.t-mixte,.t-fonctionnel,.t-etudiant,.t-academique,.t-cadre,.t-basique,.t-europe,.t-barre,.t-souligne,.t-encadre,.t-creatif,.t-pastel,.t-geometrique,.t-photo,.t-ruban) section{margin-bottom:14px}
/* Harvard */
.t-harvard{font-family:var(--ff,Georgia,'Times New Roman',serif)}
.t-harvard .hd{flex-direction:column;text-align:center;gap:6px}
.t-harvard h1{font-size:26px;font-weight:700;color:#111}
.t-harvard h2{font-size:14px;font-weight:400;font-style:italic;color:#374151}
.t-harvard .cl{justify-content:center;color:#374151}
.t-harvard .body{padding-top:14px}
.t-harvard h3{font-size:.95em;text-transform:uppercase;font-weight:700;border-bottom:1px solid #111;padding-bottom:2px;margin-bottom:8px;color:#111}
.t-harvard .sub{color:#374151;font-style:italic}
/* Britannique */
.t-britannique{font-family:var(--ff,Arial,Helvetica,sans-serif)}
.t-britannique h1{font-size:28px;font-weight:700;color:var(--c)}
.t-britannique h2{font-size:14px;font-weight:400;color:#4b5563}
.t-britannique .cl{margin-top:6px;color:#4b5563}
.t-britannique h3{font-size:1em;font-weight:700;color:var(--c);border-bottom:1px solid var(--c);padding-bottom:3px;margin-bottom:8px}
/* Tech */
.t-tech{font-family:var(--ff,'Roboto',Arial,sans-serif)}
.t-tech h1{font-size:28px;font-weight:700}
.t-tech h2{font-size:14px;font-weight:500;color:var(--c);margin-top:2px;font-family:ui-monospace,Menlo,Consolas,monospace}
.t-tech .cl{margin-top:6px;color:#4b5563;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}
.t-tech .hd{border-bottom:3px solid var(--c);margin:0 48px;padding:36px 0 14px}
.t-tech .body{padding-top:16px}
.t-tech h3{font-size:.9em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px;font-family:ui-monospace,Menlo,Consolas,monospace}
.t-tech .tag-sk{border-radius:4px;background:#f3f4f6;color:#111;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}
/* Mixte (compétences d'abord) */
.t-mixte h1{font-size:30px;font-weight:700;color:var(--c)}
.t-mixte h2{font-size:15px;font-weight:500;color:#4b5563}
.t-mixte .cl{margin-top:6px;color:#4b5563}
.t-mixte .hd{border-bottom:2px solid var(--c);margin:0 48px;padding:36px 0 14px}
.t-mixte .body{padding-top:16px}
.t-mixte h3{font-size:.92em;text-transform:uppercase;font-weight:700;border-left:4px solid var(--c);padding-left:10px;margin-bottom:8px}
/* Fonctionnel (par compétences) */
.t-fonctionnel h1{font-size:30px;font-weight:700}
.t-fonctionnel h2{font-size:15px;color:var(--c);font-weight:500}
.t-fonctionnel .cl{margin-top:6px;color:#4b5563}
.t-fonctionnel .body{padding-top:16px}
.t-fonctionnel h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
.t-fonctionnel .s-skills,.t-fonctionnel .s-certs{background:color-mix(in srgb,var(--c) 8%,#fff);border-radius:10px;padding:12px 16px}
/* Étudiant / premier emploi */
.t-etudiant .band{background:color-mix(in srgb,var(--c) 10%,#fff);padding:30px 48px;display:flex;align-items:center;gap:22px}
.t-etudiant h1{font-size:30px;font-weight:700;color:var(--c)}
.t-etudiant h2{font-size:15px;font-weight:500;color:#374151}
.t-etudiant .cl{margin-top:6px;color:#4b5563}
.t-etudiant h3{display:inline-block;font-size:.9em;text-transform:uppercase;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);padding:3px 12px;border-radius:6px;margin-bottom:8px}
/* Académique */
.t-academique{font-family:var(--ff,Georgia,'Times New Roman',serif);text-align:left}
.t-academique .hd{flex-direction:column;text-align:center;gap:4px}
.t-academique h1{font-size:26px;font-weight:700;color:var(--c)}
.t-academique h2{font-size:14px;font-weight:400;font-style:italic;color:#4b5563}
.t-academique .cl{justify-content:center;color:#4b5563}
.t-academique h3{font-size:1em;font-weight:700;text-align:center;border-top:1px solid #9ca3af;border-bottom:1px solid #9ca3af;padding:3px 0;margin-bottom:10px;text-transform:uppercase}
/* Cadre (senior) */
.t-cadre{border-top:10px solid var(--c)}
.t-cadre .band{padding:30px 48px 6px;display:flex;align-items:center;gap:22px}
.t-cadre h1{font-size:34px;font-weight:700;line-height:1.1}
.t-cadre h2{font-size:15px;font-weight:500;color:var(--c);margin:4px 0 8px}
.t-cadre .cl{color:#4b5563}
.t-cadre .s-profil .rt{font-size:1.05em;border-left:4px solid var(--c);padding-left:14px;color:#374151}
.t-cadre .s-profil h3{display:none}
.t-cadre h3{font-size:.95em;text-transform:uppercase;font-weight:700;border-bottom:2px solid #111;padding-bottom:3px;margin-bottom:8px}
/* Basique */
.t-basique{font-family:var(--ff,Arial,Helvetica,sans-serif);color:#111}
.t-basique h1{font-size:24px;font-weight:700}
.t-basique h2{font-size:14px;font-weight:400}
.t-basique .sub{color:#374151}
.t-basique h3{font-size:.95em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.t-basique .hd{padding-bottom:6px}
/* Europe */
.t-europe .band{border-left:8px solid var(--c);margin:40px 48px 6px;padding:2px 0 2px 16px;display:flex;align-items:center;gap:18px}
.t-europe h1{font-size:30px;font-weight:700;color:var(--c)}
.t-europe h2{font-size:15px;font-weight:500;color:#374151}
.t-europe .cl{margin-top:6px;color:#4b5563}
.t-europe h3{font-size:.95em;text-transform:uppercase;font-weight:700;color:var(--c);border-bottom:1px solid #d1d5db;padding-bottom:3px;margin-bottom:8px}
/* Barre colorée */
.t-barre h1{font-size:30px;font-weight:700}
.t-barre h2{font-size:15px;font-weight:500;color:var(--c)}
.t-barre .cl{margin-top:6px;color:#4b5563}
.t-barre h3{background:var(--c);color:#fff;font-size:.9em;text-transform:uppercase;font-weight:600;padding:4px 12px;margin-bottom:8px;border-radius:3px}
/* Souligné */
.t-souligne h1{font-size:30px;font-weight:700;color:var(--c)}
.t-souligne h2{font-size:15px;font-weight:500;color:#374151}
.t-souligne .cl{margin-top:6px;color:#4b5563}
.t-souligne h3{display:inline-block;font-size:.92em;text-transform:uppercase;font-weight:700;border-bottom:3px solid var(--c);padding-bottom:2px;margin-bottom:10px}
/* Encadré */
.t-encadre h1{font-size:30px;font-weight:700;color:var(--c)}
.t-encadre h2{font-size:15px;font-weight:500;color:#374151}
.t-encadre .cl{margin-top:6px;color:#4b5563}
.t-encadre .body section{border:1px solid #d1d5db;border-radius:10px;padding:8px 14px;margin-bottom:9px}
.t-encadre h3{font-size:.9em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
/* Créatif : bandeau en diagonale */
.t-creatif .band{background:var(--c);color:#fff;padding:36px 48px 64px;display:flex;align-items:center;gap:22px;clip-path:polygon(0 0,100% 0,100% 78%,0 100%)}
.t-creatif .band .ph{border:4px solid rgba(255,255,255,.5)}
.t-creatif h1{font-size:34px;font-weight:700;line-height:1.1}
.t-creatif h2{font-size:15px;font-weight:400;opacity:.92;margin:4px 0 10px}
.t-creatif .band .cl{opacity:.92}
.t-creatif .body{padding-top:6px}
.t-creatif h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
/* Pastel */
.t-pastel .band{background:color-mix(in srgb,var(--c) 14%,#fff);margin:32px 40px 4px;padding:24px 28px;border-radius:20px;display:flex;align-items:center;gap:20px}
.t-pastel h1{font-size:30px;font-weight:700;color:var(--c)}
.t-pastel h2{font-size:15px;font-weight:500;color:#374151}
.t-pastel .cl{margin-top:6px;color:#4b5563}
.t-pastel h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
.t-pastel .tag-sk{background:color-mix(in srgb,var(--c) 14%,#fff)}
/* Géométrique */
.t-geometrique{position:relative;overflow:hidden}
.t-geometrique::before{content:'';position:absolute;top:-70px;right:-70px;width:240px;height:240px;border-radius:50%;background:color-mix(in srgb,var(--c) 22%,#fff)}
.t-geometrique::after{content:'';position:absolute;top:60px;right:70px;width:90px;height:90px;border-radius:50%;background:var(--c);opacity:.9}
.t-geometrique .band{position:relative;z-index:1;padding:40px 48px 8px;display:flex;align-items:center;gap:20px;max-width:620px}
.t-geometrique .body{position:relative;z-index:1}
.t-geometrique h1{font-size:32px;font-weight:700;line-height:1.1;color:var(--c)}
.t-geometrique h2{font-size:15px;font-weight:500;color:#374151;margin:4px 0 8px}
.t-geometrique .cl{color:#4b5563}
.t-geometrique h3{font-size:.92em;text-transform:uppercase;font-weight:700;margin-bottom:8px;padding-left:12px;border-left:4px solid var(--c)}
/* Photo centrée */
.t-photo .hd{flex-direction:column;text-align:center;gap:6px}
.t-photo .hd .ph{width:128px;height:128px;border:4px solid var(--c)}
.t-photo h1{font-size:30px;font-weight:700}
.t-photo h2{font-size:15px;font-weight:500;color:var(--c)}
.t-photo .cl{justify-content:center;color:#4b5563}
.t-photo h3{font-size:.92em;text-transform:uppercase;font-weight:700;text-align:center;color:var(--c);margin-bottom:8px;border-bottom:1px solid #e5e7eb;padding-bottom:4px}
/* Ruban latéral */
.t-ruban{border-left:16px solid var(--c)}
.t-ruban .hd{padding-left:34px}
.t-ruban .body{padding-left:34px}
.t-ruban h1{font-size:30px;font-weight:700}
.t-ruban h2{font-size:15px;font-weight:500;color:var(--c)}
.t-ruban .cl{margin-top:6px;color:#4b5563}
.t-ruban h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
/* Latéral clair et Infographie (avec colonne latérale) */
.cv.t-lateral{display:grid;grid-template-columns:230px 1fr}
.t-lateral aside{background:#f3f4f6;padding:34px 20px}
.t-lateral aside .ph{display:block;margin:0 auto 20px}
.t-lateral aside section{margin-bottom:18px}
.t-lateral aside h4{font-size:.85em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid var(--c)}
.t-lateral .main{padding:38px 32px}
.t-lateral h1{font-size:30px;font-weight:700;line-height:1.15}
.t-lateral h2{font-size:15px;font-weight:500;color:var(--c);margin:4px 0 16px}
.t-lateral .main section{margin-bottom:18px}
.t-lateral .main h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}
.cv.t-infographie{display:grid;grid-template-columns:224px 1fr}
.t-infographie aside li{font-size:.84em}
.t-infographie aside{background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 60%,#000));color:#fff;padding:34px 18px}
.t-infographie aside .ph{display:block;margin:0 auto 20px;border:4px solid rgba(255,255,255,.4)}
.t-infographie aside section{margin-bottom:18px}
.t-infographie aside h4{font-size:.85em;text-transform:uppercase;font-weight:700;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.4)}
.t-infographie aside .tag-sk{background:rgba(255,255,255,.18);color:#fff}
.t-infographie .main{padding:0 32px 38px}
.t-infographie .hd{background:color-mix(in srgb,var(--c) 10%,#fff);margin:0 -32px 18px;padding:34px 32px 22px;border-bottom:4px solid var(--c)}
.t-infographie h1{font-size:30px;font-weight:700;line-height:1.15;color:var(--c)}
.t-infographie h2{font-size:15px;font-weight:500;color:#374151;margin-top:4px}
.t-infographie .main section{margin-bottom:18px}
.t-infographie .main h3{font-size:.92em;text-transform:uppercase;font-weight:700;color:var(--c);margin-bottom:8px}

/* Outils du générateur de CV */
.grid4{display:grid;grid-template-columns:repeat(4,1fr)}
.grid4 button{font-size:.78rem;padding:9px 2px}
.chk{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:6px}
.chk label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text)}
.chk input{width:auto;margin:0}
.score{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:.85rem}
.sc-bar{flex:1;min-width:120px;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.sc-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2))}
.score ul{flex-basis:100%;margin:0;padding-left:18px;color:var(--muted)}
.score p{flex-basis:100%;margin:0;color:var(--muted)}

/* Prompts et statuts */
.gform{max-width:720px;margin:16px auto}
.gform .row2{margin-bottom:0}
.gres{max-width:720px;margin:16px auto}
.gres[hidden]{display:none}
.promptbox pre{margin:0;padding:16px;white-space:pre-wrap;word-break:break-word;font:400 .9rem/1.6 var(--font);color:var(--text)}
.cats{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.cats button{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 .88rem var(--font);cursor:pointer}
.cats button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.qlist{display:grid;gap:14px}
.qcard{padding:20px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.qcard p{margin:0 0 14px;font-size:1.05rem;font-weight:500;line-height:1.55}
.qact{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:900px){
  .cv-app{grid-template-columns:minmax(0,1fr)}
  .cv-side{position:static;display:none}
  .cv-app.show-preview .cv-ui{display:none}
  .cv-app.show-preview .cv-side{display:block}
  .cv-tabs{display:flex;gap:6px;margin-top:12px}
  .cv-tabs button{flex:1;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 .9rem var(--font);cursor:pointer}
  .cv-tabs button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
  .page-head h1{font-size:1.5rem}
}
@media(max-width:480px){.row2{grid-template-columns:1fr}}

@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important}
  header.site,footer,.cv-ui,.cv-toolbar,.score,.page-head,.cv-tabs,.gnote,.ad,.gtext,.crumbs,.tool-guide,.share,.next-up,.go-further,.pop-more{display:none!important}
  main,.wrap{max-width:none!important;padding:0!important;margin:0!important}
  .cv-app{display:block!important;margin:0!important}
  .cv-side{display:block!important;position:static!important}
  .cv-wrap{height:auto!important;border:0;background:none;overflow:visible}
  #sheet{transform:none!important;min-height:296mm!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Lettre de motivation */
.lt{width:794px;min-height:1123px;background:#fff;color:#1f2433;font:400 14px/1.65 var(--ff,'Poppins',Arial,sans-serif);box-sizing:border-box;--c:#4338ca;transform-origin:top left}
.lt *{box-sizing:border-box}
.lt p{margin:0 0 12px}
.lt .empty{opacity:.35}
.lt .in{padding:56px 64px}
.lt .row{display:flex;justify-content:space-between;gap:30px;margin-bottom:34px}
.lt .from{font-size:.92em}
.lt .to{text-align:right;font-size:.92em}
.lt .lieu{margin-top:14px;color:#6b7280}
.lt .obj{margin:0 0 22px;padding:10px 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}
.lt .pol{margin-top:20px}
.lt .sig{margin-top:34px;text-align:right;font-weight:600;color:var(--c)}
.lt-classique .from div:first-child{font-weight:600;color:var(--c)}
.lt-moderne .band{background:var(--c);color:#fff;padding:34px 64px}
.lt-moderne .band .n{font-size:28px;font-weight:700;line-height:1.15}
.lt-moderne .band .ct{opacity:.9;font-size:.9em;margin-top:6px}
.lt-moderne .in{padding:36px 64px 56px}
.lt-moderne .to{margin-bottom:26px}
.lt-sobre .top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.lt-sobre .n{font-size:26px;font-weight:600}
.lt-sobre .ct{font-size:.85em;color:#6b7280}
.lt-sobre .bar{height:3px;width:60px;background:var(--c);margin:16px 0 28px}
.lt-sobre .to{margin-bottom:26px}
@media print{#sheet.lt{min-height:296mm!important}}

/* Sélecteur de modèles avec miniatures */
.seg.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.seg.thumbs button{display:flex;flex-direction:column;gap:6px;align-items:stretch;padding:6px;text-align:center;line-height:1.25}
.seg.thumbs img,.seg.thumbs .ph{width:100%;aspect-ratio:210/297;object-fit:cover;object-position:top;border-radius:6px;border:1px solid var(--line);background:var(--tint);display:grid;place-items:center;color:var(--primary)}
.seg.thumbs .nm{font-size:.78rem;font-weight:500}
.seg.thumbs button.on{box-shadow:0 0 0 2px var(--primary)}
.seg.thumbs button.on .nm{color:inherit}
.seg.thumbs button[data-locked]{opacity:.8}

/* CV « Officiel (RDC) » : barres numérotées, tableau d'identité, attestation */
.t-officiel{padding:34px 44px;font-family:var(--ff,Verdana,'DejaVu Sans',Arial,sans-serif);color:#111}
.t-officiel h1{text-align:center;font-size:22px;font-weight:700;letter-spacing:.02em;margin:6px 0 22px}
.t-officiel .ph{float:right;width:92px;height:112px;object-fit:cover;border-radius:3px;margin:0 0 8px 12px}
.t-officiel.ph-round .ph{border-radius:3px}
.t-officiel section{margin-bottom:14px;clear:both}
.t-officiel h3{display:flex;gap:22px;background:var(--c);color:#fff;padding:3px 12px;margin:0 0 8px;font-size:1em;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.t-officiel .idt{border-collapse:collapse;width:100%}
.t-officiel .idt td{padding:0 0 1px;vertical-align:top}
.t-officiel .idt td:first-child{width:200px;white-space:nowrap}
.t-officiel ul{list-style:none;margin:0;padding:0}
.t-officiel .sq li,.t-officiel .ar li{position:relative;padding-left:22px;margin-bottom:5px}
.t-officiel .sq li::before{content:'';position:absolute;left:6px;top:.55em;width:5px;height:5px;background:#111}
.t-officiel .ar li::before{content:'';position:absolute;left:6px;top:.45em;border-left:7px solid #111;border-top:4px solid transparent;border-bottom:4px solid transparent}
.t-officiel .rt{margin-top:2px}
.t-officiel .att{margin:22px 0 0;line-height:1.5}
.t-officiel .fait{text-align:right;margin:20px 0 28px;padding-right:20px}
.t-officiel .sig{text-align:right;font-weight:700;padding-right:20px}

/* Impression multi-pages : aucune marge de page (donc aucun en-tête ni pied du navigateur) ; les marges haut et bas de 12 mm
   viennent des espaceurs répétés ajoutés par printfit.js sur chaque page. */
table.pgw{width:100%;border-collapse:collapse;border-spacing:0;table-layout:fixed}
table.pgw>thead>tr>td,table.pgw>tfoot>tr>td,table.pgw>tbody>tr>td{padding:0;border:0;vertical-align:top}
.pgsp{height:0}
@media print{
  .pgsp{height:12mm}
  table.pgw>thead{display:table-header-group}
  table.pgw>tfoot{display:table-footer-group}
  #sheet.pg-on,#sheet .pg-on{padding-top:0!important;padding-bottom:0!important}
  #sheet.t-officiel,#sheet.t-chrono,#sheet.t-classique,#sheet.t-minimal,#sheet.t-compact{min-height:0!important}
  #sheet .it,#sheet section>h3,#sheet section>h4{break-inside:avoid}
  #sheet h3,#sheet h4{break-after:avoid}
  #sheet.t-officiel li{break-inside:avoid}
}

/* Fenêtre « modèle premium » */
.pm-ov{position:fixed;inset:0;z-index:300;background:rgba(11,12,14,.55);display:grid;place-items:center;padding:16px}
.pm-box{position:relative;width:100%;max-width:420px;background:var(--card,#fff);color:inherit;border-radius:18px;padding:24px 22px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.pm-box h3{margin:0;font-size:1.2rem}
.pm-t{margin:0;color:var(--muted,#6b7280);font-size:.92rem}
.pm-box .btn{justify-content:center;text-align:center}
.pm-or{text-align:center;color:var(--muted,#6b7280);font-size:.85rem}
.pm-sh{display:flex;flex-wrap:wrap;gap:8px}
.pm-x{background:none;border:0;color:var(--muted,#6b7280);cursor:pointer;padding:6px;font:inherit}
.pm-box .btn[disabled]{opacity:.5;cursor:not-allowed}
.pm-dots{display:flex;align-items:center;gap:8px;justify-content:center}
.pm-d{width:14px;height:14px;border-radius:50%;background:var(--line,#e5e7eb)}
.pm-d.on{background:#25d366}
.pm-dots b{margin-left:6px;font-size:.95rem}
.pm-wa{justify-content:center;font-weight:600}

.tplcats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.tplcats button{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 .82rem var(--font);cursor:pointer}
.tplcats button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.seg.thumbs{max-height:520px;overflow:auto;padding:2px}
.seg.thumbs button[hidden]{display:none}
.gshare{margin:22px 0 6px}
