/* « Faire venir mes patients » on the Espace praticien (js/patients-guide.js):
   bottom sheet with the practitioner's card (owner, 2026-10-19, mockup B3). */
.pg-sheet { position: fixed; inset: 0; z-index: 3500; }   /* above the tab bar (2500) and sheets (2700) */
.pg-sheet.hidden { display: none; }
.pg-dim { position: absolute; inset: 0; background: rgb(30 36 33 / .45); }
.pg-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-height: 92vh; overflow-y: auto;
  max-width: 520px; margin: 0 auto; background: var(--z-cream); color: var(--z-ink);
  border-radius: 26px 26px 0 0; padding: 10px 22px calc(22px + env(safe-area-inset-bottom));
  box-shadow: 0 -6px 24px rgb(0 0 0 / .14); animation: pg-up .22s ease-out;
}
@keyframes pg-up { from { transform: translateY(40px); } }
@media (prefers-reduced-motion: reduce) { .pg-panel { animation: none; } }
.pg-grab { display: block; width: 40px; height: 5px; border-radius: 3px; background: rgb(0 0 0 / .15); margin: 0 auto 12px; }
.pg-x {
  position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; border: 0;
  background: #ebe7dd; display: grid; place-items: center; cursor: pointer;
}
.pg-x svg { width: 18px; height: 18px; fill: none; stroke: var(--z-ink); stroke-width: 2.2; stroke-linecap: round; }
.pg-h { font-family: Georgia, serif; font-weight: 400; font-size: 21px; text-align: center; margin: 4px 44px 14px; }

.pg-card {
  background: var(--z-green); color: var(--z-cream); border-radius: 22px; padding: 18px 18px 14px; text-align: center;
  box-shadow: 0 10px 28px rgb(63 94 79 / .28);
}
.pg-card-top { display: flex; align-items: center; gap: 12px; text-align: left; }
.pg-card-av {
  flex: none; width: 54px; height: 54px; border-radius: 50%; overflow: hidden; border: 3px solid rgb(255 255 255 / .5);
  background: rgb(255 255 255 / .16); display: grid; place-items: center; font-size: 22px; font-weight: 700;
}
.pg-card-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-card-id { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pg-card-id strong { font-family: Georgia, serif; font-weight: 400; font-size: 19px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pg-card-id span { font-size: 13px; opacity: .85; }
.pg-card-logo { flex: none; width: 24px; height: 24px; border-radius: 50%; }
.pg-card-qr { position: relative; width: 184px; height: 184px; margin: 14px auto 8px; background: var(--z-cream); border-radius: 18px; padding: 10px; }
.pg-card-qr > div, .pg-card-qr svg { width: 100%; height: 100%; display: block; }
.pg-card-qr img {
  position: absolute; left: 50%; top: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px;
  border-radius: 50%; border: 3px solid var(--z-cream);
}
.pg-card-tag { margin: 0; font-family: Georgia, serif; font-style: italic; font-size: 15px; color: #e6d3ad; }
.pg-card-link { margin: 4px 0 0; font-size: 12px; opacity: .75; overflow-wrap: anywhere; }

.pg-or {
  display: flex; align-items: center; gap: 10px; margin: 18px 0 12px; color: var(--z-grey);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
}
.pg-or::before, .pg-or::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .35; }
.pg-apps { display: flex; justify-content: space-between; }
.pg-apps a { width: 72px; text-align: center; font-size: 12px; color: var(--z-ink); text-decoration: none; }
.pg-app-ic {
  display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 6px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 0 1px #e3ddcf;
}
.pg-app-ic svg { width: 24px; height: 24px; fill: none; stroke: var(--z-green); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pg-row { display: flex; gap: 10px; margin-top: 16px; }
.pg-btn {
  flex: 1; padding: 12px 10px; border-radius: 24px; border: 1.5px solid var(--z-green); text-align: center;
  background: var(--z-green); color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
}
.pg-btn--o { background: transparent; color: var(--z-green); }
.pg-btn.hidden { display: none; }
.pg-hint { margin: 14px 0 0; text-align: center; font-size: 13px; color: #5f6467; }
.pg-textlink {
  display: block; margin: 14px auto 0; text-align: center; font-size: 14px; font-weight: 600;
  color: var(--z-green); text-decoration: underline;
}
html.pg-lock, html.pg-lock body { overflow: hidden; }

#pg-poster, #pc-cards { display: none; }
@media print {
  @page { size: A5 portrait; margin: 12mm; }
  body > *:not(#pg-poster) { display: none !important; }
  body { background: #fff !important; }
  #pg-poster { display: block; text-align: center; color: #2e3235; font-family: system-ui, sans-serif; }
  .pg-poster-brand { text-transform: uppercase; font-family: Georgia, serif; letter-spacing: .32em; font-size: 16px; color: #3f5e4f; margin: 0 0 10mm; }
  #pg-poster h1 { font-size: 26px; margin: 0 0 2mm; }
  #pg-poster-job { font-size: 15px; color: #5f6467; margin: 0 0 8mm; }
  #pg-poster-qr { width: 70mm; height: 70mm; margin: 0 auto 8mm; }
  #pg-poster-qr svg { width: 100%; height: 100%; }
  .pg-poster-line { font-size: 18px; font-weight: 600; margin: 0 0 3mm; }
  .pg-poster-sub { font-size: 13px; color: #5f6467; margin: 0 0 6mm; }
  #pg-poster-link { font-size: 13px; font-weight: 600; color: #3f5e4f; }
}

/* « Cartes (PDF) » (js/dashboard.js patientsPrintCards): 8 cards per A4 page,
   printed from the page itself (html.print-cards) instead of a new window. */
#pc-cards { page: zcards; }
@page zcards { size: A4; margin: 0; }
@media print {
  html.print-cards body > #pc-cards { display: block !important; }
  html.print-cards body > #pg-poster { display: none !important; }
  .pc-grid { box-sizing: border-box; width: 210mm; padding: 15mm 10mm; display: grid; grid-template-columns: 85mm 85mm; grid-auto-rows: 55mm; gap: 10mm; font-family: Georgia, serif; color: #2d3a33; }
  .pc-card { box-sizing: border-box; border: .3mm dashed #c9d2cc; border-radius: 3mm; display: flex; align-items: center; gap: 4mm; padding: 4mm; }
  .pc-qr { width: 40mm; flex: none; }
  .pc-qr svg { width: 100%; height: auto; }
  .pc-card b { font-size: 12pt; display: block; }
  .pc-card small { font-size: 8pt; color: #5f6467; display: block; margin-top: 1mm; }
  .pc-l { font-size: 9pt; color: #3f5e4f; font-weight: 700; margin-top: 2mm; display: block; word-break: break-all; }
}
