*{box-sizing:border-box}html,body{margin:0;font-family:system-ui,sans-serif;background:#fff;color:#111}
header{background:#1565c0;color:#fff;text-align:center;padding:12px}h1{margin:0;font-size:1.6rem}
main{padding:16px;max-width:560px;margin:auto}.screen{display:flex;flex-direction:column;gap:14px}.screen[hidden]{display:none}
.big{font-size:1.6rem;font-weight:700;padding:22px;border-radius:20px;border:3px solid #1565c0;background:#fff;color:#1565c0;width:100%;min-height:80px}
.big.primary{background:#1565c0;color:#fff}#scanBtn{font-size:2.4rem;min-height:45vh}
label{display:flex;flex-direction:column;font-size:1.1rem;font-weight:600;gap:4px}
input,textarea{font-size:1.4rem;padding:14px;border:2px solid #90a4ae;border-radius:12px;width:100%}
video{width:100%;border-radius:16px;background:#000;max-height:60vh;object-fit:cover}
.msg{font-size:1.6rem;text-align:center}progress{width:100%;height:24px}
.spinner{width:80px;height:80px;border:10px solid #bbdefb;border-top-color:#1565c0;border-radius:50%;margin:40px auto 0;animation:s 1s linear infinite}@keyframes s{to{transform:rotate(360deg)}}
#qrBox{display:flex;justify-content:center}#qrBox img{width:min(90vw,420px);height:auto;image-rendering:pixelated}
#history h2{font-size:1.1rem;color:#555;margin:8px 0}.hist{font-size:1.2rem;padding:14px;border:2px solid #ddd;border-radius:14px;background:#fafafa;text-align:left;width:100%;margin-bottom:8px}
