:root{--obsidian:#0a0a0a;--void:#111111;--surface:#1a1a1a;--border:#2a2a2a;--border-mid:#3a3a3a;--muted:#555555;--dim:#888888;--snow:#f5f5f5;--white:#ffffff;--red:#e63946;--red-glow:rgba(230, 57, 70, 0.25);--green:#2dc653;--amber:#f4a261}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--obsidian);color:var(--snow);font-family:'IBM Plex Mono',monospace;min-height:100vh;overflow-x:hidden}body::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.012) 2px,rgba(255,255,255,.012) 4px);pointer-events:none;z-index:9999}.header-bar{background:var(--void);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.logo-mark{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:1rem;letter-spacing:.25em;color:var(--white);text-transform:uppercase}.logo-mark span{color:var(--red)}.privacy-badge{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:6px 12px;font-size:.65rem;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;cursor:pointer;transition:all .2s ease}.privacy-badge:hover{border-color:var(--green);color:var(--green)}.privacy-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}.drop-zone{border:1px dashed var(--border-mid);border-radius:8px;background:var(--void);transition:all .25s ease;position:relative;overflow:hidden}.drop-zone.drag-over{border-color:var(--red);background:rgba(230,57,70,.04);box-shadow:inset 0 0 40px rgba(230,57,70,.06)}.drop-zone-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;gap:20px;cursor:pointer}.upload-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-mid);border-radius:50%;color:var(--muted);transition:all .2s}.drop-zone:hover .upload-icon{border-color:var(--dim);color:var(--dim)}.drop-label{text-align:center}.drop-label-main{font-size:.85rem;font-weight:500;color:var(--snow);letter-spacing:.05em;margin-bottom:6px}.drop-label-sub{font-size:.65rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.upload-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn-primary{background:var(--red);color:#fff;border:none;padding:10px 22px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.btn-primary:hover{background:#c62f3a;box-shadow:0 0 20px var(--red-glow);transform:translateY(-1px)}.btn-secondary{background:0 0;color:var(--snow);border:1px solid var(--border-mid);padding:10px 22px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.btn-secondary:hover{border-color:var(--dim);background:var(--surface);transform:translateY(-1px)}.btn-ghost{background:0 0;color:var(--dim);border:1px solid var(--border);padding:8px 16px;font-family:'IBM Plex Mono',monospace;font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-ghost:hover{color:var(--snow);border-color:var(--border-mid)}#canvas-wrapper{position:relative;display:flex;align-items:center;justify-content:center;background:var(--void);border:1px solid var(--border);border-radius:8px;overflow:hidden}#preview-img{display:block;max-width:100%;max-height:60vh;object-fit:contain;border-radius:4px;image-rendering:high-quality;user-select:none}#interact-canvas,#main-canvas{position:absolute;top:0;left:0;pointer-events:none}#interact-canvas{pointer-events:auto;cursor:default}.scan-bar-wrap{background:var(--void);border:1px solid var(--border);border-radius:8px;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.scan-bar-label{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.scan-bar-track{height:2px;background:var(--border);border-radius:2px;overflow:hidden}.scan-bar-fill{height:100%;width:0%;background:var(--red);border-radius:2px;transition:width .3s ease;box-shadow:0 0 8px var(--red-glow)}.scan-status{font-size:.68rem;color:var(--muted);letter-spacing:.05em}.findings-panel{background:var(--void);border:1px solid var(--border);border-radius:8px;overflow:hidden}.findings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.findings-count{background:var(--red);color:#fff;font-size:.6rem;font-weight:700;padding:2px 7px;border-radius:10px}.finding-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);transition:background .15s;cursor:pointer;gap:12px}.finding-item:last-child{border-bottom:none}.finding-item:hover{background:var(--surface)}.finding-item.redacted{opacity:.4}.finding-type{font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:3px;white-space:nowrap;flex-shrink:0}.type-email{background:rgba(100,149,237,.15);color:#6495ed}.type-phone{background:rgba(244,162,97,.15);color:#f4a261}.type-card{background:rgba(230,57,70,.15);color:var(--red)}.type-ssn{background:rgba(200,100,220,.15);color:#c864dc}.type-date,.type-dob{background:rgba(45,198,83,.15);color:var(--green)}.type-name{background:rgba(255,215,0,.15);color:gold}.type-money{background:rgba(80,200,120,.15);color:#50c878}.type-account,.type-routing{background:rgba(255,140,0,.15);color:#ff8c00}.type-iban,.type-swift{background:rgba(64,190,210,.15);color:#40bed2}.type-ip,.type-mac{background:rgba(180,100,60,.15);color:#c87840}.type-address,.type-zip{background:rgba(150,120,200,.15);color:#9678c8}.type-license,.type-passport{background:rgba(220,80,120,.15);color:#dc5078}.finding-text{font-size:.72rem;color:var(--snow);font-family:'IBM Plex Mono',monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.finding-toggle{width:28px;height:28px;border:1px solid var(--border-mid);background:var(--surface);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s;color:var(--dim);font-size:12px}.finding-toggle:hover{border-color:var(--red);color:var(--red)}.finding-toggle.active{background:var(--red);border-color:var(--red);color:#fff}.draw-mode-banner{display:none;align-items:center;gap:10px;background:rgba(230,57,70,.08);border:1px solid rgba(230,57,70,.3);border-radius:6px;padding:10px 16px;font-size:.68rem;letter-spacing:.08em;color:var(--red)}.draw-mode-banner.active{display:flex}.draw-dot{width:8px;height:8px;background:var(--red);border-radius:50%;animation:blink 1s step-end infinite}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.perspective-toggle{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--void);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;font-size:.68rem;color:var(--dim);letter-spacing:.05em}.perspective-toggle:hover{border-color:var(--border-mid);color:var(--snow)}.toggle-switch{width:32px;height:18px;background:var(--border);border-radius:9px;position:relative;transition:background .2s;flex-shrink:0}.toggle-switch::after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:var(--dim);border-radius:50%;transition:all .2s}.toggle-switch.on{background:rgba(230,57,70,.3);border:1px solid var(--red)}.toggle-switch.on::after{left:17px;background:var(--red)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}.modal-box{background:var(--void);border:1px solid var(--border-mid);border-radius:10px;width:100%;max-width:500px;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.modal-close{width:28px;height:28px;border:1px solid var(--border-mid);background:var(--surface);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--dim);font-size:14px;transition:all .15s}.modal-close:hover{color:var(--red);border-color:var(--red)}#camera-video{width:100%;background:#000;display:block;max-height:360px;object-fit:cover}.modal-footer{padding:16px 20px;display:flex;gap:10px;justify-content:center}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--surface);border:1px solid var(--border-mid);border-radius:6px;padding:10px 20px;font-size:.68rem;letter-spacing:.06em;color:var(--snow);z-index:9998;transition:transform .3s ease,opacity .3s ease;opacity:0;white-space:nowrap;display:flex;align-items:center;gap:8px}.toast.show{transform:translateX(-50%) translateY(0);opacity:1}.toast.success{border-color:var(--green)}.toast.error{border-color:var(--red)}.idle-graphic{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.15}.idle-line{height:2px;background:var(--snow);border-radius:1px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--void)}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:2px}.section-label{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}@media (max-width:640px){.header-bar{padding:12px 16px}.drop-zone-inner{padding:40px 16px}.logo-mark{font-size:.85rem}}#main-canvas.draw-mode{cursor:crosshair}.tool-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.info-tag{font-size:.6rem;letter-spacing:.08em;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:3px 8px;border-radius:3px}.zoom-controls{display:flex;gap:4px}.zoom-btn{width:28px;height:28px;border:1px solid var(--border);background:var(--surface);color:var(--dim);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .15s;font-family:monospace}.zoom-btn:hover{color:var(--snow);border-color:var(--border-mid)}.stats-row{display:flex;gap:20px;padding:10px 16px;border-top:1px solid var(--border);background:var(--void);border-radius:0 0 8px 8px;font-size:.6rem;color:var(--muted);letter-spacing:.08em;flex-wrap:wrap;gap:16px}.stat-item{display:flex;gap:6px;align-items:center}.stat-val{color:var(--snow);font-weight:500}.brush-size-row{display:flex;align-items:center;gap:10px;font-size:.65rem;color:var(--muted);letter-spacing:.06em}input[type=range]{-webkit-appearance:none;height:2px;background:var(--border-mid);border-radius:1px;outline:0;width:80px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--red);cursor:pointer}