*{box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow:hidden}#root{width:100%;height:100vh;margin:0;padding:0}.qr-screen{position:relative;display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(180deg,#0072b1 50%,#fff);padding:20px}.qr-instructions{text-align:center;color:#fff;max-width:400px}.qr-instructions h1{font-size:2.5rem;margin-bottom:2rem;font-weight:700}.qr-instructions p{font-size:1.1rem;margin:1rem 0}.username-form{display:flex;align-items:center;gap:.5rem;background:#fff3;padding:.5rem .5rem .5rem 1rem;border-radius:8px;margin:1.5rem 0}.username-prefix{font-family:monospace;font-size:1.2rem;opacity:.8}.username-input{flex:1;min-width:0;background:transparent;border:none;color:#fff;font-family:monospace;font-size:1.2rem;padding:.5rem 0}.username-input::placeholder{color:#fff9}.username-input:focus{outline:none}.username-form:focus-within{background:#ffffff4d}.username-submit{flex-shrink:0;background:#fff;color:#0072b1;border:none;border-radius:6px;cursor:pointer;font-size:1.2rem;line-height:1;padding:.6rem 1rem;transition:transform .2s,opacity .2s}.username-submit:hover:not(:disabled){transform:scale(1.05)}.username-submit:active:not(:disabled){transform:scale(.95)}.username-submit:disabled{cursor:not-allowed;opacity:.5}.qr-instructions .example{font-size:.9rem;opacity:.8}.help{margin-top:1.5rem}.help-toggle{cursor:pointer;display:inline-block;font-size:.95rem;list-style:none;opacity:.9;text-decoration:underline;text-underline-offset:3px}.help-toggle::-webkit-details-marker{display:none}.help-toggle:before{content:"▸";display:inline-block;margin-right:.4rem;text-decoration:none;transition:transform .2s}.help[open] .help-toggle:before{transform:rotate(90deg)}.help-toggle:hover{opacity:1}.help-steps{background:#ffffff26;border-radius:8px;margin:.75rem 0 0;padding:1rem 1rem 1rem 2.25rem;text-align:left}.help-steps li{font-size:.95rem;line-height:1.4}.help-steps li+li{margin-top:.6rem}.help-link{color:#fff;font-weight:600}.qr-container{text-align:center;background:#fff;padding:2rem;border-radius:20px;box-shadow:0 10px 40px #0003}.qr-container h2{color:#000;font-size:1.8rem;margin-bottom:1.5rem}.qr-code-wrapper{cursor:pointer;transition:transform .2s}.qr-code-wrapper:hover{transform:scale(1.05)}.qr-code-wrapper:active{transform:scale(.95)}.qr-code{max-width:300px;width:100%;height:auto;border-radius:10px}.tap-hint{margin-top:1rem;color:#666;font-size:.9rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error{color:#dc2626;font-size:1rem;margin-top:1rem}.camera-screen{position:fixed;inset:0;background:#000;display:flex;justify-content:center;align-items:center}.camera-video{width:100%;height:100%;object-fit:cover;cursor:pointer;transform:scaleX(-1)}.camera-overlay{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:2rem}.tap-instruction{background:#0009;color:#fff;padding:1rem 2rem;border-radius:50px;font-size:1.2rem;animation:pulse 2s infinite}.error-overlay,.loading-overlay{position:absolute;inset:0;background:#000000e6;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;padding:2rem;z-index:10}.error-overlay p,.loading-overlay p{font-size:1.2rem;text-align:center;margin-bottom:2rem}.error-overlay button{background:#0072b1;color:#fff;border:none;padding:1rem 2rem;border-radius:50px;font-size:1rem;cursor:pointer;transition:background .2s}.error-overlay button:hover{background:#084d92}.capture-flash{position:absolute;inset:0;background:#fff;animation:flash .3s;pointer-events:none;z-index:5}@keyframes flash{0%{opacity:0}50%{opacity:.8}to{opacity:0}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.app{width:100%;height:100vh;margin:0;padding:0;overflow:hidden}
