/* 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:.12em;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:.12em;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:.12em;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:.12em;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:.12em;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:.12em;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:.14em;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:.14em;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:.08em;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:.06em;line-height:1.15}
.t-executif h2{font-size:14px;font-weight:500;letter-spacing:.1em;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:.12em;margin-bottom:8px;padding-left:10px;border-left:4px solid var(--c)}
.cv.ph-none .ph{display:none}

/* 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{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}}
