/* ============================================================================================
   ANIMA — Projet pédagogique en PDF (spec docs/specs/2026-10-05-pp-pdf-design.md § 4)
   --------------------------------------------------------------------------------------------
   Trois ensembles, dans le langage de surface de l'atelier (css/atelier-pp.css : mêmes neutres « document »
   --ap-*, mêmes boutons .atp-bouton) :
     .pdfv*     la visionneuse (barre zoom / Télécharger, pages dessinées au fil du défilement) ;
     .pdfv-retour  la zone de retour d'un dépôt (vérification, envoi, erreur + Réessayer), posée dans
                   les trois entrées (séjour sans projet, « Mes projets », page du projet) ;
     .atp-pdf*  la page du projet quand elle porte un PDF (couverture compacte, tête, lecteur) ;
     .atp-public-pdf  la page publique d'un projet publié en PDF.
   Aucune couleur en dur : tokens de css/tokens.css seulement (tests/charte.test.mjs).
   ============================================================================================ */

.pdfv-cache { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }

/* ---- Retour d'un dépôt ------------------------------------------------------------------- */

.pdfv-retour { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin: .6rem 0 0; padding: .65rem .9rem; font-size: .92rem; line-height: 1.4; color: var(--text); background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--line-2); border-radius: 3px; }
.pdfv-retour[hidden] { display: none; }
.pdfv-retour--alerte { border-left-color: var(--crit); }
.pdfv-retour__texte { margin: 0; flex: 1 1 14rem; min-width: 0; overflow-wrap: anywhere; }
.pdfv-retour--alerte .pdfv-retour__texte { color: var(--crit); font-weight: 600; }
/* Dans l'atelier (neutres « document » fixes, même en thème sombre). */
.atp-page .pdfv-retour { margin: 0; padding-inline: var(--ap-gutter); border-radius: 0; border-width: 0 0 1px; border-left-width: 0; color: var(--ap-encre); background: var(--ap-calcaire-2); border-color: var(--ap-filet); }
.atp-page .pdfv-retour--alerte { box-shadow: inset 3px 0 0 var(--doc-critique); }
.atp-page .pdfv-retour--alerte .pdfv-retour__texte { color: var(--doc-critique); }

/* Entrée racontée d'un séjour sans projet : « Tu as déjà ton projet en PDF ? Dépose-le ». */
.rc .pp-pdf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .6rem; margin: -.4rem 0 1.1rem; color: var(--texte-2); }
.rc .pp-pdf .pdfv-retour { flex: 1 1 100%; margin-top: .2rem; }

/* ---- Visionneuse -------------------------------------------------------------------------- */

.pdfv { position: relative; color: var(--ap-encre); background: var(--ap-calcaire-2); font-family: var(--ap-sans); }
.pdfv * { box-sizing: border-box; }
.pdfv [hidden] { display: none !important; }
/* La barre reste sous les yeux pendant la lecture ; `--pdfv-haut` = hauteur de ce qui colle déjà au-dessus
   (la barre de l'atelier), posée par la page ; 0 sur la page publique. */
.pdfv__barre { position: sticky; top: var(--pdfv-haut, 0px); z-index: 6; display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .9rem; padding: .5rem var(--ap-gutter); background: var(--ap-calcaire); border-bottom: 1px solid var(--ap-filet); }
.pdfv__zoom { display: flex; align-items: center; gap: .35rem; }
.pdfv__zoom-valeur { min-width: 3.4rem; text-align: center; font-family: var(--ap-mono); font-size: .76rem; letter-spacing: .04em; color: var(--ap-encre-2); }
.pdfv__bouton { min-width: 40px; padding: .5rem .8rem; }
.pdfv__compte { font-family: var(--ap-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-encre-2); }
.pdfv__telecharger { margin-left: auto; }

.pdfv__statut { padding: 1.4rem var(--ap-gutter); }
.pdfv__statut[hidden] { display: none; }
.pdfv__message { margin: 0 0 .7rem; font-family: var(--ap-mono); font-size: .8rem; letter-spacing: .04em; color: var(--ap-encre-2); }
.pdfv__statut--alerte .pdfv__message { font-family: var(--ap-sans); font-size: 1rem; letter-spacing: 0; color: var(--ap-encre); }

/* Les pages : centrées à la largeur « ajustée » ; au-delà (zoom), la scène défile en travers. */
.pdfv__scene { overflow-x: auto; padding: .75rem .5rem 2.5rem; background: var(--ap-calcaire-2); }
.pdfv__liste { display: flex; flex-direction: column; align-items: center; gap: .75rem; width: max-content; min-width: 100%; }
.pdfv__page { position: relative; flex: none; overflow: hidden; background: var(--papier); box-shadow: var(--shadow-card); }
.pdfv__canvas { display: block; width: 100%; height: 100%; }
.pdfv__page-erreur { margin: 0; padding: 1rem; color: var(--ap-encre-2); font-size: .88rem; }

/* ---- Page du projet : PDF ----------------------------------------------------------------- */

.atp-pdf { min-height: 60vh; background: var(--ap-calcaire); }
/* La couverture du site, en plus basse : le PDF est ce qu'on vient lire. */
.atp-pdf .ap-couverture { min-height: min(52svh, 380px); }
.atp-pdf .ap-couverture__titre { font-size: clamp(2rem, 5vw, 4rem); }
.atp-pdf__tete { max-width: var(--ap-wrap); margin-inline: auto; padding: 1rem var(--ap-gutter) .9rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1.2rem; }
.atp-pdf__infos { margin: 0; flex: 1 1 16rem; min-width: 0; font-family: var(--ap-mono); font-size: .76rem; letter-spacing: .04em; color: var(--ap-encre-2); overflow-wrap: anywhere; }
.atp-pdf__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.atp-pdf__lecteur { border-top: 1px solid var(--ap-filet); }
.atp-outil--pdf { border-color: var(--accent-sur-nuit); color: var(--accent-sur-nuit); }
.atp-outil--pdf[aria-pressed="true"] { color: var(--ap-encre); }

/* Panneau Publier : la version PDF publiée n'est plus celle du projet (remplacement après publication). */
.atp-publier__ligne--perime { border-left-color: var(--doc-alerte); }
.atp-publier__ligne--perime .atp-publier__etat { color: var(--doc-alerte); }

/* ---- Page publique : projet publié en PDF -------------------------------------------------- */

.atp-public-pdf { background: var(--ap-calcaire); }
.atp-public-pdf .ap-couverture { min-height: min(56svh, 420px); }
.atp-public-pdf .ap-couverture__titre { font-size: clamp(2rem, 5vw, 4.2rem); }
.atp-public-pdf__liens { max-width: var(--ap-wrap); margin-inline: auto; padding: .9rem var(--ap-gutter) 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.atp-public-pdf__infos { margin: 0; flex: 1 1 14rem; font-family: var(--ap-mono); font-size: .74rem; letter-spacing: .04em; color: var(--ap-encre-2); }
.atp-public-pdf__lecteur { border-top: 1px solid var(--ap-filet); }
/* Lien croisé « Version PDF » en tête d'un rendu site : même geste, discret. */
.atp-public__croise { max-width: var(--ap-wrap); margin-inline: auto; padding: .8rem var(--ap-gutter) 0; display: flex; justify-content: flex-end; }

/* Téléphone : la barre de la visionneuse tient sur UNE ligne (zoom, Ajuster, Télécharger) et la couverture se fait basse :
   ce qu'on vient faire ici, c'est lire le PDF. */
@media (max-width: 640px) {
  .pdfv__compte { display: none; }
  .pdfv__barre { gap: .4rem; padding-inline: .6rem; flex-wrap: nowrap; }
  .pdfv__zoom { gap: .25rem; }
  .pdfv__zoom-valeur { min-width: 2.7rem; font-size: .7rem; }
  .pdfv__bouton { padding: .45rem .6rem; font-size: .68rem; letter-spacing: .02em; }
  .pdfv__scene { padding-inline: .35rem; }
  .atp-pdf .ap-couverture, .atp-public-pdf .ap-couverture { min-height: min(34svh, 260px); }
  .atp-pdf .ap-couverture__texte, .atp-public-pdf .ap-couverture__texte { padding-block: 1.4rem; }
}

@media print {
  .pdfv__barre, .pdfv-retour { display: none !important; }
}
