*{box-sizing:border-box}
:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html,body{margin:0;background:#020604;color:#d8ffe4;min-height:100%}
body{overscroll-behavior:none}
button{font:inherit}
.app{width:min(860px,100%);margin:auto;min-height:100dvh;background:radial-gradient(circle at 50% -20%,#123b23 0,#06100a 35%,#020604 75%)}
.topbar{height:68px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #173a25;position:sticky;top:0;z-index:10;background:rgba(2,8,5,.88);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px}.brand-dot{width:10px;height:10px;border-radius:50%;background:#52ff86;box-shadow:0 0 15px #52ff86}
h1{font-size:17px;letter-spacing:3px;margin:0;color:#63ff96}.brand p{font-size:8px;letter-spacing:1.5px;color:#719781;margin:3px 0 0}
.pill{font-size:9px;letter-spacing:1.5px;border:1px solid #2a6540;padding:6px 8px;border-radius:20px;color:#80b88f}
.scanner{position:relative;height:min(79dvh,790px);min-height:540px;background:#000;overflow:hidden}
#camera{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);background:#000}
#overlay{position:absolute;inset:0;width:100%;height:100%;transform:scaleX(-1);pointer-events:none}
.scanlines{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,rgba(70,255,130,.025) 4px);mix-blend-mode:screen}
.top-hud{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:6px;pointer-events:none}.chip{font-size:8px;letter-spacing:1px;padding:6px 8px;background:rgba(1,12,6,.65);border:1px solid rgba(70,255,130,.25);backdrop-filter:blur(5px)}.chip b{color:#5eff8e}
.field-card{position:absolute;left:14px;bottom:16px;width:245px;padding:11px;background:rgba(1,12,6,.76);border:1px solid rgba(70,255,130,.35);backdrop-filter:blur(7px)}
.eyebrow{font-size:8px;letter-spacing:1.3px;color:#6f9a7c}.field-number{font-size:29px;font-weight:700;margin:2px 0}.field-number small{font-size:12px;color:#8db59a}.bar{height:7px;background:#0b2114;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:#4eff82;box-shadow:0 0 10px #4eff82;transition:width .2s}.scale{display:flex;justify-content:space-between;font-size:7px;color:#5c7966;margin-top:4px}
.corner{position:absolute;width:42px;height:42px;border-color:rgba(87,255,135,.5);pointer-events:none}.tl{left:10px;top:78px;border-left:1px solid;border-top:1px solid}.tr{right:10px;top:78px;border-right:1px solid;border-top:1px solid}.bl{left:10px;bottom:120px;border-left:1px solid;border-bottom:1px solid}.br{right:10px;bottom:120px;border-right:1px solid;border-bottom:1px solid}
.ghost-alert{position:absolute;left:50%;top:26%;transform:translate(-50%,-50%);min-width:280px;padding:12px 14px;display:flex;align-items:center;gap:10px;background:rgba(42,0,8,.82);border:1px solid #ff536f;box-shadow:0 0 30px rgba(255,40,80,.25);animation:pulse 1.2s infinite}.ghost-alert b{display:block;font-size:13px;color:#ff8094;letter-spacing:1px}.ghost-alert span{display:block;font-size:9px;color:#f7c6cf;margin-top:3px}.ghost-alert strong{margin-left:auto;font-size:22px;color:#ff92a4}.alert-icon{font-size:22px}
.hidden{display:none!important}
.cross-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.16);pointer-events:none}.cross-overlay img{width:min(57vw,360px);max-height:60%;object-fit:contain;opacity:.34;filter:drop-shadow(0 0 15px #fff)}.cross-overlay div{font-size:10px;letter-spacing:4px;text-shadow:0 0 8px #fff}
.permission{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(0,0,0,.8);z-index:5}.permission-box{width:min(390px,100%);padding:28px 22px;text-align:center;background:rgba(4,16,9,.96);border:1px solid #27653e;box-shadow:0 20px 80px #000}.radar{font-size:46px;color:#58ff8a;text-shadow:0 0 20px #58ff8a}.permission-box h2{letter-spacing:4px;color:#63ff96;margin:5px 0}.permission-box p{font-size:12px;line-height:1.8;color:#9ab7a2}.permission-box small{display:block;margin-top:12px;color:#66816f;font-size:9px}
.primary{width:100%;padding:13px;border:1px solid #4dff86;background:#123e21;color:#eaffef;border-radius:9px;font-weight:800;letter-spacing:1px}
.dashboard{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #173a25}.stat{padding:11px 8px;text-align:center;border-right:1px solid #173a25}.stat:last-child{border:0}.stat span{display:block;font-size:7px;letter-spacing:1px;color:#668372}.stat b{display:block;margin-top:4px;font-size:14px;color:#d8ffe4}
.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px;border-bottom:1px solid #173a25}.controls button{padding:10px 5px;background:#09170d;border:1px solid #245b39;border-radius:8px;color:#bce8c9;font-size:9px;font-weight:800}.controls button span{display:block;font-size:16px;margin-bottom:3px}.controls button:disabled{opacity:.3}
.history-panel{padding:13px}.section-title{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#75a384}.section-title span{font-size:7px;color:#4f6d59}.log{margin-top:7px;max-height:140px;overflow:auto;border:1px solid #142c1c}.log-row{display:flex;gap:10px;padding:7px 9px;border-bottom:1px solid #102417;font-size:9px}.log-row:last-child{border:0}.log-row time{color:#4f765b;min-width:60px}.log-row.warn{color:#ff9aaa}.log-row.protect{color:#fff}.muted{color:#587461}
.disclaimer{padding:0 14px 24px;color:#607a69;font-size:9px;line-height:1.7}.disclaimer b{color:#a5cdb0}
@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.02);box-shadow:0 0 45px rgba(255,40,80,.35)}}
@media (max-width:520px){.scanner{min-height:500px}.field-card{width:220px}.ghost-alert{min-width:250px}.brand p{display:none}}
