.session-qr-layer { position: fixed; z-index: 29; right: 1rem; top: 1rem; width: min(30rem, calc(100vw - 2rem)); pointer-events: none; }
.session-qr { pointer-events: auto; display: grid; gap: .65rem; padding: 1rem; border: 1px solid var(--line, #cbd5e1); border-radius: 1rem; background: var(--surface, #fff); box-shadow: 0 .75rem 2rem rgb(15 23 42 / .16); }
.session-qr__warning, .session-qr__help, .session-qr__payload-label { margin: 0; color: #475569; font-size: .82rem; }
.session-qr__title-label { display: grid; gap: .25rem; font-size: .78rem; font-weight: 700; }
.session-qr input { width: 100%; min-height: 2.25rem; padding: .45rem .55rem; font: inherit; border: 1px solid var(--line, #cbd5e1); border-radius: .55rem; }
.session-qr__state { margin: 0; color: #1e3a8a; font-weight: 700; }
.session-qr__code { padding: .7rem; border: 2px dashed #2563eb; border-radius: .65rem; color: #1e3a8a; font-size: 1.25rem; font-weight: 800; letter-spacing: .08em; text-align: center; }
.session-qr__remaining { margin: 0; color: #334155; font-variant-numeric: tabular-nums; }
.session-qr__payload { display: block; overflow-wrap: anywhere; padding: .45rem; border-radius: .45rem; background: #f8fafc; color: #334155; font-size: .72rem; }
.session-qr__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.session-qr button { min-height: 2.25rem; padding: .45rem .75rem; border: 1px solid var(--line, #cbd5e1); border-radius: .6rem; background: transparent; cursor: pointer; }
.session-qr button.is-primary { color: #fff; background: #1d4ed8; border-color: #1d4ed8; }
.session-qr button:disabled { opacity: .5; cursor: not-allowed; }
.session-qr__error { margin: 0; color: #b91c1c; }
@media (max-width: 430px) { .session-qr-layer { right: .5rem; top: .5rem; width: calc(100vw - 1rem); } }
@media (forced-colors: active) { .session-qr { border: 2px solid CanvasText; box-shadow: none; } .session-qr button.is-primary { background: Highlight; color: HighlightText; } .session-qr__code { border: 2px solid Highlight; } }
@media print { .session-qr-layer, .session-qr-launcher { display: none !important; } }
