body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:#28342c;min-height:100vh;overflow:hidden;position:relative;text-align:center}.bubbles{inset:0;pointer-events:none;z-index:2}.bubble,.bubbles{position:absolute}.bubble{animation:float linear infinite,wobble ease-in-out infinite,shimmer ease-in-out infinite;animation-fill-mode:backwards,none,none;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);background:radial-gradient(circle at 25% 25%,#fff6 0,#fff0 50%),radial-gradient(circle at 75% 75%,#ffffff26 0,#fff0 40%),radial-gradient(ellipse at 50% 50%,#ffffff05 0,#ffffff0d 100%);border:1px solid #ffffff2e;border-radius:50%;bottom:0;box-shadow:inset 0 -4px 8px #ffffff14,inset 0 4px 12px #ffffff1a,0 0 6px #ffffff0f}.bubble:first-child{animation-delay:0s;animation-duration:12s,3s,2.2s;height:80px;left:5%;width:80px}.bubble:nth-child(2){animation-delay:1s;animation-duration:10s,2.5s,1.8s;height:50px;left:15%;width:50px}.bubble:nth-child(3){animation-delay:2s;animation-duration:14s,4s,2.6s;height:120px;left:25%;width:120px}.bubble:nth-child(4){animation-delay:.5s;animation-duration:9s,2.2s,1.5s;height:40px;left:35%;width:40px}.bubble:nth-child(5){animation-delay:3s;animation-duration:13s,3.5s,2.4s;height:90px;left:45%;width:90px}.bubble:nth-child(6){animation-delay:1.5s;animation-duration:11s,2.8s,2s;height:60px;left:55%;width:60px}.bubble:nth-child(7){animation-delay:0s;animation-duration:15s,3.8s,2.8s;height:100px;left:65%;width:100px}.bubble:nth-child(8){animation-delay:2.5s;animation-duration:8s,2s,1.6s;height:45px;left:75%;width:45px}.bubble:nth-child(9){animation-delay:1s;animation-duration:12s,3.2s,2.1s;height:70px;left:85%;width:70px}.bubble:nth-child(10){animation-delay:3.5s;animation-duration:10s,2.6s,1.9s;height:55px;left:92%;width:55px}@keyframes wobble{0%,to{margin-left:0}25%{margin-left:-15px}75%{margin-left:15px}}@keyframes shimmer{0%,to{border-color:#96c8ff66;box-shadow:inset 0 -6px 12px #64b4ff4d,inset 0 6px 16px #ff96ff40,0 0 10px #96c8ff26}25%{border-color:#ffb4ff73;box-shadow:inset 0 -6px 14px #ff96dc59,inset 0 6px 16px #64ffc84d,0 0 14px #ffb4ff33}50%{border-color:#96ffc873;box-shadow:inset 0 -6px 14px #64ffb459,inset 0 6px 16px #ffc86440,0 0 14px #96ffc833}75%{border-color:#ffdc9666;box-shadow:inset 0 -6px 14px #ffc8644d,inset 0 6px 16px #64b4ff4d,0 0 14px #ffdc9633}}@keyframes float{0%{opacity:0;transform:translateY(0) scale(.8)}10%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translateY(-120vh) scale(1.1)}}.App-header{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}.App-header h1{font-size:4rem;margin:0}.App-subheader{color:#aaa;font-size:1.2rem;margin-top:.5rem}.App-buttons{display:flex;gap:1rem;justify-content:center;padding:2rem}.App-button{background-color:#4a7c59;border-radius:6px;color:#fff;display:inline-block;font-size:1rem;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s}.App-button:hover{background-color:#5a9c6a}.QrScannerCard{background:#ffffff1a;border:1px solid #fff3;border-radius:12px;margin-top:1rem;padding:.85rem;width:min(92vw,360px)}.QrReader{border-radius:10px;min-height:280px;overflow:hidden;width:100%}.QrReaderWrap{position:relative}.QrTarget{border:1px solid #ffffff42;border-radius:12px;box-shadow:0 0 0 9999px #0000001f;height:min(72vw,280px);left:50%;overflow:hidden;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:min(72vw,280px)}.QrCorner{border:0 solid #95ffc5;height:24px;position:absolute;width:24px}.QrCornerTL{border-left-width:4px;border-top-left-radius:8px;border-top-width:4px;left:0;top:0}.QrCornerTR{border-right-width:4px;border-top-right-radius:8px;border-top-width:4px;right:0;top:0}.QrCornerBL{border-bottom-left-radius:8px;border-bottom-width:4px;border-left-width:4px;bottom:0;left:0}.QrCornerBR{border-bottom-right-radius:8px;border-bottom-width:4px;border-right-width:4px;bottom:0;right:0}.QrSweepLine{animation:qr-sweep 2.2s ease-in-out infinite;background:linear-gradient(90deg,#95ffc51a,#95ffc5,#95ffc51a);border-radius:999px;height:2px;left:8%;position:absolute;width:84%}@keyframes qr-sweep{0%{opacity:.35;top:10%}50%{opacity:1;top:50%}to{opacity:.35;top:90%}}.QrStatus{color:#d5e8d8;font-size:.92rem;margin:.8rem 0 0}.QrHint{color:#c6d8c9;font-size:.85rem;margin:.35rem 0 0}.QrDetected{color:#95ffc5;font-size:.85rem;font-weight:600;margin:.5rem 0 0}.TorchButton{background:#95ffc526;border:1px solid #95ffc58c;border-radius:10px;color:#eafff2;cursor:pointer;font-size:.88rem;margin-top:.55rem;padding:.45rem .8rem}.TorchButton:disabled{cursor:not-allowed;opacity:.65}.TorchNote{color:#d6dfd8;font-size:.8rem;margin:.5rem 0 0}.QrResult{background:#0003;border:1px solid #ffffff26;border-radius:12px;margin-top:1rem;padding:.95rem 1rem;text-align:left;width:min(92vw,360px)}.QrResult h2{font-size:1rem;margin:0}.QrResult p{color:#f4fff4;font-size:.95rem;line-height:1.35;margin:.6rem 0 0;word-break:break-word}.AssignPage .App-header{min-height:100vh;padding:1rem}.AssignPage .QrScannerCardFull{background:#000;border:1px solid #ffffff2e;border-radius:14px;height:min(90vh,780px);margin:0;overflow:hidden;padding:0;position:relative;width:min(96vw,560px)}.AssignPage .QrReaderWrapFull{height:100%;width:100%}.AssignPage .QrReader{height:100%;min-height:100%}.AssignPage #qr-reader__scan_region,.AssignPage .QrReader canvas,.AssignPage .QrReader video{height:100%!important;width:100%!important}.AssignPage .QrReader canvas,.AssignPage .QrReader video{object-fit:cover}.AssignPage .QrOverlayTop{background:linear-gradient(180deg,#0000009e,#0000);left:0;padding:.9rem .9rem .45rem;position:absolute;right:0;text-align:center;top:0;z-index:6}.AssignPage .QrOverlayTop h1{font-size:clamp(1.3rem,4vw,1.9rem);margin:0}.AssignPage .QrOverlayTop .App-subheader{color:#e9f5ecd9;font-size:.85rem;margin-top:.15rem}.AssignPage .QrOverlayBottom{background:linear-gradient(0deg,#000000bd,#0000);bottom:0;left:0;padding:.55rem .8rem .65rem;position:absolute;right:0;z-index:6}.AssignPage .QrDetected,.AssignPage .QrHint,.AssignPage .QrStatus,.AssignPage .TorchNote{font-size:.76rem;margin-bottom:0;margin-top:.2rem;text-align:center}.AssignPage .TorchButton{display:block;font-size:.78rem;margin:.35rem auto 0;padding:.36rem .68rem}.AssignPage .QrResultCompact{background:#00000073;margin:.38rem auto 0;padding:.4rem .55rem;width:min(95vw,380px)}.AssignPage .QrResultCompact h2{font-size:.74rem}.AssignPage .QrResultCompact p{font-size:.73rem;line-height:1.22;margin-top:.2rem;max-height:2.45em}.AssignPage .App-buttonsCompact{padding:.35rem 0 0}.AssignPage .App-buttonsCompact .App-button{font-size:.78rem;padding:.42rem .7rem}@media (max-width:768px){.AssignPage{overflow:hidden}.AssignPage .App-header{min-height:100dvh;padding:0;width:100%}.AssignPage .QrScannerCardFull{border:0;border-radius:0;height:100dvh;width:100vw}.AssignPage .QrReader{height:100dvh;min-height:100dvh}.AssignPage .QrOverlayTop{padding:max(.75rem,env(safe-area-inset-top)) .8rem .35rem}.AssignPage .QrOverlayTop h1{font-size:clamp(1.2rem,5.8vw,1.75rem);line-height:1.1}.AssignPage .QrOverlayTop .App-subheader{font-size:.78rem}.AssignPage .QrOverlayBottom{padding:.4rem .72rem max(.45rem,env(safe-area-inset-bottom))}.AssignPage .QrDetected,.AssignPage .QrHint,.AssignPage .QrStatus,.AssignPage .TorchNote{font-size:.72rem}.AssignPage .TorchButton{font-size:.75rem}}
/*# sourceMappingURL=main.faa52026.css.map*/