html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:sans-serif;color:#000}#zoom-wrapper{position:fixed;top:0;left:0;width:100%;height:100vh;transform-origin:0 0;display:flex;align-items:center;justify-content:center;overflow:hidden}.main-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;max-width:600px;padding:0 .5rem;box-sizing:border-box;height:100%;max-height:100%;margin:0 auto}h1{margin:clamp(1rem,3vh,2.5rem) 0;font-size:clamp(1.5rem,4vw,2.5rem);text-align:center;word-wrap:break-word}#qrcode{max-width:100%;display:flex;justify-content:center;align-items:center;width:min(550px,80vw,50vh);height:min(550px,80vw,50vh);min-width:min(280px,80vw);min-height:min(280px,80vw)}#qrcode img,#qrcode canvas{width:100%!important;height:100%!important;max-width:min(550px,80vw,50vh)!important;max-height:min(550px,80vw,50vh)!important}#code{font-size:clamp(18px,4vw,26px);font-weight:700;font-style:italic;margin:clamp(1rem,2vh,2rem) 0;word-break:break-all;max-width:90vw;text-align:center;min-height:1.5em}.qr-loading{width:60px;height:60px;border:5px solid #e0e0e0;border-top-color:#4a90d9;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:480px){.qr-loading{width:40px;height:40px}body{padding:.5rem}.main-content{padding:0 .5rem}}.upload-link{display:inline-block;padding:.75rem 1.5rem;background:#4a90d9;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:background .2s;margin-top:1rem}.upload-link:hover{background:#357abd}.upload-container{width:100%;max-width:500px;padding:0 1rem;box-sizing:border-box}.dropzone{border:3px dashed #ccc;border-radius:12px;padding:2rem;text-align:center;transition:all .3s ease;background:#fafafa;cursor:pointer}.dropzone:hover,.dropzone.dragover{border-color:#4a90d9;background:#f0f7ff}.dropzone.has-file{border-color:#4caf50;background:#f0fff0}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.upload-icon{color:#888;margin-bottom:.5rem}.dropzone.dragover .upload-icon{color:#4a90d9}.or-text{color:#888;font-size:.9rem;margin:.5rem 0}.file-select-btn{background:#4a90d9;color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;transition:background .2s;font-weight:500}.file-select-btn:hover{background:#357abd}.file-limit{color:#888;font-size:.85rem;margin-top:.5rem}.file-info{margin-top:1rem;padding:1rem;background:#e8f5e9;border-radius:8px;border:1px solid #c8e6c9}.file-details{display:flex;align-items:center;gap:1rem}.file-name{font-weight:500;flex:1;word-break:break-all}.file-size{color:#666;font-size:.9rem}.remove-btn{background:#ff5252;color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .2s}.remove-btn:hover{background:#d32f2f}.code-section{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.code-section label{font-weight:500;color:#333}.code-section input{padding:.75rem 1rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s;height:52px;box-sizing:border-box}.code-section input:focus{outline:none;border-color:#4a90d9}.upload-btn{width:100%;margin-top:1.5rem;padding:1rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;height:60px}.upload-btn:hover:not(:disabled){background:#43a047}.upload-btn:disabled{background:#bbb;cursor:not-allowed}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-message{margin-top:1rem;padding:1rem;border-radius:8px;text-align:center;font-weight:500}.status-message.success{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.status-message.error{background:#ffebee;color:#c62828;border:1px solid #ffcdd2}.progress-container{margin-top:1rem;background:#e0e0e0;border-radius:10px;overflow:hidden;position:relative;height:24px}.progress-bar{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);width:0%;transition:width .3s ease}.progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:600;font-size:.85rem;color:#333}.hidden{display:none!important}.wide-content{max-width:1100px;margin:0 auto}.dual-container{display:flex;gap:2rem;width:100%;flex-wrap:wrap;justify-content:center;align-items:stretch}.panel{flex:1;min-width:320px;max-width:500px;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:1.5rem;box-sizing:border-box;display:flex;flex-direction:column}.panel h2{margin:0 0 1.5rem;font-size:1.3rem;color:#333;text-align:center}.upload-container,.download-container{display:flex;flex-direction:column;flex:1}.download-container{gap:1.5rem}.download-icon-wrapper{display:flex;justify-content:center;padding:2rem 0;flex:1;align-items:center}.download-icon{color:#4a90d9;width:128px;height:128px}.input-section{display:flex;flex-direction:column;gap:.5rem}.input-section label{font-weight:500;color:#333}.input-section input{padding:.75rem 1rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s;height:52px;box-sizing:border-box}.input-section input:focus{outline:none;border-color:#4a90d9}.download-btn{width:100%;padding:1rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;height:60px}.download-btn:hover:not(:disabled){background:#357abd}.download-btn:disabled{background:#bbb;cursor:not-allowed}@media(max-width:1024px){.dual-container{flex-direction:column;align-items:center}.panel{width:100%;max-width:500px}}@media(max-width:768px){html,body{overflow-y:auto!important;overflow-x:hidden;height:auto;min-height:100%;-webkit-overflow-scrolling:touch}#zoom-wrapper{position:static!important;height:auto!important;min-height:100vh;overflow:visible!important;transform:none!important}.main-content{min-height:100vh;padding:1rem .5rem 2rem;margin:0 auto}.main-content.wide-content{justify-content:flex-start;min-height:auto;padding-top:2rem}.dual-container{gap:1.5rem}.panel{min-width:unset;width:100%}}
