/* ============================================================
   Effets visuels Sextant : groupe « capsule-pdf » (16/09/2026)
   31 - La capsule aimantée : un PDF glissé depuis le Finder attire la capsule
   « PDF à signer » de l'en-tête de fiche (#ficheDropSign).
   Au repos, rien ne change : les règles ne s'appliquent que pendant un glisser
   de fichier proche de la capsule (classe fx-capsule-pdf-actif posée par
   js/fx/capsule-pdf.js, retirée à la fin du retour).
   Couleurs, bordure, halo et taille au contact : ceux de main.css (.drag, .busy).
   ============================================================ */

/* approche : la capsule suit le fichier, courbe courte sans dépassement */
.fiche-drop-sign.fx-capsule-pdf-actif{
  transform:translate(var(--fx-capsule-pdf-mx,0px),var(--fx-capsule-pdf-my,0px)) rotate(var(--fx-capsule-pdf-rot,0deg)) scale(1);
  transition:transform .15s ease-out,border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease;
}

/* contact : elle se redresse et se gonfle (même 1.04 que main.css), sans quitter
   l'endroit où elle a dérivé */
.fiche-drop-sign.fx-capsule-pdf-actif.drag{
  transform:translate(var(--fx-capsule-pdf-mx,0px),var(--fx-capsule-pdf-my,0px)) rotate(0deg) scale(1.04);
}

/* contact, sortie sans lâcher, dépôt ou sortie de la fenêtre : ressort élastique */
.fiche-drop-sign.fx-capsule-pdf-actif.drag,
.fiche-drop-sign.fx-capsule-pdf-actif.fx-capsule-pdf-retour{
  transition:transform .42s cubic-bezier(.2,1.5,.4,1),border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease;
}

/* zone de dépôt INCHANGÉE pendant l'effet : la capsule déplacée ne capte plus le
   pointeur ; un calque invisible (::after) annule exactement sa transformation et
   garde la cible d'origine (boîte au repos, gonflée à 1.04 au contact comme
   main.css). Sans lui, la capsule qui dérive vers le fichier puis se redresse au
   contact faisait basculer la cible sous un curseur immobile (dépôt manqué,
   capsule qui tremble). Même minutage que la capsule pour rester synchronisé.
   --fx-capsule-pdf-b : épaisseur réelle de la bordure (lue par le script).
   Le script ne pose fx-capsule-pdf-cible (capsule transparente au pointeur) qu'après
   avoir vérifié que ce calque est bien rendu : sinon, cible d'origine telle quelle. */
.fiche-drop-sign.fx-capsule-pdf-actif.fx-capsule-pdf-cible{pointer-events:none}
.fiche-drop-sign.fx-capsule-pdf-actif::after{
  content:'';position:absolute;top:calc(-1 * var(--fx-capsule-pdf-b,1.5px));right:calc(-1 * var(--fx-capsule-pdf-b,1.5px));bottom:calc(-1 * var(--fx-capsule-pdf-b,1.5px));left:calc(-1 * var(--fx-capsule-pdf-b,1.5px));border-radius:inherit;pointer-events:auto;
  transform:scale(1) rotate(calc(-1 * var(--fx-capsule-pdf-rot,0deg))) translate(calc(-1 * var(--fx-capsule-pdf-mx,0px)),calc(-1 * var(--fx-capsule-pdf-my,0px)));
  transition:transform .15s ease-out;
}
.fiche-drop-sign.fx-capsule-pdf-actif.drag::after{
  transform:scale(1) rotate(0deg) translate(calc(var(--fx-capsule-pdf-mx,0px) / -1.04),calc(var(--fx-capsule-pdf-my,0px) / -1.04));
}
.fiche-drop-sign.fx-capsule-pdf-actif.drag::after,
.fiche-drop-sign.fx-capsule-pdf-actif.fx-capsule-pdf-retour::after{
  transition:transform .42s cubic-bezier(.2,1.5,.4,1);
}
/* dépôt en cours : aucune cible, comme .busy de main.css */
.fiche-drop-sign.fx-capsule-pdf-actif.busy::after{pointer-events:none}

/* filet de sécurité : le script ne pose jamais la classe dans ce mode */
@media (prefers-reduced-motion: reduce){
  .fiche-drop-sign.fx-capsule-pdf-actif,
  .fiche-drop-sign.fx-capsule-pdf-actif.drag,
  .fiche-drop-sign.fx-capsule-pdf-actif.fx-capsule-pdf-retour,
  .fiche-drop-sign.fx-capsule-pdf-actif::after,
  .fiche-drop-sign.fx-capsule-pdf-actif.drag::after,
  .fiche-drop-sign.fx-capsule-pdf-actif.fx-capsule-pdf-retour::after{transition:none}
}
