:root{--bg-base:#0a0c10;--bg-surface:#111318;--bg-elevated:#161b22;--bg-card:#1c2230;--border:#2a3244;--border-bright:#3a4a64;--accent:#00e5ff;--accent-dim:#00e5ff26;--accent-glow:#00e5ff66;--green:#39ff85;--red:#ff4560;--orange:#ffb400;--purple:#a78bfa;--text-primary:#e8edf5;--text-secondary:#8899b0;--text-muted:#4a5a72;--font-mono:"JetBrains Mono",monospace;--font-sans:"Space Grotesk",sans-serif;--radius:8px;--radius-lg:14px;--shadow:0 4px 24px #00000080}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;background:#0a0c10;background:var(--bg-base);color:#e8edf5;color:var(--text-primary);font-family:Space Grotesk,sans-serif;font-family:var(--font-sans);font-size:14px;line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer}button,input,select,textarea{font-family:Space Grotesk,sans-serif;font-family:var(--font-sans);outline:none}input,select,textarea{background:#161b22;background:var(--bg-elevated);border:1px solid #2a3244;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius);color:#e8edf5;color:var(--text-primary);font-size:13px;padding:8px 12px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:#00e5ff;border-color:var(--accent);box-shadow:0 0 0 3px #00e5ff26;box-shadow:0 0 0 3px var(--accent-dim)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0a0c10;background:var(--bg-base)}::-webkit-scrollbar-thumb{background:#3a4a64;background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4a5a72;background:var(--text-muted)}.mono{font-family:JetBrains Mono,monospace;font-family:var(--font-mono)}.text-accent{color:#00e5ff;color:var(--accent)}.text-green{color:#39ff85;color:var(--green)}.text-red{color:#ff4560;color:var(--red)}.text-orange{color:#ffb400;color:var(--orange)}.text-muted{color:#4a5a72;color:var(--text-muted)}.text-secondary{color:#8899b0;color:var(--text-secondary)}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:600;gap:5px;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase}.badge-loitering{background:#42c8f526;border:1px solid #42c8f54d;color:#42c8f5}.badge-zone_entry{background:#ff900026;border:1px solid #ff90004d;color:#ff9000}.badge-zone_loitering{background:#f755a826;border:1px solid #f755a84d;color:#f755a8}.badge-crowd_formation{background:#356bff26;border:1px solid #356bff4d;color:#356bff}.badge-abandoned_object{background:#ff333326;border:1px solid #ff33334d;color:#f33}.badge-vehicle_stop{background:#39ff8526;border:1px solid #39ff854d;color:#39ff85}.status-uploaded{color:#8899b0;color:var(--text-secondary)}.status-processing{color:#ffb400;color:var(--orange)}.status-done{color:#39ff85;color:var(--green)}.status-error{color:#ff4560;color:var(--red)}.status-queued{color:#a78bfa;color:var(--purple)}.card{background:#1c2230;background:var(--bg-card);border:1px solid #2a3244;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);padding:20px}.btn{align-items:center;border-radius:8px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:9px 18px;transition:all .18s ease}.btn-primary{background:#00e5ff;background:var(--accent);color:#000}.btn-primary:hover{background:#33eaff;box-shadow:0 0 20px #00e5ff66;box-shadow:0 0 20px var(--accent-glow)}.btn-secondary{background:#161b22;background:var(--bg-elevated);border:1px solid #2a3244;border:1px solid var(--border);color:#e8edf5;color:var(--text-primary)}.btn-secondary:hover{border-color:#00e5ff;border-color:var(--accent);color:#00e5ff;color:var(--accent)}.btn-danger{background:#ff456026;border:1px solid #ff45604d;color:#ff4560;color:var(--red)}.btn-danger:hover{background:#ff456040}.btn:disabled{cursor:not-allowed;opacity:.4}@keyframes spin{to{transform:rotate(1turn)}}.spinner{animation:spin .7s linear infinite;border:2px solid #2a3244;border-top-color:#00e5ff;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:20px;width:20px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.pulse-dot{animation:pulse 1.4s ease-in-out infinite;border-radius:50%;height:8px;width:8px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:fadeUp .3s ease both}
/*# sourceMappingURL=main.ec0cf814.css.map*/