/* Lecteur de QR code */
.o-lecteur-qr-prive { margin: 0; padding: 10px 12px; border-radius: var(--rayon-petit); background: var(--ok-fond); color: var(--ok-texte); font-size: .92rem; }
.o-lecteur-qr-sources { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; margin-top: 16px; }
.o-lecteur-qr-bloc { min-width: 0; }
.o-lecteur-qr h2 { margin: 0 0 10px; font-size: 1.2rem; }
.o-lecteur-qr-depot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 220px; padding: 18px; border: 2px dashed var(--bord); border-radius: var(--rayon); background: var(--surface-2); text-align: center; }
.o-lecteur-qr-depot.survol { border-color: var(--marque); }
.o-lecteur-qr-depot-texte { margin: 0; font-weight: 600; color: var(--texte); }
.o-lecteur-qr-choisir { position: relative; }
.o-lecteur-qr-choisir input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.o-lecteur-qr-choisir:focus-within { outline: 3px solid var(--marque); outline-offset: 2px; }
.o-lecteur-qr-astuce { margin: 0; font-size: .85rem; color: var(--texte-2); }
.o-lecteur-qr-commandes { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.o-lecteur-qr-commandes [hidden] { display: none; }
.o-lecteur-qr-commandes [aria-pressed="true"] { background: var(--marque); border-color: var(--marque); color: var(--sur-marque); }
.o-lecteur-qr-ecran { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 3; max-height: 360px; border-radius: var(--rayon); background: var(--surface-2); overflow: hidden; }
.o-lecteur-qr-ecran video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; display: none; }
.o-lecteur-qr-viseur { position: absolute; width: 58%; aspect-ratio: 1; max-height: 80%; border: 3px solid rgb(255 255 255 / .9); border-radius: 14px; box-shadow: 0 0 0 9999px rgb(0 0 0 / .25); display: none; }
.o-lecteur-qr[data-cam="on"] .o-lecteur-qr-ecran video, .o-lecteur-qr[data-cam="on"] .o-lecteur-qr-viseur { display: block; }
.o-lecteur-qr[data-cam="on"] .o-lecteur-qr-vide { display: none; }
.o-lecteur-qr-vide { margin: 0; padding: 16px; max-width: 22em; text-align: center; color: var(--texte-2); font-size: .92rem; }
.o-lecteur-qr-choix { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; font-size: .88rem; color: var(--texte-2); }
.o-lecteur-qr-message { display: block; margin: 16px 0 0; padding: 8px 12px; border-radius: var(--rayon-petit); background: var(--surface-2); color: var(--texte); font-size: .95rem; }
.o-lecteur-qr-message:empty { display: none; }
.o-lecteur-qr-message.erreur { background: var(--erreur-fond); color: var(--erreur-texte); }
.o-lecteur-qr-zone-resultats { margin-top: 16px; }
.o-lecteur-qr-zone-resultats[hidden], .o-lecteur-qr-historique[hidden] { display: none; }
.o-lecteur-qr-image { display: block; max-width: min(100%, 420px); height: auto; margin: 0 auto 12px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); }
.o-lecteur-qr-image[hidden] { display: none; }
.o-lecteur-qr-resultats { display: grid; gap: 12px; }
.o-lecteur-qr-carte { min-width: 0; padding: 14px; border: 1px solid var(--bord); border-radius: var(--rayon); background: var(--surface); }
.o-lecteur-qr-carte h3 { margin: 0 0 8px; font-size: 1.05rem; }
.o-lecteur-qr-domaine { display: flex; flex-direction: column; gap: 2px; margin: 0 0 8px; padding: 10px 12px; border-radius: var(--rayon-petit); background: var(--surface-2); }
.o-lecteur-qr-domaine span { font-size: .85rem; color: var(--texte-2); }
.o-lecteur-qr-domaine strong { font-size: 1.4rem; line-height: 1.25; overflow-wrap: anywhere; color: var(--texte); }
.o-lecteur-qr-avertissements { margin: 0 0 8px; padding: 8px 12px 8px 30px; border-radius: var(--rayon-petit); background: var(--erreur-fond); color: var(--erreur-texte); font-size: .9rem; }
.o-lecteur-qr-fiche { display: grid; gap: 6px; margin: 0 0 8px; }
.o-lecteur-qr-fiche div { display: grid; grid-template-columns: minmax(7em, 30%) 1fr; gap: 10px; min-width: 0; }
.o-lecteur-qr-fiche dt { color: var(--texte-2); font-size: .9rem; }
.o-lecteur-qr-fiche dd { margin: 0; min-width: 0; white-space: pre-line; overflow-wrap: anywhere; font-weight: 600; }
.o-lecteur-qr-mdp { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.o-lecteur-qr-mdp code { font: 600 1rem var(--mono); overflow-wrap: anywhere; }
.o-lecteur-qr-brut-titre { margin: 8px 0 4px; font-size: .85rem; color: var(--texte-2); }
.o-lecteur-qr-brut { margin: 0; max-height: 220px; overflow: auto; padding: 8px 10px; border-radius: var(--rayon-petit); background: var(--surface-2); color: var(--texte); font: .9rem/1.45 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.o-lecteur-qr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.o-lecteur-qr-alerte { margin: 16px 0; padding: 10px 12px; border-left: 4px solid var(--erreur-texte); border-radius: var(--rayon-petit); background: var(--surface-2); color: var(--texte); font-size: .9rem; }
.o-lecteur-qr-historique { margin-top: 14px; }
.o-lecteur-qr-historique-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.o-lecteur-qr-historique-tete h2 { margin: 0; }
.o-lecteur-qr-historique ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.o-lecteur-qr-historique li { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; align-items: center; padding: 8px 10px; border-radius: var(--rayon-petit); background: var(--surface-2); }
.o-lecteur-qr-histo-date { font-size: .82rem; color: var(--texte-2); }
.o-lecteur-qr-histo-texte { grid-column: 1; font: .9rem var(--mono); overflow-wrap: anywhere; }
.o-lecteur-qr-historique li .btn { grid-column: 2; grid-row: 1 / span 2; }
.o-lecteur-qr-historique li.o-lecteur-qr-histo-vide { display: block; color: var(--texte-2); }
