/* Fenêtre de génération depuis un contrat ; styles limités à ce composant. */
#contractGenerateModal .cg-dialog{width:min(1100px,96vw);max-width:1100px;max-height:94vh;overflow:auto}
#contractGenerateModal [hidden]{display:none!important}
#contractGenerateModal .cg-head,#contractGenerateModal .cg-section-head,#contractGenerateModal .cg-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}
#contractGenerateModal .cg-head h2{margin:0}
#contractGenerateModal .cg-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
#contractGenerateModal .cg-modes button{border:1px solid #dce6e1;border-radius:12px;padding:13px;background:#f8faf9;text-align:left;font:inherit;cursor:pointer}
#contractGenerateModal .cg-modes button.active{border-color:#34835c;background:#eaf7ef;font-weight:700}
#contractGenerateModal .cg-template-list{border:1px solid #e2e8f0;border-radius:12px;margin:10px 0;max-height:42vh;overflow:auto}
#contractGenerateModal .cg-template{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #edf1f3;cursor:pointer}
#contractGenerateModal .cg-template:last-child{border-bottom:0}
#contractGenerateModal .cg-template input{width:auto}
#contractGenerateModal .cg-template span,#contractGenerateModal .cg-template small{display:block}
#contractGenerateModal .cg-template small{color:#64748b;margin-top:3px}
#contractGenerateModal .cg-foot{margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}
#contractGenerateModal .cg-result-layout{display:grid;grid-template-columns:240px minmax(0,1fr);height:min(68vh,700px);margin-top:16px;border:1px solid #e1e8eb;border-radius:12px;overflow:hidden}
#contractGenerateModal .cg-files{padding:14px;background:#f7faf9;border-right:1px solid #e1e8eb;overflow:auto}
#contractGenerateModal .cg-file{display:block;width:100%;border:0;border-radius:9px;background:transparent;text-align:left;padding:10px 8px;margin-top:5px;font:inherit;cursor:pointer;overflow-wrap:anywhere}
#contractGenerateModal .cg-file.active{background:#e6f5eb;color:#1d6841;font-weight:700}
#contractGenerateModal .cg-preview{min-width:0;display:flex;flex-direction:column;background:#eef2f4}
#contractGenerateModal .cg-preview-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 14px;background:#fff;border-bottom:1px solid #e1e8eb}
#contractGenerateModal .cg-preview-head span{color:#64748b;font-size:12px;overflow-wrap:anywhere;text-align:right}
#contractGenerateModal .cg-preview iframe,#contractGenerateModal .cg-preview img{width:100%;height:100%;min-height:0;border:0;object-fit:contain}
#contractGenerateModal .cg-unavailable{padding:32px;align-self:center;text-align:center}
#contractGenerateModal .cg-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
#contractGenerateModal .cg-actions label{white-space:nowrap}
#contractGenerateModal .cg-actions select{max-width:170px;padding:8px;border:1px solid #cbd5e1;border-radius:8px}
#contractGenerateModal .cg-email{padding:20px 0}
#contractGenerateModal .cg-email input{display:block;width:100%;max-width:480px;margin-top:6px}
@media(max-width:720px){#contractGenerateModal .cg-result-layout{grid-template-columns:1fr;height:auto}#contractGenerateModal .cg-files{max-height:150px;border-right:0;border-bottom:1px solid #e1e8eb}#contractGenerateModal .cg-preview{height:55vh}#contractGenerateModal .cg-foot{align-items:stretch;flex-direction:column}#contractGenerateModal .cg-modes{grid-template-columns:1fr}}
