.ed{border-bottom:1px solid var(--line);background:#eef1f6}
.ed-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px 18px;
  background:#fff;border-bottom:1px solid var(--line);position:sticky;top:72px;z-index:40}
.ed-group{display:flex;align-items:center;gap:8px}
.ed-group.tools{padding:0 10px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.ed-btn,.ed-tool{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 12px;
  font:600 .9rem var(--font);cursor:pointer;color:var(--ink);line-height:1.1}
.ed-tool{width:40px;height:38px;font-size:1.05rem}
.ed-btn:hover,.ed-tool:hover{border-color:var(--red);color:var(--red)}
.ed-btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.ed-btn.primary:hover{background:var(--red-d);color:#fff}
.ed-btn:disabled{opacity:.5;cursor:not-allowed}
.ed-tool.active{background:var(--red);border-color:var(--red);color:#fff}
.ed-lbl{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--muted)}
.ed-lbl input[type=color]{width:34px;height:30px;border:1px solid var(--line);border-radius:7px;padding:2px;background:#fff}
.ed-lbl input[type=range]{width:96px;accent-color:var(--red)}
.ed-name{font-size:.88rem;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-zoom{font-size:.85rem;font-weight:700;min-width:52px;text-align:center}

.ed-body{display:flex;min-height:70vh;align-items:flex-start}
.ed-thumbs{width:184px;flex:0 0 184px;background:#f7f9fc;border-right:1px solid var(--line);
  padding:14px 10px;max-height:calc(100vh - 132px);overflow:auto;position:sticky;top:132px}
.ed-thumbs:empty{display:none}
.thumb{position:relative;margin-bottom:14px;border:2px solid transparent;border-radius:8px;
  background:#fff;box-shadow:var(--shadow);overflow:hidden;cursor:pointer}
.thumb.active{border-color:var(--red)}
.thumb canvas{display:block;width:100%}
.thumb-no{position:absolute;left:6px;top:6px;background:rgba(0,0,0,.6);color:#fff;
  font-size:.72rem;padding:1px 7px;border-radius:99px}
.thumb-act{display:flex;gap:4px;justify-content:center;padding:5px;background:#fff;border-top:1px solid var(--line)}
.thumb-act button{border:0;background:#f1f3f8;border-radius:6px;width:26px;height:24px;cursor:pointer;font-size:.8rem}
.thumb-act button:hover{background:var(--red);color:#fff}

.ed-canvasarea{flex:1;padding:24px;overflow:auto;min-width:0}
.ed-empty{max-width:620px;margin:40px auto}
.pagewrap{position:relative;margin:0 auto 24px;box-shadow:var(--shadow-l);background:#fff;
  border-radius:4px;overflow:hidden;width:max-content}
.pagewrap canvas{display:block}
.overlay{position:absolute;inset:0}
.overlay svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.overlay.draw,.overlay.highlight,.overlay.rect,.overlay.text{cursor:crosshair}
.overlay.erase svg{pointer-events:auto}
.overlay.erase svg *{cursor:not-allowed;pointer-events:stroke}
.ann{position:absolute;border:1px dashed transparent;min-width:14px;min-height:14px}
.ann.sel{border-color:var(--red)}
.ann-text{padding:1px 3px;outline:none;white-space:pre-wrap;line-height:1.25;cursor:text;min-width:40px}
.ann-text:empty:before{content:attr(data-ph);opacity:.45}
.ann img{width:100%;height:100%;display:block;pointer-events:none}
.ann .grip{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;background:var(--red);
  border:2px solid #fff;border-radius:50%;cursor:nwse-resize;display:none}
.ann .del{position:absolute;right:-9px;top:-9px;width:18px;height:18px;border-radius:50%;
  background:#fff;border:1px solid var(--line);color:var(--red);font-size:.75rem;line-height:1;
  cursor:pointer;display:none}
.ann.sel .grip,.ann.sel .del{display:block}
.ann.move{cursor:move}

.ed-modal{position:fixed;inset:0;background:rgba(15,18,26,.55);display:grid;place-items:center;z-index:200}
.ed-modal[hidden]{display:none}
.ed-modal-in{background:#fff;border-radius:16px;padding:24px;box-shadow:var(--shadow-l)}
#sigpad{border:2px dashed var(--line);border-radius:12px;touch-action:none;background:#fff;max-width:100%}
.ed-modal-act{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}

@media(max-width:900px){
  .ed-thumbs{display:none}
  .ed-bar{position:static}
  .ed-group.tools{border:0;padding:0}
}


/* ---------------- édition du texte existant
   Le texte réécrit est peint sur un calque « editlayer » avec la police et le
   corps du document ; les blocs « .txt » ne sont que des zones cliquables
   transparentes. Aucun texte n'est donc affiché deux fois. */
.editlayer{position:absolute;inset:0;pointer-events:none}
.txt{position:absolute;white-space:pre;transform-origin:left top;
  padding:0;border-radius:2px;color:transparent;pointer-events:none;
  background:transparent}
.overlay.edit .txt,.txt.editing{pointer-events:auto}
.overlay.edit .txt{cursor:text;outline:1px dashed rgba(229,50,45,.3)}
.overlay.edit .txt:hover{background:rgba(229,50,45,.10);outline-color:var(--red)}
.overlay.edit .txt.done{outline:1px solid rgba(34,164,93,.55);
  background:rgba(34,164,93,.07)}
.txt.editing{color:inherit!important;background:#fff!important;
  outline:2px solid var(--red);z-index:5;white-space:pre-wrap;
  box-shadow:0 2px 12px rgba(0,0,0,.16);padding:1px 2px}
.ed-hint{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:150;
  background:#12151c;color:#fff;padding:10px 18px;border-radius:99px;font-size:.88rem;
  font-weight:600;box-shadow:var(--shadow-l)}

/* ---------------- circuit de signature */
.sign-layout{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:24px;align-items:start}
.sign-pages{background:#eef1f6;border-radius:var(--radius);padding:16px;max-height:78vh;overflow:auto}
.sign-pages .pagewrap{margin-bottom:16px}
.sig-who{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.sig-who button{border:1px solid var(--line);background:#fff;border-radius:99px;
  padding:6px 14px;font:600 .85rem var(--font);cursor:pointer}
.sig-who button.on{background:var(--red);border-color:var(--red);color:#fff}
.sigbox{position:absolute;border:2px dashed var(--red);background:rgba(229,50,45,.09);
  border-radius:4px;display:grid;place-items:center;font:700 .72rem var(--font);
  color:var(--red);cursor:pointer;text-align:center;padding:2px}
.sigbox.me{border-color:#22a45d;background:rgba(34,164,93,.12);color:#177544}
.signer-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px}
.signer-row input{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:400 .92rem var(--font)}
.signer-row button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1.2rem}
#pad{border:2px dashed var(--line);border-radius:12px;touch-action:none;background:#fff;max-width:100%}
@media(max-width:960px){.sign-layout{grid-template-columns:1fr}}
