:root{--hk-green:#0f6;--hk-green-dim:#00b347;--hk-green-glow:#00ff668c;--hk-bg:#000;--hk-panel:#001408d9;--hk-red:#ff003c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--hk-green);background-color:var(--hk-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:JetBrains Mono,Fira Code,Menlo,Consolas,ui-monospace,monospace;font-weight:400;line-height:1.4}body{background:var(--hk-bg);place-items:center;min-width:320px;min-height:100svh;margin:0;display:flex;overflow:hidden}#root{width:100%;height:100svh}.app-container{background:var(--hk-bg);width:100%;height:100%;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:relative}.app-container:before{content:"";pointer-events:none;z-index:50;background:repeating-linear-gradient(#00ff660a 0 1px,#0000 1px 3px);position:absolute;inset:0}.app-container:after{content:"> DATABEAM // DMTX SCAN ACTIVE _";top:env(safe-area-inset-top,0);letter-spacing:.08em;color:var(--hk-green);text-shadow:0 0 6px var(--hk-green-glow);z-index:60;pointer-events:none;background:linear-gradient(#000000d9,#0000);padding:10px 16px;font-size:.75rem;position:absolute;left:0;right:0}.scanner-container{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.scanner-video{object-fit:cover;filter:contrast(1.15)saturate(.6)brightness(.95)hue-rotate(-10deg);cursor:crosshair;touch-action:manipulation;width:100%;height:100%}.hk-icon-btn{top:calc(env(safe-area-inset-top,0) + 44px);z-index:80;border:1px solid var(--hk-green);color:var(--hk-green);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;text-shadow:0 0 6px var(--hk-green-glow);background:#000000b3;border-radius:2px;align-items:center;gap:6px;padding:10px 12px;font-family:inherit;font-size:.7rem;font-weight:700;transition:transform .1s,background .1s;display:flex;position:absolute;right:16px;box-shadow:0 0 12px #00ff6659,inset 0 0 6px #00ff661a}.hk-icon-btn:active{background:#00ff662e;transform:scale(.94)}.hk-icon-label{line-height:1}.focus-pulse{border:1.5px solid var(--hk-green);pointer-events:none;z-index:75;width:56px;height:56px;box-shadow:0 0 10px var(--hk-green-glow), inset 0 0 8px var(--hk-green-glow);border-radius:2px;margin-top:-28px;margin-left:-28px;animation:.9s ease-out forwards focus-pulse;position:absolute}@keyframes focus-pulse{0%{opacity:0;transform:scale(1.6)}20%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(.85)}}.scanner-overlay{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.scan-frame{border:1px dashed #00ff6659;width:200px;height:200px;position:relative;box-shadow:0 0 0 9999px #000000a6,inset 0 0 18px #00ff662e,0 0 22px #00ff6640}.corner{border-color:var(--hk-green);width:28px;height:28px;filter:drop-shadow(0 0 6px var(--hk-green-glow));position:absolute}.corner.tl{border-top:3px solid;border-left:3px solid;top:-3px;left:-3px}.corner.tr{border-top:3px solid;border-right:3px solid;top:-3px;right:-3px}.corner.bl{border-bottom:3px solid;border-left:3px solid;bottom:-3px;left:-3px}.corner.br{border-bottom:3px solid;border-right:3px solid;bottom:-3px;right:-3px}.scan-frame:after{content:"";background:var(--hk-green);width:100%;height:2px;box-shadow:0 0 12px var(--hk-green), 0 0 24px var(--hk-green-glow);animation:1.6s ease-in-out infinite scan;position:absolute;top:0;left:0}@keyframes scan{0%{opacity:1;top:0}50%{opacity:.9;top:calc(100% - 2px)}to{opacity:1;top:0}}.scan-frame:before{content:"AIM > 0.6mm DMTX // ROI 200px";letter-spacing:.12em;color:var(--hk-green);text-shadow:0 0 6px var(--hk-green-glow);white-space:nowrap;font-size:.7rem;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}.result-modal{bottom:calc(20px + env(safe-area-inset-bottom));background:var(--hk-panel);color:var(--hk-green);border:1px solid var(--hk-green);pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:70;border-radius:4px;flex-direction:column;gap:14px;padding:18px;animation:.25s ease-out slide-up;display:flex;position:absolute;left:16px;right:16px;box-shadow:0 0 24px #0f66,inset 0 0 12px #00ff6614}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.result-header{letter-spacing:.15em;text-transform:uppercase;text-shadow:0 0 8px var(--hk-green-glow);font-size:.95rem;font-weight:700}.result-header:before{content:"[ "}.result-header:after{content:" ]"}.result-content{border:1px solid var(--hk-green-dim);color:var(--hk-green);word-break:break-all;max-height:110px;text-shadow:0 0 4px var(--hk-green-glow);background:#000000b3;border-radius:2px;padding:10px 12px;font-family:inherit;font-size:.85rem;overflow-y:auto}.btn{border:1px solid var(--hk-green);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-family:inherit;font-size:.85rem;font-weight:700;transition:all .1s;display:flex}.btn:active{transform:scale(.97)}.btn-primary{color:var(--hk-green);text-shadow:0 0 8px var(--hk-green-glow);background:#00ff661f;box-shadow:0 0 12px #00ff6659,inset 0 0 8px #00ff6626}.btn-primary:hover{background:#00ff6638}.btn-secondary{color:var(--hk-green-dim);border-color:var(--hk-green-dim);background:0 0}.btn-secondary:hover{color:var(--hk-green);border-color:var(--hk-green)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}.status-toast{letter-spacing:.15em;text-transform:uppercase;z-index:100;text-shadow:0 0 6px;background:#000000d9;border:1px solid;border-radius:2px;padding:10px 20px;font-size:.85rem;font-weight:700;animation:.25s ease-out fade-in;position:fixed;top:60px;left:50%;transform:translate(-50%)}.status-success{color:var(--hk-green);box-shadow:0 0 14px var(--hk-green-glow)}.status-success:before{content:"OK > "}.status-error{color:var(--hk-red);box-shadow:0 0 14px #ff003c80}.status-error:before{content:"ERR > "}@keyframes fade-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}
