/*
 * Papillote — fenêtres modales (<dialog>), onglets, fenêtre du lecteur, rapport de vérification,
 * zone de dépôt de fichier, annonces. Plein écran sur téléphone.
 */

.pa-dialog {
  width: min(100% - 2rem, 64rem);
  max-height: min(92vh, 920px);
  padding: 0;
  border: 0;
  border-radius: var(--pa-radius-xl);
  background: var(--pa-surface);
  color: var(--pa-ink);
  box-shadow: var(--pa-shadow-3);
  overflow: auto;
}

.pa-dialog::backdrop {
  background: rgb(20 23 42 / 0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.pa-dialog[open] {
  animation: pa-dialog-in var(--pa-duration-slow) var(--pa-ease-out);
}

@keyframes pa-dialog-in {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
}

.pa-dialog__header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: var(--pa-space-4);
  padding: var(--pa-space-5) var(--pa-space-6) var(--pa-space-4);
  border-bottom: 1px solid var(--pa-line);
  background: var(--pa-surface);
}

.pa-dialog__header h2 {
  font-size: var(--pa-text-2xl);
}

.pa-dialog__close {
  margin-left: auto;
  flex: 0 0 auto;
}

.pa-dialog__body {
  padding: var(--pa-space-6);
}

/* Fenêtre « feuille » : en-tête et boutons fixes, seul le contenu défile, à l'intérieur de la fenêtre */
.pa-dialog--sheet {
  width: min(100% - 2rem, 58rem);
  max-height: min(90vh, 920px);
  overflow: hidden;
  border-top: 6px solid transparent;
  background:
    linear-gradient(var(--pa-surface), var(--pa-surface)) padding-box,
    var(--pa-gradient-candy) border-box;
}

.pa-dialog--sheet[open] {
  display: flex;
  flex-direction: column;
}

.pa-dialog--sheet .pa-dialog__header {
  position: static;
  flex: none;
  align-items: center;
  padding: var(--pa-space-5) var(--pa-space-6);
}

.pa-dialog__badge {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--pa-raspberry-soft);
  color: var(--pa-raspberry);
}

.pa-dialog__heading {
  display: grid;
  gap: var(--pa-space-1);
  min-width: 0;
}

.pa-dialog--sheet .pa-dialog__header h2 {
  font-size: var(--pa-text-xl);
}

.pa-dialog__subtitle {
  margin: 0;
  font-size: var(--pa-text-sm);
  color: var(--pa-ink-soft);
}

.pa-dialog__subtitle:empty {
  display: none;
}

.pa-dialog--sheet .pa-dialog__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.pa-dialog__footer {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--pa-space-2);
  padding: var(--pa-space-4) var(--pa-space-6);
  border-top: 1px solid var(--pa-line);
  background: var(--pa-paper);
}

@media (max-width: 719px) {
  .pa-dialog--sheet {
    max-height: 100%;
  }

  .pa-dialog__footer .pa-button {
    flex: 1 1 auto;
  }
}

@media (max-width: 719px) {
  .pa-dialog {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: 0;
    border-radius: 0;
  }
}

/* Onglets */
.pa-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pa-space-1);
  padding: 0 var(--pa-space-6);
  border-bottom: 1px solid var(--pa-line);
  background: var(--pa-surface);
}

.pa-tabs [role="tab"] {
  min-height: var(--pa-target-min);
  padding: 0 var(--pa-space-4);
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  color: var(--pa-ink-soft);
  font-weight: 700;
  cursor: pointer;
}

.pa-tabs [role="tab"]:hover {
  color: var(--pa-ink);
}

.pa-tabs [role="tab"][aria-selected="true"] {
  border-bottom-color: var(--pa-accent);
  color: var(--pa-ink);
}

/* Textes longs des panneaux */
.pa-prose {
  display: grid;
  gap: var(--pa-space-3);
  max-width: 46rem;
}

.pa-prose h3 {
  margin-top: var(--pa-space-4);
  font-size: var(--pa-text-xl);
}

.pa-prose h3:first-child {
  margin-top: 0;
}

.pa-prose ul {
  margin: 0;
  padding-left: var(--pa-space-6);
  display: grid;
  gap: var(--pa-space-2);
}

.pa-prose .pa-hint {
  font-size: var(--pa-text-sm);
}

/* Fenêtre du lecteur */
.pa-player {
  width: min(100% - 2rem, 70rem);
}

.pa-player__layout {
  display: grid;
  gap: var(--pa-space-6);
  padding: var(--pa-space-6);
}

@media (min-width: 900px) {
  .pa-player__layout {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }
}

.pa-player__stage {
  display: grid;
  justify-items: center;
}

.pa-player__stage .pa-phone {
  width: 340px;
}

.pa-player__side {
  display: grid;
  gap: var(--pa-space-4);
  align-content: start;
}

.pa-player__side h2 {
  font-size: var(--pa-text-2xl);
}

.pa-player__description {
  color: var(--pa-ink-soft);
}

.pa-player__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pa-space-2);
}

.pa-player__status {
  font-size: var(--pa-text-sm);
  color: var(--pa-ink-soft);
}

.pa-phone-panel {
  display: grid;
  gap: var(--pa-space-4);
  padding: var(--pa-space-5);
  border-radius: var(--pa-radius-lg);
  background: var(--pa-lagoon-soft);
}

.pa-phone-panel[hidden] {
  display: none;
}

.pa-phone-panel__code {
  justify-self: start;
  width: 180px;
  padding: 12px;
  border-radius: var(--pa-radius-md);
  background: #FFFFFF;
}

.pa-phone-panel__code svg {
  width: 100%;
  height: auto;
}

.pa-phone-panel ol {
  margin: 0;
  padding-left: var(--pa-space-6);
  display: grid;
  gap: var(--pa-space-1);
}

.pa-phone-panel__url {
  font-size: var(--pa-text-xs);
  word-break: break-all;
}

@media (max-width: 719px) {
  .pa-dialog.pa-player {
    width: 100%;
  }

  /* Sur téléphone, le bouton « Fermer » reste en haut à droite, au-dessus du lecteur */
  .pa-player .pa-dialog__close {
    position: fixed;
    top: 8px;
    right: var(--pa-space-3);
    z-index: 5;
    background: var(--pa-surface);
    box-shadow: var(--pa-shadow-2);
  }

  .pa-player__layout {
    padding: 60px 0 var(--pa-space-6);
    gap: 0;
  }

  .pa-player__stage .pa-phone {
    width: 100%;
    height: 72vh;
    aspect-ratio: auto;
    padding: 0;
    border-radius: 0;
    background: var(--pa-surface);
    box-shadow: none;
  }

  .pa-player__stage .pa-phone::before {
    display: none;
  }

  .pa-player__stage .pa-phone__screen {
    border-radius: 0;
  }

  .pa-player__side {
    padding: var(--pa-space-5) var(--pa-space-4) 0;
  }
}

/* Rapport de vérification d'un fichier ouvert */
.pa-report {
  display: grid;
  gap: var(--pa-space-3);
}

.pa-report[hidden] {
  display: none;
}

.pa-report h3 {
  font-size: var(--pa-text-lg);
}

.pa-report ul {
  display: grid;
  gap: var(--pa-space-2);
  max-height: 22rem;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}

.pa-report__item {
  display: flex;
  gap: var(--pa-space-2);
  padding: var(--pa-space-2) var(--pa-space-3);
  border-radius: var(--pa-radius-sm);
  font-size: var(--pa-text-sm);
}

.pa-report__item .pa-icon {
  margin-top: 2px;
}

.pa-report__item[data-level="danger"] { background: var(--pa-danger-soft); }
.pa-report__item[data-level="danger"] .pa-icon { color: var(--pa-danger); }
.pa-report__item[data-level="warning"] { background: var(--pa-warning-soft); }
.pa-report__item[data-level="warning"] .pa-icon { color: var(--pa-warning); }
.pa-report__item[data-level="success"] { background: var(--pa-success-soft); }
.pa-report__item[data-level="success"] .pa-icon { color: var(--pa-success); }

/* Zone de dépôt affichée pendant un glisser-déposer de fichier */
.pa-drop {
  position: fixed;
  inset: var(--pa-space-4);
  z-index: 200;
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--pa-space-3);
  border: 3px dashed var(--pa-lagoon);
  border-radius: var(--pa-radius-xl);
  background: color-mix(in srgb, var(--pa-lagoon-soft) 92%, transparent);
  color: var(--pa-ink);
  font-family: var(--pa-font-title);
  font-variation-settings: var(--pa-title-variation);
  font-size: var(--pa-text-2xl);
  pointer-events: none;
}

.pa-drop[hidden] {
  display: none;
}

.pa-drop .pa-icon {
  color: var(--pa-lagoon);
}

/* Annonces passagères */
.pa-announcer {
  position: fixed;
  left: 50%;
  bottom: var(--pa-space-6);
  z-index: 300;
  max-width: min(92vw, 36rem);
  padding: var(--pa-space-3) var(--pa-space-5);
  border-radius: var(--pa-radius-md);
  background: var(--pa-ink);
  color: var(--pa-paper);
  font-weight: 700;
  box-shadow: var(--pa-shadow-3);
  transform: translateX(-50%);
}

.pa-announcer:empty {
  opacity: 0;
  pointer-events: none;
}

.pa-announcer[data-level="error"] {
  background: var(--pa-danger);
  color: var(--pa-surface);
}

/* Bouton occupé (chargement d'un ePoc) */
[aria-busy="true"] {
  cursor: progress;
  opacity: 0.7;
}

/* Fenêtre « Insérer une image » de l'atelier (sur téléphone : plein écran, comme les autres fenêtres) */
@media (min-width: 720px) {
  .pa-image {
    width: min(100% - 2rem, 36rem);
  }
}

.pa-image .pa-dialog__badge {
  background: var(--pa-lagoon-soft);
  color: var(--pa-lagoon);
}

.pa-image__body {
  display: grid;
  align-content: start;
  gap: var(--pa-space-4);
}

.pa-image__drop {
  padding: var(--pa-space-5);
}

.pa-image__preview {
  max-width: 100%;
  max-height: 14rem;
  border-radius: var(--pa-radius-md);
  object-fit: contain;
  background: repeating-conic-gradient(var(--pa-line) 0 25%, transparent 0 50%) 50% / 16px 16px;
}

.pa-image__placeholder {
  display: grid;
  place-items: center;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: var(--pa-radius-lg);
  background: var(--pa-lagoon-soft);
}

.pa-image__drop .pa-hint:empty {
  display: none;
}

.pa-image .pa-textarea:disabled {
  opacity: 0.55;
}

/* Fenêtre « Emballer » : une grande carte par façon de donner la papillote (plein écran sur téléphone) */
@media (min-width: 720px) {
  .pa-pack {
    width: min(100% - 2rem, 48rem);
  }
}

.pa-pack__list {
  display: grid;
  gap: var(--pa-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.pa-pack__card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--pa-space-3) var(--pa-space-4);
  padding: var(--pa-space-4);
  border: 1px solid var(--pa-line);
  border-left: 6px solid var(--pa-tone, var(--pa-line-strong));
  border-radius: var(--pa-radius-lg);
  background: var(--pa-surface);
}

.pa-pack__icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--pa-tone-soft, var(--pa-paper-deep));
  color: var(--pa-tone, var(--pa-ink));
}

.pa-pack__text h3 {
  margin: 0 0 var(--pa-space-1);
  font-size: var(--pa-text-lg);
}

.pa-pack__text p {
  margin: 0;
  color: var(--pa-ink-soft);
}

.pa-pack__card > .pa-button {
  grid-column: 1 / -1;
  justify-self: stretch;
}

.pa-pack__warning {
  display: flex;
  gap: var(--pa-space-2);
  margin-top: var(--pa-space-2) !important;
  padding: var(--pa-space-2) var(--pa-space-3);
  border-radius: var(--pa-radius-md);
  background: var(--pa-gold-soft);
  color: var(--pa-ink) !important;
}

.pa-pack__warning > span:first-child {
  display: inline-flex;
  flex: none;
  margin-top: 3px;
  color: var(--pa-gold-ink);
}

.pa-pack__warning .pa-button {
  min-height: var(--pa-target-min);
  padding-inline: 0;
  white-space: normal;
  text-align: left;
}

.pa-pack__status:empty {
  display: none;
}

@media (min-width: 720px) {
  .pa-pack__card {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
  }

  .pa-pack__card > .pa-button {
    grid-column: 3;
    justify-self: start;
  }

  /* Carte téléphone : haute (adresse, QR code), son icône reste en haut */
  .pa-pack__card--phone {
    align-items: start;
  }
}

/* Vérification en tête de « Emballer » */
.pa-pack__checks {
  margin-bottom: var(--pa-space-4);
}

.pa-pack__ready,
.pa-pack__blocked > p {
  display: flex;
  align-items: flex-start;
  gap: var(--pa-space-2);
  margin: 0;
}

.pa-pack__ready {
  padding: var(--pa-space-3) var(--pa-space-4);
  border-radius: var(--pa-radius-md);
  background: var(--pa-success-soft);
  color: var(--pa-ink);
}

.pa-pack__ready .pa-icon {
  flex: none;
  color: var(--pa-success);
}

.pa-pack__blocked {
  display: grid;
  gap: var(--pa-space-2);
  justify-items: start;
  padding: var(--pa-space-4);
  border-left: 5px solid var(--pa-danger);
  border-radius: var(--pa-radius-md);
  background: var(--pa-danger-soft);
}

.pa-pack__blocked .pa-icon {
  flex: none;
  margin-top: 2px;
  color: var(--pa-danger);
}

.pa-pack__blocked ul {
  margin: 0;
  padding-left: var(--pa-space-6);
}

/* Carte téléphone : adresse du .epoc, puis QR code */
.pa-pack__address {
  margin-top: var(--pa-space-3);
}

.pa-pack__address-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pa-space-2);
}

.pa-pack__address-row .pa-input {
  flex: 1 1 16rem;
  min-width: 0;
}

.pa-pack__qr {
  margin-top: var(--pa-space-3);
  background: var(--pa-gold-soft);
}

.pa-pack__handout {
  display: grid;
  justify-items: start;
  gap: var(--pa-space-2);
  margin-top: var(--pa-space-3);
}

/* Sur un téléphone, le libellé passe à la ligne plutôt que d'écraser l'icône. */
.pa-pack__handout .pa-button > span:first-child {
  flex: none;
}

.pa-pack__handout[hidden] {
  display: none;
}

/* Dans les cartes de « Partager », un bouton au libellé long passe à la ligne au lieu de déborder (téléphone). */
.pa-pack__text .pa-button {
  max-width: 100%;
  white-space: normal;
  text-align: start;
}
