/* Le mot de passe de la séance : un ticket crème, le code en grosses lettres, tamponné quand Nuvio l'a reçu. */
.seance { position: relative; display: grid; padding: 16px 18px 16px 30px; border-radius: 12px; color: var(--ink); overflow: hidden;
  background: radial-gradient(circle at 0 50%, var(--velvet) 9px, transparent 10px) left center / 20px 100% no-repeat, linear-gradient(180deg, #f8efdd, #ecdcc0); }
.seance::before { content: ""; position: absolute; left: 16px; top: 10px; bottom: 10px; border-left: 2px dashed rgba(42,26,20,.3); }
.seance p { margin: 0; }
.se-corps { display: grid; gap: 8px; min-width: 0; }
.se-sur { font: 800 .72rem var(--body); letter-spacing: .2em; text-transform: uppercase; color: #8f2420; }
.se-consigne { color: #3a2418; }
.se-code { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font: 400 clamp(2.2rem, 9vw, 3rem)/1 var(--display); letter-spacing: .06em; }
.se-code span { color: #6b4a3a; }
.se-code b { font-weight: 400; color: var(--ink); letter-spacing: .18em; font-variant-numeric: tabular-nums; }
.se-etat { font-weight: 700; font-size: .92rem; color: #5a3a2a; }
.se-etat:empty { display: none; }
.se-etat.guette::before { content: ""; display: inline-block; width: 9px; height: 9px; margin-right: 8px; border-radius: 50%; background: #c2352f; vertical-align: 1px; animation: se-guette 1.4s ease-in-out infinite; }
@keyframes se-guette { 50% { opacity: .25; } }
.seance .ca-changer { justify-self: start; color: #8f2420; border-color: rgba(143,36,32,.45); }
.seance .ca-changer:hover { background: rgba(143,36,32,.08); }
/* Le tampon, en bas à droite : à côté du bouton « Refaire le test », sans cacher le texte. */
.se-tampon { display: none; position: absolute; right: 16px; bottom: 18px; padding: 4px 10px; border: 3px double #1f7a4d; border-radius: 6px; color: #1f7a4d;
  font: 400 1.25rem/1 var(--display); letter-spacing: .08em; text-transform: uppercase; transform: rotate(-9deg); opacity: .92; pointer-events: none; }
.seance.ok .se-tampon { display: block; animation: se-tampon .35s cubic-bezier(.16,1,.3,1); }
@keyframes se-tampon { from { transform: rotate(-9deg) scale(1.6); opacity: 0; } }
.seance.ok .se-etat { color: #1f6b44; }
/* Téléphone : le tampon passe sous le bouton, à droite, au lieu de le recouvrir. */
@media (max-width: 520px) { .se-tampon { position: static; justify-self: end; margin: 8px 4px 2px 0; } }

/* Vérifier ma clé AllDebrid. */
.verif-cle { display: grid; gap: 6px; justify-items: start; }
.verif-cle p { margin: 0; }
.vc-etat { font-weight: 800; font-size: .95rem; }
.vc-etat:empty { display: none; }
.vc-etat.bon { color: var(--green); }
.vc-etat.moyen, .vc-etat.mauvais { color: #ffe1d8; border-left: 3px solid var(--red); padding: 4px 0 4px 10px; }
.vc-etat a { color: var(--bulb); }
.vc-note { max-width: 60ch; }

/* L'œil du projectionniste : le diagnostic par photo. */
.photo-diag { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 16px; padding: 16px 18px; border-radius: 14px; border: 1px solid rgba(255,207,107,.35);
  background: linear-gradient(180deg, rgba(255,207,107,.08), rgba(255,207,107,.02)); }
.photo-diag p { margin: 0; }
.pd-icone { width: 48px; height: 48px; fill: none; stroke: var(--bulb); stroke-width: 2.4; stroke-linejoin: round; }
.pd-texte { display: grid; gap: 8px; }
.pd-texte .sub-h { margin: 0; }
.pd-etat { font-weight: 700; font-size: .95rem; color: var(--bulb); }
.pd-etat:empty { display: none; }
.pd-etat.erreur { color: #ffe1d8; border-left: 3px solid var(--red); padding: 4px 0 4px 10px; }
.pd-etat.lit::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; vertical-align: -1px; animation: pd-tourne .8s linear infinite; }
@keyframes pd-tourne { to { transform: rotate(360deg); } }
.pd-resultat { grid-column: 1 / -1; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px; border-radius: 12px; background: var(--velvet); border: 1px solid var(--seat); scroll-margin-top: 90px; }
.pd-resultat:focus { outline: none; }
.pd-resultat:focus-visible { outline: 3px solid var(--bulb); }
.pd-photo img { display: block; width: 96px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--seat); }
.pd-resultat > div { display: grid; gap: 6px; }
.pd-lu span { display: block; font: 700 .72rem var(--body); letter-spacing: .18em; text-transform: uppercase; color: var(--dim); }
.pd-lu q { font: 600 .95rem var(--type); color: var(--cream); }
.pd-conseil { font-weight: 700; }
.pd-suite { font-size: .9rem; color: var(--bulb); }
/* Le résultat rangé juste au-dessus de la panne choisie, qui s'allume. */
.faq .pd-resultat { margin: 10px 0 0; }
.faq details.pd-choisie { border-left: 3px solid var(--bulb); padding-left: 12px; background: rgba(255,207,107,.05); border-radius: 0 10px 10px 0; }
@media (max-width: 520px) { .photo-diag { grid-template-columns: minmax(0, 1fr); } .pd-icone { width: 40px; height: 40px; } .pd-resultat { grid-template-columns: 72px minmax(0, 1fr); } .pd-photo img { width: 72px; height: 54px; } }
@media (prefers-reduced-motion: reduce) { .se-etat.guette::before, .pd-etat.lit::before { animation: none; } .seance.ok .se-tampon { animation: none; } }
