:root{--bg-primary:#0b0f17;--surface-card:#111827;--surface-elevated:#1e293b;--border-subtle:#ffffff14;--border-focus:#6366f180;--accent-indigo:#6366f1;--accent-indigo-hover:#4f46e5;--accent-emerald:#10b981;--accent-cyan:#0ea5e9;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#1e293b;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#334155}.glass-panel{-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);background:#111827bf}.card-surface{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px}.scanner-viewport{background:#000;border-radius:16px;position:relative;overflow:hidden}.scan-laser{background:linear-gradient(90deg,#0000,#10b981,#0000);height:3px;animation:2s cubic-bezier(.4,0,.2,1) infinite scanLaser;position:absolute;top:0;left:0;right:0;box-shadow:0 0 15px #10b981}.scan-laser-saida{background:linear-gradient(90deg,#0000,#0ea5e9,#0000);box-shadow:0 0 15px #0ea5e9}@keyframes scanLaser{0%{opacity:.3;top:5%}50%{opacity:1;top:90%}to{opacity:.3;top:5%}}.corner-bracket{pointer-events:none;border-style:solid;border-color:#10b981;width:28px;height:28px;position:absolute}.corner-tl{border-width:4px 0 0 4px;border-top-left-radius:8px;top:20px;left:20px}.corner-tr{border-width:4px 4px 0 0;border-top-right-radius:8px;top:20px;right:20px}.corner-bl{border-width:0 0 4px 4px;border-bottom-left-radius:8px;bottom:20px;left:20px}.corner-br{border-width:0 4px 4px 0;border-bottom-right-radius:8px;bottom:20px;right:20px}@keyframes pulseSubtle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.95;transform:scale(1.02)}}.pulse-subtle{animation:.3s ease-out pulseSubtle}
