.qr-card{margin:16px 0;padding:clamp(14px,3vw,22px);border:1px solid #d5e6dc;border-radius:18px;background:linear-gradient(145deg,#f5fbf7,#edf5f0);color:#183b2e;box-shadow:0 8px 24px #173b2e0d}.qr-card h3{margin:0 0 7px;font-size:1.25rem}.qr-intro{margin:0 0 12px;font-size:.92rem;line-height:1.5;color:#50685d}.qr-warning{margin:10px 0 16px;padding:8px 11px;border-left:3px solid #c18a28;border-radius:5px;background:#fff8e7;color:#654d20;font-size:.84rem;line-height:1.45}.qr-roles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qr-primary{display:flex;min-height:116px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px 10px;border:2px solid #174e3c;border-radius:16px;background:#174e3c;color:#fff;font:inherit;cursor:pointer;box-shadow:0 5px 12px #174e3c24;transition:transform .15s,box-shadow .15s}.qr-primary:hover{transform:translateY(-2px);box-shadow:0 8px 16px #174e3c30}.qr-primary span{font-size:1.34rem;font-weight:800}.qr-primary small{font-size:.9rem;opacity:.94}.qr-primary:focus-visible,.qr-card button:focus-visible,.qr-card select:focus-visible,.qr-card textarea:focus-visible,.qr-advanced summary:focus-visible{outline:3px solid #c38320;outline-offset:3px}.qr-guidance{margin:14px 0;padding:12px;border:1px solid #c7dfd0;border-radius:11px;background:#e5f3ea;font-size:.95rem;line-height:1.5}.qr-render{margin:14px 0;padding:12px;text-align:center;border:1px solid #cadfd2;border-radius:13px;background:#fff}.qr-render p{line-height:1.5}.qr-render canvas{display:block;width:min(100%,340px);height:auto;margin:8px auto;image-rendering:pixelated}.qr-progress{font-weight:700;color:#174e3c}.qr-nav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.qr-roles .qr-primary,.qr-actions button,.qr-nav button{min-height:42px;padding:9px 13px;border:1px solid #174e3c;border-radius:10px;background:#174e3c;color:#fff;font:inherit;font-weight:700;cursor:pointer}.qr-nav button{font-size:.86rem}.qr-nav button:disabled,.qr-card button:disabled{opacity:.5;cursor:not-allowed}.qr-scanner{margin:12px 0;padding:12px;border-radius:12px;background:#102b21;color:#fff}.qr-scanner video{display:block;width:100%;max-height:55vh;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:#000}.qr-scanner label{display:block;margin-top:10px;font-weight:700}.qr-scanner select{box-sizing:border-box;width:100%;min-height:42px;margin:5px 0;padding:8px;border:1px solid #849a8c;border-radius:8px;font:inherit}.qr-scanner button{margin:4px 5px 0 0;background:#fff;color:#174e3c}.qr-actions{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.qr-actions button{flex:1 1 150px}.qr-card #qr-status{min-height:1.4em;margin:12px 0 4px;padding:10px 12px;border-radius:9px;background:#e4f1e9;font-size:.92rem;line-height:1.45}.qr-card #qr-status[data-error="true"]{background:#fff0ed;color:#8b3125}.qr-advanced{margin-top:16px;border-top:1px solid #cddbd2;padding-top:10px;color:#405b4d}.qr-advanced summary{cursor:pointer;font-weight:700}.qr-advanced p{font-size:.85rem;line-height:1.5;color:#536b60}.qr-advanced label{display:block;margin:10px 0 5px;font-weight:700}.qr-card textarea{box-sizing:border-box;width:100%;padding:10px;border:1px solid #b9ccc1;border-radius:9px;font:.78rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.qr-advanced .qr-actions{margin-bottom:0}#qr-flow[hidden],.qr-roles[hidden],.qr-render[hidden],.qr-scanner[hidden],.qr-guidance[hidden],.qr-nav[hidden],.qr-progress[hidden]{display:none!important}@media(max-width:480px){.qr-card{padding:12px}.qr-roles{gap:8px}.qr-primary{min-height:102px;padding:12px 6px}.qr-primary span{font-size:1.16rem}.qr-primary small{font-size:.8rem}.qr-render canvas{width:min(100%,300px)}}
html[data-appearance="dark"] .link-card .qr-card{background:linear-gradient(145deg,#182b24,#1d3328);border-color:#416052;color:#f0f6f2}
html[data-appearance="dark"] .link-card .qr-intro,html[data-appearance="dark"] .link-card .qr-advanced p{color:#c2d4ca}
html[data-appearance="dark"] .link-card .qr-warning{background:#40351f;border-color:#d5a54e;color:#f7e7bd}
html[data-appearance="dark"] .link-card .qr-primary{background:#266748;color:#fff;border-color:#78ae90;box-shadow:none}
html[data-appearance="dark"] .link-card .qr-guidance{background:#20382d;border-color:#4b6d5b;color:#e7f1ea}
html[data-appearance="dark"] .link-card .qr-render{background:#243b30;border-color:#4b6d5b;color:#f0f6f2}
html[data-appearance="dark"] .link-card .qr-advanced{border-color:#4b6d5b;color:#e1eee5}
html[data-appearance="dark"] .link-card .qr-card button{background:#266748;color:#fff;border:1px solid #78ae90;border-radius:10px;box-shadow:none}
html[data-appearance="dark"] .link-card .qr-card button:disabled{opacity:.55}
html[data-appearance="dark"] .link-card .qr-card textarea,html[data-appearance="dark"] .link-card .qr-card select{background:#10251b;border:1px solid #6a8d78;color:#f0f6f2;box-shadow:none}
html[data-appearance="dark"] .link-card .qr-card #qr-status{background:#253e31;color:#e2efe7}
html[data-appearance="dark"] .link-card .qr-card #qr-status[data-error="true"]{background:#4c2523;color:#ffd9d2}

/* Les deux actions essentielles restent visibles dès l’ouverture sur mobile. */
.qr-tab-selector{display:none!important}.link-card .qr-card{margin-top:8px}.link-card .qr-card h3{font-size:1.05rem}.link-card .qr-intro{margin-top:4px}

/* Édition 16 : cadre QR adaptable et aperçu visible seulement après démarrage. */
#qr-render{min-width:0;max-width:100%;overflow:hidden}
#qr-canvas{display:block!important;width:min(100%,340px)!important;max-width:100%!important;height:auto!important;aspect-ratio:1;margin:8px auto;image-rendering:pixelated}
.qr-camera-placeholder{display:flex;align-items:center;justify-content:center;min-height:130px;padding:22px;text-align:center;border:1px dashed #a3c2ae;border-radius:9px;background:#eaf4ed;color:#405e4d;font-size:.95rem;line-height:1.5}
#qr-video[hidden],#qr-camera-placeholder[hidden],#qr-camera-choice[hidden]{display:none!important}
.qr-scanner:has(#qr-video[hidden]){background:transparent;color:inherit;border:1px solid #cadfd2}
html[data-appearance="dark"] .qr-camera-placeholder{background:#20382d;color:#e7f1ea;border-color:#6a8d78}
@media(max-width:480px){#qr-canvas{width:min(100%,300px)!important}}
