/* Publipostage — styles propres à l'outil. Le design commun (page, carte, boutons, bandeaux, progression…)
   vient de https://chatbot-incyber.com/assets/intranet/intranet.css (source : INTRANET SI/COMMUN/). */

.inner.wide{max-width:1280px;}
.layout{width:100%; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:24px; align-items:start;}
.steps{display:flex; flex-direction:column; gap:24px; min-width:0;}
.preview-side{position:sticky; top:20px; min-width:0;}
.preview-card{padding:16px; max-height:calc(100vh - 40px); overflow:auto;}
.preview-side .preview-box{padding:8px; min-height:120px;}
@media (max-width:1000px){
  .layout{grid-template-columns:minmax(0,1fr);}
  .preview-side{position:static;}
  .preview-card{max-height:none; overflow:visible; padding:28px;}
  .preview-side .preview-box{padding:24px;}
}

.step-label{font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--blue); margin-bottom:14px;}

/* --- Import Excel (étape 1) --- */

.excel-summary{font-size:12.5px; color:var(--muted); margin-top:14px;}

.field-list{margin-top:10px; border:1px solid var(--border); border-radius:12px; overflow:hidden;}
.field-row{display:flex; align-items:center; gap:14px; padding:11px 14px; border-bottom:1px solid var(--border); background:#fff;}
.field-row:last-child{border-bottom:none;}
.field-row.unused{background:#fdfcfb;}
.field-main{flex:1; min-width:0;}
.field-name{font-size:13.5px; font-weight:600;}
.field-row.unused .field-name{color:var(--muted); text-decoration:line-through;}
.field-sample{font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.field-toggle{flex:0 0 auto; border:1px solid var(--border); border-radius:999px; padding:6px 14px; font:inherit; font-weight:600; font-size:12px; cursor:pointer; background:#fff; color:var(--muted);}
.field-toggle.useful{background:var(--green-bg); border-color:var(--green-bg); color:var(--green);}

/* --- Champs de fusion + aperçu (étape 3) --- */
.merge-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.merge-chip-btn{border:1px solid var(--blue-bg); background:var(--blue-bg); color:var(--blue); border-radius:999px; padding:7px 14px; font:inherit; font-weight:600; font-size:12.5px; cursor:pointer;}
.merge-chip-btn:hover{background:color-mix(in srgb, var(--blue-bg) 80%, var(--blue) 10%);}
.merge-empty{font-size:13px; color:var(--faint);}

.preview-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;}
.preview-title{font-size:13px; font-weight:700; color:var(--text);}
.preview-nav{display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--muted);}

.preview-box{border:1px solid var(--border); border-radius:12px; background:#fdfcfb; padding:24px; min-height:160px;}
.preview-empty{margin:0; font-size:13px; color:var(--faint); text-align:center;}
.preview-doc{background:#fff; border:1px solid var(--border); border-radius:8px; padding:24px; font-size:14px; line-height:1.6; max-width:680px; margin:0 auto;}
.preview-doc img{max-width:220px; display:block;}
.preview-zone{font-size:12px; color:var(--muted); padding:8px 0; border-top:1px dashed var(--border); border-bottom:1px dashed var(--border); margin:10px 0;}

/* Tableaux collés (ex. depuis Word) : Quill ajoute une bordure par défaut sans moyen de la
   retirer dans l'interface standard — on neutralise ce défaut et on expose un bouton pour
   ajouter une bordure volontairement, au lieu de la subir. */
.ql-editor table{border-collapse:collapse; width:100%;}
.ql-editor table td, .ql-editor table th{padding:4px 8px; border:none;}
.ql-editor table.ql-table-bordered td, .ql-editor table.ql-table-bordered th{border:1px solid var(--border);}

.editor-footer{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:6px;}
.code-view{background:#1e1e1e; color:#d4d4d4; border-radius:10px; padding:14px 16px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:12px; line-height:1.5; white-space:pre-wrap; word-break:break-all; margin-top:12px; max-height:300px; overflow:auto; width:100%; box-sizing:border-box; border:0; resize:vertical;}

/* Jeton de champ de fusion inséré dans le modèle (éditeur ET aperçu) */
.ql-merge-field{display:inline-block; background:var(--violet-bg); color:var(--violet); border-radius:6px; padding:1px 7px; font-size:12.5px; font-weight:700; white-space:nowrap; user-select:none;}

/* --- Génération (étape 4) --- */
.gen-label{display:block; font-size:12.5px; font-weight:700; margin-bottom:6px;}

.gen-modes{display:flex; flex-direction:column; gap:8px; margin:18px 0 20px;}
.gen-mode{display:flex; align-items:center; gap:10px; font-size:13.5px; cursor:pointer;}
.gen-mode input{accent-color:var(--blue);}

/* --- Éditeur Quill, habillé façon design system --- */
#editorToolbar.ql-toolbar.ql-snow{
  border:1px solid var(--border); border-radius:10px 10px 0 0;
  background:#fdfcfb; padding:8px 10px;
}
#editor.ql-container.ql-snow{
  border:1px solid var(--border); border-top:none; border-radius:0 0 10px 10px;
  font-family:'Schibsted Grotesk', system-ui, sans-serif; font-size:14px;
  min-height:280px;
}
.ql-editor{min-height:280px;}

.subzone-label{font-size:12px; font-weight:700; color:var(--muted); margin-bottom:8px;}
.ql-toolbar-small.ql-toolbar.ql-snow{border:1px solid var(--border); border-radius:10px 10px 0 0; background:#fdfcfb; padding:6px 10px;}
.editor-small.ql-container.ql-snow{border:1px solid var(--border); border-top:none; border-radius:0 0 10px 10px; font-family:'Schibsted Grotesk', system-ui, sans-serif; font-size:13px; min-height:90px;}
.editor-small .ql-editor{min-height:90px;}
.ql-editor.ql-blank::before{color:var(--faint); font-style:normal;}

.ql-snow .ql-stroke{stroke:var(--text);}
.ql-snow .ql-fill{fill:var(--text);}
.ql-snow button:hover .ql-stroke, .ql-snow button.ql-active .ql-stroke{stroke:var(--blue);}
.ql-snow button:hover .ql-fill, .ql-snow button.ql-active .ql-fill{fill:var(--blue);}
.ql-snow button.ql-active{color:var(--blue);}

/* Bouton MAJUSCULES custom (pas d'icône native Quill) */
.ql-upper{width:36px !important; display:flex; align-items:center; justify-content:center;}
.ql-upper .upper-label{font-size:11px; font-weight:700; letter-spacing:.02em;}
.ql-upper:hover .upper-label, .ql-upper.ql-active .upper-label{color:var(--blue);}

/* Texte marqué "majuscules" dans le document (ClassAttributor ajoute le suffixe -true) */
.ql-upper-true{text-transform:uppercase;}

#editor.ql-container .ql-editor img{max-width:220px !important; display:block;}

.raw-toggle{font-weight:400; margin-left:12px; cursor:pointer; white-space:nowrap;}
.merge-bar{background:#eaeefc; border:1px solid #cfd8f7; border-radius:10px; padding:10px 12px; margin-bottom:10px;}
.merge-bar-title{font-size:12px; font-weight:700; color:#4468e6; margin-bottom:8px;}
.merge-bar .merge-chips{margin:0;}
.a4-sheet{width:794px; min-height:1123px; background:#fff; box-shadow:0 2px 14px rgba(38,34,31,.18); padding:20px 40px; display:flex; flex-direction:column; font-family:"DejaVu Sans",Arial,sans-serif; font-size:14px; line-height:1.6; color:#1a1a1a; box-sizing:border-box;}
.a4-wrap{width:794px; margin:0 auto;}
#sigPreview .a4-sheet{min-height:562px;} /* demi-page A4 (1123 px / 2) */
.a4-head{min-height:90px; font-size:12px; line-height:1.4;}
.a4-body{flex:1; padding-top:0;}
.a4-foot{min-height:70px; font-size:11px; line-height:1.4; color:#555; margin-top:20px;}
.a4-sheet img{max-width:220px;}

/* Interligne par paragraphe + indicateur "gras" sur les champs de fusion */
.ql-editor .ql-ls-tight,.a4-sheet .ql-ls-tight{line-height:1.15; margin:0 0 .2em;}
.ql-editor .ql-ls-medium,.a4-sheet .ql-ls-medium{line-height:1.4; margin:0 0 .6em;}
.ql-editor .ql-ls-loose,.a4-sheet .ql-ls-loose{line-height:2.2; margin:0 0 1.2em;}
.ls-group button{width:auto !important; padding:0 6px !important;}
.ls-label{font-size:11px; font-weight:600; white-space:nowrap;}
.ls-group button:hover .ls-label,.ls-group button.ql-active .ls-label{color:var(--blue);}
strong .ql-merge-field,b .ql-merge-field,.ql-merge-field-bold{box-shadow:inset 0 0 0 2px var(--violet);}
strong .ql-merge-field::after,b .ql-merge-field::after{content:" G"; font-size:10px; font-weight:800; background:var(--violet); color:#fff; border-radius:4px; padding:0 4px; margin-left:5px;}
.a4-sig{position:relative; outline:1px dashed #cfd8f7; outline-offset:4px;}
.a4-sig::before{content:attr(data-label); position:absolute; top:-18px; right:0; font:600 10px/1 system-ui,sans-serif; color:#4468e6; background:#eaeefc; border-radius:4px; padding:2px 6px;}
.pdf-pages{display:flex; flex-direction:column; align-items:center; gap:16px; width:max-content; min-width:100%;}
.pdf-pages canvas{box-shadow:0 2px 14px rgba(38,34,31,.18); background:#fff; flex:none;}
.preview-side .preview-box{overflow:auto;}
.preview-zoom{display:flex; align-items:center; justify-content:flex-end; gap:6px; margin-bottom:8px;}
.preview-zoom .btn{min-width:36px;}
#btnGenerate{margin-top:24px;}
#previewBox{transition:opacity .15s;}

/* Sélecteur de taille de police (points) du corps */
#editorToolbar .ql-picker.ql-size{width:78px;}
#editorToolbar .ql-picker.ql-size .ql-picker-label::before,#editorToolbar .ql-picker.ql-size .ql-picker-item::before{content:attr(data-value);}
#editorToolbar .ql-picker.ql-size .ql-picker-label:not([data-value])::before,#editorToolbar .ql-picker.ql-size .ql-picker-item:not([data-value])::before{content:"Normal";}
#editorToolbar .ql-picker.ql-size .ql-picker-item[data-value]::before{content:attr(data-value);}
#editorToolbar .ql-picker.ql-header{width:80px;}
#editorToolbar .ql-picker.ql-header .ql-picker-label::before,#editorToolbar .ql-picker.ql-header .ql-picker-item::before{content:"Texte";}
#editorToolbar .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,#editorToolbar .ql-picker.ql-header .ql-picker-item[data-value="1"]::before{content:"Titre 1";}
#editorToolbar .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,#editorToolbar .ql-picker.ql-header .ql-picker-item[data-value="2"]::before{content:"Titre 2";}
#editorToolbar .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,#editorToolbar .ql-picker.ql-header .ql-picker-item[data-value="3"]::before{content:"Titre 3";}

/* --- Corrections d'alignement / responsive --- */
.field-list:empty{display:none;}
.subzone-label{display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px;}
.raw-toggle{display:inline-flex; align-items:center; gap:6px; margin-left:0;}
.raw-toggle input{margin:0;}
.editor-footer{flex-wrap:wrap;}
.editor-footer .hint{flex:1 1 220px;}
.editor-footer .btns{display:flex; gap:8px; flex-wrap:wrap; flex:1 1 auto; min-width:0;}
.preview-nav .btn{min-width:32px;}
@media (max-width:360px){
  .preview-header{flex-wrap:wrap; gap:8px;}
  .preview-card{padding:12px;}
  .gen-modes{margin:14px 0 16px;}
}
@media (max-width:1000px){
  .preview-card{padding:16px;}
}
#filenameInput{margin-bottom:10px;}
