*,:before,:after{box-sizing:border-box}body{color:#e8e8f0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f0f13;margin:0;padding:0;font-family:Inter,system-ui,sans-serif}.app[data-v-242eaea1]{color:#e8e8f0;background:#0f0f13;flex-direction:column;min-height:100dvh;font-family:Inter,system-ui,sans-serif;display:flex}.app-header[data-v-242eaea1]{text-align:center;padding:2rem 1rem 1rem}.app-header h1[data-v-242eaea1]{letter-spacing:.04em;background:linear-gradient(135deg,#a78bfa,#60a5fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.75rem;font-weight:700}.subtitle[data-v-242eaea1]{color:#6b7280;letter-spacing:.1em;text-transform:uppercase;margin:.25rem 0 0;font-size:.85rem}.app-main[data-v-242eaea1]{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.btn[data-v-242eaea1]{cursor:pointer;border:none;border-radius:.75rem;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:1rem;font-weight:600;transition:transform .1s,box-shadow .2s,opacity .2s;display:inline-flex}.btn[data-v-242eaea1]:active{transform:scale(.97)}.btn-icon[data-v-242eaea1]{flex-shrink:0;width:18px;height:18px}.btn-primary[data-v-242eaea1]{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);box-shadow:0 4px 20px #7c3aed59}.btn-primary[data-v-242eaea1]:hover{box-shadow:0 4px 28px #7c3aed8c}.btn-secondary[data-v-242eaea1]{color:#e8e8f0;background:#1e1e2a;border:1px solid #374151}.btn-secondary[data-v-242eaea1]:hover{background:#2a2a3a}.idle-state[data-v-242eaea1]{flex-direction:column;align-items:center;gap:2rem;display:flex}.placeholder-box[data-v-242eaea1]{aspect-ratio:3/4;color:#4b5563;background:#1a1a24;border:2px dashed #2d2d42;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:min(300px,70vw);display:flex}.placeholder-box svg[data-v-242eaea1]{opacity:.4;width:72px;height:72px}.placeholder-box p[data-v-242eaea1]{margin:0;font-size:.95rem;font-weight:500}.scanner-section[data-v-242eaea1]{flex-direction:column;align-items:center;gap:1.25rem;width:100%;display:flex}.viewfinder-wrapper[data-v-242eaea1]{aspect-ratio:4/3;background:#000;border-radius:1rem;width:min(380px,92vw);position:relative;overflow:hidden;box-shadow:0 8px 40px #0009}.viewfinder[data-v-242eaea1]{object-fit:cover;width:100%;height:100%;display:block}.qr-overlay[data-v-242eaea1]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.corner[data-v-242eaea1]{border:0 solid #a78bfa;width:32px;height:32px;position:absolute}.corner.top-left[data-v-242eaea1]{border-top-width:3px;border-left-width:3px;border-top-left-radius:6px;top:14%;left:10%}.corner.top-right[data-v-242eaea1]{border-top-width:3px;border-right-width:3px;border-top-right-radius:6px;top:14%;right:10%}.corner.bottom-left[data-v-242eaea1]{border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:6px;bottom:14%;left:10%}.corner.bottom-right[data-v-242eaea1]{border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:6px;bottom:14%;right:10%}.scan-line[data-v-242eaea1]{opacity:0;background:linear-gradient(90deg,#0000,#a78bfa,#0000);height:2px;position:absolute;top:14%;left:10%;right:10%}.scan-line.scanning[data-v-242eaea1]{opacity:1;animation:2s ease-in-out infinite scanMove-242eaea1}@keyframes scanMove-242eaea1{0%{top:14%}50%{top:86%}to{top:14%}}.scan-hint[data-v-242eaea1]{text-align:center;color:#ffffff80;letter-spacing:.04em;pointer-events:none;margin:0;font-size:.7rem;position:absolute;bottom:.6rem;left:0;right:0}.processing-badge[data-v-242eaea1]{color:#a78bfa;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;background:#000000bf;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:.78rem;font-weight:500;display:flex;position:absolute;top:.65rem;left:50%;transform:translate(-50%)}.spinner[data-v-242eaea1]{border:2px solid #a78bfa44;border-top-color:#a78bfa;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin-242eaea1;display:inline-block}@keyframes spin-242eaea1{to{transform:rotate(360deg)}}.modal-backdrop[data-v-242eaea1]{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;background:#000000b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card[data-v-242eaea1]{background:#1a1a24;border:1px solid #2d2d42;border-radius:1.25rem;width:min(420px,95vw);overflow:hidden;box-shadow:0 24px 60px #000000b3}.modal-header[data-v-242eaea1]{justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;display:flex}.result-text[data-v-242eaea1]{letter-spacing:.06em;font-size:1.2rem;font-weight:700}.result-success[data-v-242eaea1]{color:#6ee7b7;background:#064e3b}.result-error[data-v-242eaea1]{color:#fca5a5;background:#7f1d1d}.result-warning[data-v-242eaea1]{color:#fcd34d;background:#78350f}.close-btn[data-v-242eaea1]{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1;transition:opacity .15s}.close-btn[data-v-242eaea1]:hover{opacity:1}.modal-body[data-v-242eaea1]{flex-direction:column;gap:.85rem;padding:1.25rem;display:flex}.info-row[data-v-242eaea1]{flex-direction:column;gap:.2rem;display:flex}.info-label[data-v-242eaea1]{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-size:.72rem;font-weight:600}.info-value[data-v-242eaea1]{color:#e8e8f0;word-break:break-word;font-size:1rem;font-weight:500}.error-msg[data-v-242eaea1]{color:#fca5a5;word-break:break-word;background:#2d1212;border-radius:.5rem;padding:.75rem;font-size:.9rem}.modal-footer[data-v-242eaea1]{justify-content:flex-end;padding:0 1.25rem 1.25rem;display:flex}.modal-enter-active[data-v-242eaea1],.modal-leave-active[data-v-242eaea1]{transition:opacity .2s}.modal-enter-active .modal-card[data-v-242eaea1],.modal-leave-active .modal-card[data-v-242eaea1]{transition:transform .2s}.modal-enter-from[data-v-242eaea1],.modal-leave-to[data-v-242eaea1]{opacity:0}.modal-enter-from .modal-card[data-v-242eaea1],.modal-leave-to .modal-card[data-v-242eaea1]{transform:scale(.93)translateY(12px)}
