@font-face{font-family:'Sans Normalcy';src:url('/fonts/Sans-Normalcy.ttf') format('truetype');font-style:normal;font-weight:normal;font-display:swap}

.alliance-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:18px;align-items:start}
.alliance-status,#alliance-preview-code{font-size:10px;letter-spacing:1px;color:#70ff9a}
.alliance-view textarea{resize:vertical;min-height:180px;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif;font-size:10pt}
.contract-preview-wrap{overflow:auto;background:#111;border:1px solid #29483a;padding:12px}
.contract-preview{position:relative;width:581px;height:819px;flex:none;background:#aaa}
.contract-preview>img{position:absolute;inset:0;width:581px;height:819px;display:block}
.preview-text{position:absolute;left:62px;width:455px;white-space:pre-wrap;overflow:hidden;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif;font-size:10px;line-height:12px;color:#000;word-break:break-word}
.preview-first{top:245px;height:200px}
.preview-second{top:455px;height:180px}
.preview-sign{position:absolute;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif;font-size:10px;color:#000}
.preview-sign.requester{left:95px;top:705px}.preview-sign.partner{left:375px;top:705px}
.alliance-list{display:grid;gap:10px}
.alliance-row{border:1px solid #29483a;background:#0b1511;padding:15px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.alliance-row h4{margin:0 0 4px;color:#dcebe2}.alliance-row p{margin:2px 0;color:#91a99b;font-size:12px}
.alliance-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.alliance-actions button,.alliance-actions a{font:inherit;font-size:10px;letter-spacing:.7px;padding:8px 10px;border:1px solid #47765b;background:transparent;color:#70ff9a;text-decoration:none;cursor:pointer}
.alliance-actions .primary{background:#70ff9a;color:#07100d}
.alliance-actions button:disabled{opacity:.4;cursor:not-allowed}
.alliance-badge{font-size:9px;padding:4px 7px;border:1px solid #47765b;color:#70ff9a}
.alliance-empty{color:#91a99b;padding:20px;border:1px dashed #29483a}
.alliance-modal{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.alliance-modal-box{background:#0d1814;border:1px solid #47765b;padding:20px;max-width:650px;max-height:95vh;overflow:auto;position:relative}
.alliance-close{position:absolute;right:10px;top:8px;background:none;border:0;color:#70ff9a;font-size:24px;cursor:pointer}
.alliance-hash{font-size:10px;color:#91a99b;word-break:break-all}
@media(max-width:900px){.alliance-grid{grid-template-columns:1fr}.alliance-row{grid-template-columns:1fr}.alliance-actions{justify-content:flex-start}}

.alliance-link-input{width:100%;box-sizing:border-box;margin:10px 0;padding:10px;background:#08110d;border:1px solid #47765b;color:#70ff9a;font:12px 'Sans Normalcy'}.alliance-modal-box .primary{background:#70ff9a;color:#07100d;border:1px solid #70ff9a;padding:9px 12px;cursor:pointer}
.alliance-form-status{min-height:18px;margin:2px 0 0;color:#91a99b;font-size:11px;letter-spacing:.3px}.alliance-form-status:empty{display:none}

/* Alliance: champs textuels clairs et prévisualisation fidèle au template */
#alliance-create-form input,#alliance-create-form textarea,#alliance-create-form select{display:block;width:100%;box-sizing:border-box;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif;font-size:10pt;background:#0b1511;color:#dcebe2;border:1px solid #355543;padding:11px;border-radius:2px;outline:none}
#alliance-create-form textarea{min-height:190px;resize:vertical}
#alliance-create-form input:focus,#alliance-create-form textarea:focus,#alliance-create-form select:focus{border-color:#70ff9a;box-shadow:0 0 0 1px rgba(112,255,154,.12)}
#alliance-create-btn{pointer-events:auto}
#alliance-create-btn:disabled{opacity:.45;cursor:not-allowed}
.contract-preview{position:relative;overflow:hidden}
.contract-preview>img{position:absolute;left:0;top:0;z-index:0}
.contract-preview .preview-text,.contract-preview .preview-sign{z-index:2}

.alliance-text-meta{display:flex;justify-content:space-between;gap:10px;margin-top:-8px;color:#91a99b;font:10px 'Sans Normalcy',Arial,Helvetica,sans-serif;letter-spacing:.2px}
#alliance-text{font-family:'Sans Normalcy',Arial,Helvetica,sans-serif!important;font-size:10pt!important;line-height:1.45;white-space:pre-wrap}
#alliance-create-btn{cursor:pointer!important;pointer-events:auto!important;opacity:1!important}

.signature-modal label{display:block;margin:10px 0 5px;color:#c9e9d4;font:11px 'Sans Normalcy'}.signature-modal input,.signature-modal textarea{font-family:'Sans Normalcy',Arial,Helvetica,sans-serif;font-size:10pt}.signature-modal .primary{margin-top:8px;cursor:pointer}.signature-modal .primary:disabled{opacity:.45;cursor:not-allowed}

/* Signatures numériques : la mention reste au-dessus et le tracé est placé dessous. */
.preview-sign{top:690px;width:180px;height:72px;font-size:10px}
.signature-visual{position:relative;width:180px;height:72px;color:#000;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif}
.signature-visual>span{display:block;font-weight:700;margin-bottom:5px}
.signature-visual canvas{display:block;width:132px;height:48px;background:transparent}
.signature-visual .seal{position:absolute;right:0;top:22px;width:38px;height:38px;border:1.5px solid #214d38;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;font:700 14px 'Sans Normalcy';color:#214d38;transform:rotate(-8deg);background:rgba(235,235,235,.25)}
.signature-visual .seal small{font-size:5px;letter-spacing:.7px}
.signature-visual em{position:absolute;left:0;top:51px;font-size:7px;font-style:normal;opacity:.7}
.signature-pad-wrap{position:relative;border:1px solid #355543;background:#f2f2ef;padding:8px;margin:7px 0 5px}
.signature-pad{display:block;width:100%;height:150px;touch-action:none;cursor:crosshair;background:#f2f2ef}
.clear-signature{position:absolute;right:12px;bottom:12px;padding:7px 9px;font-size:10px;background:#08110d;color:#70ff9a;border-color:#47765b}
.signature-help{font-size:11px;color:#91a99b;margin:5px 0 15px}

/* Vue détaillée d'un contrat : document + auteurs + autorisations des deux côtés. */
.alliance-document-modal{width:min(1000px,96vw);max-width:1000px}
.alliance-view-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.contract-preview-section{border-top:1px solid #244333;padding-top:14px}
.alliance-authors-grid,.alliance-text-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.alliance-detail-card{background:#08110d;border:1px solid #294c39;padding:14px;min-width:0}
.alliance-detail-card h3{margin:4px 0 12px}
.alliance-detail-card dl{margin:0}
.alliance-detail-card dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7e9a8a;margin-top:9px}
.alliance-detail-card dd{margin:3px 0 0;overflow-wrap:anywhere}
.authorization-message,.document-message{white-space:normal;line-height:1.5;color:#dcebe2;font-family:'Sans Normalcy',Arial,Helvetica,sans-serif}
.alliance-final-hash{overflow-wrap:anywhere}
@media(max-width:760px){.alliance-authors-grid,.alliance-text-details{grid-template-columns:1fr}.alliance-document-modal{padding:14px}}

/* Clôture de partenariat */
.alliance-actions .danger{border:1px solid #7a3b3b;background:#2a1111;color:#ffb5b5;padding:8px 10px;cursor:pointer}
.termination-modal textarea{width:100%;box-sizing:border-box;min-height:130px;background:#08110d;border:1px solid #47765b;color:#dcebe2;padding:10px;font:10pt 'Sans Normalcy';resize:vertical}
.termination-confirm{display:block!important;margin:12px 0!important}
.termination-confirm input{vertical-align:middle}
