*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#000;color:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.capture-container{position:relative;width:100%;height:100dvh;display:flex;flex-direction:column}.video-wrapper{flex:1 1;position:relative;overflow:hidden}.video-wrapper video{width:100%;height:100%;object-fit:cover}.overlay-rect{position:absolute;border:3px solid rgba(0,200,100,.8);border-radius:8px;pointer-events:none;top:30%;left:5%;width:90%;height:45%;box-shadow:0 0 0 9999px rgba(0,0,0,.4)}.overlay-label{position:absolute;top:calc(30% - 28px);left:5%;font-size:14px;color:rgba(0,200,100,.9);font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.8)}.controls{flex-direction:column;padding:16px;gap:12px;background:rgba(0,0,0,.85)}.controls,.operator-row{display:flex;align-items:center}.operator-row{gap:8px;width:100%;max-width:400px}.operator-row label{font-size:13px;white-space:nowrap;color:#aaa}.operator-name{flex:1 1;font-size:15px;font-weight:600;color:#fff}.operator-change-btn{padding:4px 10px;border-radius:6px;border:1px solid #555;background:transparent;color:#888;font-size:11px;cursor:pointer}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:100%;max-width:360px;display:flex;flex-direction:column;gap:20px}.modal-title{text-align:center;font-size:20px;font-weight:700;color:#fff}.modal-options{display:flex;flex-direction:column;gap:8px}.modal-option{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:10px;border:2px solid #333;background:#1a1a1a;color:#fff;cursor:pointer;transition:all .15s}.modal-option.selected{border-color:#16a34a;background:#0a2a14}.modal-option-name{font-size:16px;font-weight:600}.modal-option-code{font-size:14px;color:#888;font-weight:500}.modal-confirm{padding:14px;border-radius:10px;border:none;background:#16a34a;color:#fff;font-size:17px;font-weight:700;cursor:pointer;transition:opacity .15s}.modal-confirm:disabled{opacity:.3;cursor:not-allowed}.capture-btn{width:72px;height:72px;border-radius:50%;border:4px solid #fff;background:transparent;cursor:pointer;position:relative;transition:all .15s}.capture-btn:active{transform:scale(.9)}.capture-btn:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border-radius:50%;background:#fff;transition:background .15s}.capture-btn:active:after{background:#ccc}.capture-btn.uploading:after{background:#ffaa00;animation:pulse .6s infinite alternate}@keyframes pulse{0%{opacity:.5}to{opacity:1}}.status-bar{font-size:12px;color:#888;text-align:center;min-height:18px}.status-bar.success{color:#0c0}.status-bar.error{color:#f44}.counter{position:absolute;top:12px;right:12px;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600;z-index:10}.counter,.success-toast{background:rgba(0,0,0,.7)}.success-toast{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;animation:toastIn .25s ease-out;transition:opacity .7s ease-out;pointer-events:none}.success-toast.fading{opacity:0}.success-toast-icon{width:80px;height:80px;border-radius:50%;background:#16a34a;display:flex;align-items:center;justify-content:center;font-size:42px;color:#fff;margin-bottom:16px;animation:toastPop .35s ease-out}.success-toast-text{font-size:24px;font-weight:700;color:#fff;margin-bottom:4px}.success-toast-sub{font-size:16px;color:rgba(255,255,255,.7)}@keyframes toastIn{0%{opacity:0}to{opacity:1}}@keyframes toastPop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;padding:24px;text-align:center;gap:16px}.error-screen h2{font-size:20px}.error-screen p{color:#aaa;font-size:14px;max-width:300px}.error-screen button{padding:12px 24px;border-radius:8px;border:none;background:#0a0;color:#fff;font-size:16px;cursor:pointer}